diff mbox series

[v1] dt-bindings: pinctrl: convert rockchip,pinctrl.txt to YAML

Message ID 20210908151246.8781-1-jbx6244@gmail.com
State Accepted
Commit c3efe04533a900cef767f680a525f48f2f642ede
Headers show
Series [v1] dt-bindings: pinctrl: convert rockchip,pinctrl.txt to YAML | expand

Commit Message

Johan Jonker Sept. 8, 2021, 3:12 p.m. UTC
Convert rockchip,pinctrl.txt to YAML

Signed-off-by: Johan Jonker <jbx6244@gmail.com>
---

Note for rob+dt:

To reduce notifications and to support legacy DT the patternProperties
regex is:
"gpio[0-8]?@[0-9a-f]+$"

or should we move to:
"gpio@[0-9a-f]+$"
and change all Rockchip pinctrl DT nodes?
Is the Linux driver / U-boot ready for it now?
---
 .../bindings/pinctrl/rockchip,pinctrl.txt     | 114 -----------
 .../bindings/pinctrl/rockchip,pinctrl.yaml    | 178 ++++++++++++++++++
 2 files changed, 178 insertions(+), 114 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.txt
 create mode 100644 Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.yaml

Comments

Rob Herring Sept. 21, 2021, 12:33 a.m. UTC | #1
On Wed, Sep 08, 2021 at 05:12:46PM +0200, Johan Jonker wrote:
> Convert rockchip,pinctrl.txt to YAML

> 

> Signed-off-by: Johan Jonker <jbx6244@gmail.com>

> ---

> 

> Note for rob+dt:

> 

> To reduce notifications and to support legacy DT the patternProperties

> regex is:

> "gpio[0-8]?@[0-9a-f]+$"

> 

> or should we move to:

> "gpio@[0-9a-f]+$"

> and change all Rockchip pinctrl DT nodes?


Better to have the warnings as a todo to fix than appear to endorse 
'gpio[0-8]' IMO.

> Is the Linux driver / U-boot ready for it now?


I don't think the drivers should care. If they do, then we're stuck with 
the current names.

> ---

>  .../bindings/pinctrl/rockchip,pinctrl.txt     | 114 -----------

>  .../bindings/pinctrl/rockchip,pinctrl.yaml    | 178 ++++++++++++++++++

>  2 files changed, 178 insertions(+), 114 deletions(-)

>  delete mode 100644 Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.txt

>  create mode 100644 Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.yaml

> 

> diff --git a/Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.txt

> deleted file mode 100644

> index 84c411129..000000000

> --- a/Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.txt

> +++ /dev/null

> @@ -1,114 +0,0 @@

> -* Rockchip Pinmux Controller

> -

> -The Rockchip Pinmux Controller, enables the IC

> -to share one PAD to several functional blocks. The sharing is done by

> -multiplexing the PAD input/output signals. For each PAD there are several

> -muxing options with option 0 being the use as a GPIO.

> -

> -Please refer to pinctrl-bindings.txt in this directory for details of the

> -common pinctrl bindings used by client devices, including the meaning of the

> -phrase "pin configuration node".

> -

> -The Rockchip pin configuration node is a node of a group of pins which can be

> -used for a specific device or function. This node represents both mux and

> -config of the pins in that group. The 'pins' selects the function mode(also

> -named pin mode) this pin can work on and the 'config' configures various pad

> -settings such as pull-up, etc.

> -

> -The pins are grouped into up to 5 individual pin banks which need to be

> -defined as gpio sub-nodes of the pinmux controller.

> -

> -Required properties for iomux controller:

> -  - compatible: should be

> -		"rockchip,px30-pinctrl":    for Rockchip PX30

> -		"rockchip,rv1108-pinctrl":  for Rockchip RV1108

> -		"rockchip,rk2928-pinctrl":  for Rockchip RK2928

> -		"rockchip,rk3066a-pinctrl": for Rockchip RK3066a

> -		"rockchip,rk3066b-pinctrl": for Rockchip RK3066b

> -		"rockchip,rk3128-pinctrl":  for Rockchip RK3128

> -		"rockchip,rk3188-pinctrl":  for Rockchip RK3188

> -		"rockchip,rk3228-pinctrl":  for Rockchip RK3228

> -		"rockchip,rk3288-pinctrl":  for Rockchip RK3288

> -		"rockchip,rk3308-pinctrl":  for Rockchip RK3308

> -		"rockchip,rk3328-pinctrl":  for Rockchip RK3328

> -		"rockchip,rk3368-pinctrl":  for Rockchip RK3368

> -		"rockchip,rk3399-pinctrl":  for Rockchip RK3399

> -		"rockchip,rk3568-pinctrl":  for Rockchip RK3568

> -

> -  - rockchip,grf: phandle referencing a syscon providing the

> -	 "general register files"

> -

> -Optional properties for iomux controller:

> -  - rockchip,pmu: phandle referencing a syscon providing the pmu registers

> -	 as some SoCs carry parts of the iomux controller registers there.

> -	 Required for at least rk3188 and rk3288. On the rk3368 this should

> -	 point to the PMUGRF syscon.

> -

> -Deprecated properties for iomux controller:

> -  - reg: first element is the general register space of the iomux controller

> -	 It should be large enough to contain also separate pull registers.

> -	 second element is the separate pull register space of the rk3188.

> -	 Use rockchip,grf and rockchip,pmu described above instead.

> -

> -Required properties for gpio sub nodes:

> -See rockchip,gpio-bank.yaml

> -

> -Required properties for pin configuration node:

> -  - rockchip,pins: 3 integers array, represents a group of pins mux and config

> -    setting. The format is rockchip,pins = <PIN_BANK PIN_BANK_IDX MUX &phandle>.

> -    The MUX 0 means gpio and MUX 1 to N mean the specific device function.

> -    The phandle of a node containing the generic pinconfig options

> -    to use, as described in pinctrl-bindings.txt in this directory.

> -

> -Examples:

> -

> -#include <dt-bindings/pinctrl/rockchip.h>

> -

> -...

> -

> -pinctrl@20008000 {

> -	compatible = "rockchip,rk3066a-pinctrl";

> -	rockchip,grf = <&grf>;

> -

> -	#address-cells = <1>;

> -	#size-cells = <1>;

> -	ranges;

> -

> -	gpio0: gpio0@20034000 {

> -		compatible = "rockchip,gpio-bank";

> -		reg = <0x20034000 0x100>;

> -		interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;

> -		clocks = <&clk_gates8 9>;

> -

> -		gpio-controller;

> -		#gpio-cells = <2>;

> -

> -		interrupt-controller;

> -		#interrupt-cells = <2>;

> -	};

> -

> -	...

> -

> -	pcfg_pull_default: pcfg_pull_default {

> -		bias-pull-pin-default

> -	};

> -

> -	uart2 {

> -		uart2_xfer: uart2-xfer {

> -			rockchip,pins = <1 RK_PB0 1 &pcfg_pull_default>,

> -					<1 RK_PB1 1 &pcfg_pull_default>;

> -		};

> -	};

> -};

> -

> -uart2: serial@20064000 {

> -	compatible = "snps,dw-apb-uart";

> -	reg = <0x20064000 0x400>;

> -	interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;

> -	reg-shift = <2>;

> -	reg-io-width = <1>;

> -	clocks = <&mux_uart2>;

> -

> -	pinctrl-names = "default";

> -	pinctrl-0 = <&uart2_xfer>;

> -};

> diff --git a/Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.yaml

> new file mode 100644

> index 000000000..7c45122d3

> --- /dev/null

> +++ b/Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.yaml

> @@ -0,0 +1,178 @@

> +# SPDX-License-Identifier: GPL-2.0

> +%YAML 1.2

> +---

> +$id: http://devicetree.org/schemas/pinctrl/rockchip,pinctrl.yaml#

> +$schema: http://devicetree.org/meta-schemas/core.yaml#

> +

> +title: Rockchip Pinmux Controller

> +

> +maintainers:

> +  - Heiko Stuebner <heiko@sntech.de>

> +

> +description:


Needs a '|' to maintain the paragraphs.

> +  The Rockchip Pinmux Controller enables the IC to share one PAD

> +  to several functional blocks. The sharing is done by multiplexing

> +  the PAD input/output signals. For each PAD there are several muxing

> +  options with option 0 being the use as a GPIO.

> +

> +  Please refer to pinctrl-bindings.txt in this directory for details of the

> +  common pinctrl bindings used by client devices, including the meaning of the

> +  phrase "pin configuration node".

> +

> +  The Rockchip pin configuration node is a node of a group of pins which can be

> +  used for a specific device or function. This node represents both mux and

> +  config of the pins in that group. The 'pins' selects the function mode(also

> +  named pin mode) this pin can work on and the 'config' configures various pad

> +  settings such as pull-up, etc.

> +

> +  The pins are grouped into up to 9 individual pin banks which need to be

> +  defined as gpio sub-nodes of the pinmux controller.

> +

> +properties:

> +  compatible:

> +    enum:

> +      - rockchip,px30-pinctrl

> +      - rockchip,rk2928-pinctrl

> +      - rockchip,rk3066a-pinctrl

> +      - rockchip,rk3066b-pinctrl

> +      - rockchip,rk3128-pinctrl

> +      - rockchip,rk3188-pinctrl

> +      - rockchip,rk3228-pinctrl

> +      - rockchip,rk3288-pinctrl

> +      - rockchip,rk3308-pinctrl

> +      - rockchip,rk3328-pinctrl

> +      - rockchip,rk3368-pinctrl

> +      - rockchip,rk3399-pinctrl

> +      - rockchip,rk3568-pinctrl

> +      - rockchip,rv1108-pinctrl

> +

> +  rockchip,grf:

> +    $ref: /schemas/types.yaml#/definitions/phandle

> +    description:

> +      The phandle of the syscon node for the GRF registers.

> +

> +  rockchip,pmu:

> +    $ref: /schemas/types.yaml#/definitions/phandle

> +    description:

> +      The phandle of the syscon node for the PMU registers,

> +      as some SoCs carry parts of the iomux controller registers there.

> +      Required for at least rk3188 and rk3288. On the rk3368 this should

> +      point to the PMUGRF syscon.

> +

> +  "#address-cells":

> +    enum: [1, 2]

> +

> +  "#size-cells":

> +    enum: [1, 2]

> +

> +  ranges: true

> +

> +patternProperties:

> +  "gpio[0-8]?@[0-9a-f]+$":

> +    type: object

> +

> +    $ref: "/schemas/gpio/rockchip,gpio-bank.yaml#"

> +

> +    unevaluatedProperties: false

> +

> +  "pcfg-[a-z0-9-]+$":

> +    type: object

> +    properties:

> +      bias-disable: true

> +

> +      bias-pull-down: true

> +

> +      bias-pull-pin-default: true

> +

> +      bias-pull-up: true

> +

> +      drive-strength:

> +        minimum: 0

> +        maximum: 20

> +

> +      input-enable: true

> +

> +      input-schmitt-enable: true

> +

> +      output-high: true

> +

> +      output-low: true

> +

> +    additionalProperties: false

> +

> +additionalProperties:

> +  type: object

> +  additionalProperties:

> +    type: object

> +    properties:

> +      rockchip,pins:

> +        type: array


That shouldn't be allowed... It should be a type $ref.

> +        minItems: 1

> +        items:

> +          items:

> +            - minimum: 0

> +              maximum: 8

> +            - minimum: 0

> +              maximum: 31

> +            - minimum: 0

> +              maximum: 6

> +            - maximum: 0xffffffff


I'd add a description on each entry.

> +        description:

> +          A 3 integers array represents a group of pins mux and


Looks like 4 integers to me. '3 integers and a phandle array'

> +          config setting. The format is

> +

> +          rockchip,pins = <PIN_BANK PIN_BANK_IDX MUX &phandle>

> +

> +          The MUX 0 means gpio and MUX 1 to N mean the specific

> +          device function. The phandle of a node contains the

> +          generic pinconfig options to use, as described in

> +          pinctrl-bindings.txt in this directory.

> +

> +examples:

> +  - |

> +    #include <dt-bindings/interrupt-controller/arm-gic.h>

> +    #include <dt-bindings/pinctrl/rockchip.h>

> +

> +    pinctrl: pinctrl {

> +      compatible = "rockchip,rk3066a-pinctrl";

> +      rockchip,grf = <&grf>;

> +

> +      #address-cells = <1>;

> +      #size-cells = <1>;

> +      ranges;

> +

> +      gpio0: gpio@20034000 {

> +        compatible = "rockchip,gpio-bank";

> +        reg = <0x20034000 0x100>;

> +        interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;

> +        clocks = <&clk_gates8 9>;

> +

> +        gpio-controller;

> +        #gpio-cells = <2>;

> +

> +        interrupt-controller;

> +        #interrupt-cells = <2>;

> +      };

> +

> +      pcfg_pull_default: pcfg-pull-default {

> +        bias-pull-pin-default;

> +      };

> +

> +      uart2 {

> +        uart2_xfer: uart2-xfer {

> +          rockchip,pins = <1 RK_PB0 1 &pcfg_pull_default>,

> +                          <1 RK_PB1 1 &pcfg_pull_default>;

> +        };

> +      };

> +    };

> +

> +    uart2: serial@20064000 {

> +      compatible = "snps,dw-apb-uart";

> +      reg = <0x20064000 0x400>;

> +      interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;

> +      clocks = <&mux_uart2>;

> +      pinctrl-0 = <&uart2_xfer>;

> +      pinctrl-names = "default";

> +      reg-io-width = <1>;

> +      reg-shift = <2>;

> +    };

> -- 

> 2.20.1

> 

>
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.txt
deleted file mode 100644
index 84c411129..000000000
--- a/Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.txt
+++ /dev/null
@@ -1,114 +0,0 @@ 
-* Rockchip Pinmux Controller
-
-The Rockchip Pinmux Controller, enables the IC
-to share one PAD to several functional blocks. The sharing is done by
-multiplexing the PAD input/output signals. For each PAD there are several
-muxing options with option 0 being the use as a GPIO.
-
-Please refer to pinctrl-bindings.txt in this directory for details of the
-common pinctrl bindings used by client devices, including the meaning of the
-phrase "pin configuration node".
-
-The Rockchip pin configuration node is a node of a group of pins which can be
-used for a specific device or function. This node represents both mux and
-config of the pins in that group. The 'pins' selects the function mode(also
-named pin mode) this pin can work on and the 'config' configures various pad
-settings such as pull-up, etc.
-
-The pins are grouped into up to 5 individual pin banks which need to be
-defined as gpio sub-nodes of the pinmux controller.
-
-Required properties for iomux controller:
-  - compatible: should be
-		"rockchip,px30-pinctrl":    for Rockchip PX30
-		"rockchip,rv1108-pinctrl":  for Rockchip RV1108
-		"rockchip,rk2928-pinctrl":  for Rockchip RK2928
-		"rockchip,rk3066a-pinctrl": for Rockchip RK3066a
-		"rockchip,rk3066b-pinctrl": for Rockchip RK3066b
-		"rockchip,rk3128-pinctrl":  for Rockchip RK3128
-		"rockchip,rk3188-pinctrl":  for Rockchip RK3188
-		"rockchip,rk3228-pinctrl":  for Rockchip RK3228
-		"rockchip,rk3288-pinctrl":  for Rockchip RK3288
-		"rockchip,rk3308-pinctrl":  for Rockchip RK3308
-		"rockchip,rk3328-pinctrl":  for Rockchip RK3328
-		"rockchip,rk3368-pinctrl":  for Rockchip RK3368
-		"rockchip,rk3399-pinctrl":  for Rockchip RK3399
-		"rockchip,rk3568-pinctrl":  for Rockchip RK3568
-
-  - rockchip,grf: phandle referencing a syscon providing the
-	 "general register files"
-
-Optional properties for iomux controller:
-  - rockchip,pmu: phandle referencing a syscon providing the pmu registers
-	 as some SoCs carry parts of the iomux controller registers there.
-	 Required for at least rk3188 and rk3288. On the rk3368 this should
-	 point to the PMUGRF syscon.
-
-Deprecated properties for iomux controller:
-  - reg: first element is the general register space of the iomux controller
-	 It should be large enough to contain also separate pull registers.
-	 second element is the separate pull register space of the rk3188.
-	 Use rockchip,grf and rockchip,pmu described above instead.
-
-Required properties for gpio sub nodes:
-See rockchip,gpio-bank.yaml
-
-Required properties for pin configuration node:
-  - rockchip,pins: 3 integers array, represents a group of pins mux and config
-    setting. The format is rockchip,pins = <PIN_BANK PIN_BANK_IDX MUX &phandle>.
-    The MUX 0 means gpio and MUX 1 to N mean the specific device function.
-    The phandle of a node containing the generic pinconfig options
-    to use, as described in pinctrl-bindings.txt in this directory.
-
-Examples:
-
-#include <dt-bindings/pinctrl/rockchip.h>
-
-...
-
-pinctrl@20008000 {
-	compatible = "rockchip,rk3066a-pinctrl";
-	rockchip,grf = <&grf>;
-
-	#address-cells = <1>;
-	#size-cells = <1>;
-	ranges;
-
-	gpio0: gpio0@20034000 {
-		compatible = "rockchip,gpio-bank";
-		reg = <0x20034000 0x100>;
-		interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&clk_gates8 9>;
-
-		gpio-controller;
-		#gpio-cells = <2>;
-
-		interrupt-controller;
-		#interrupt-cells = <2>;
-	};
-
-	...
-
-	pcfg_pull_default: pcfg_pull_default {
-		bias-pull-pin-default
-	};
-
-	uart2 {
-		uart2_xfer: uart2-xfer {
-			rockchip,pins = <1 RK_PB0 1 &pcfg_pull_default>,
-					<1 RK_PB1 1 &pcfg_pull_default>;
-		};
-	};
-};
-
-uart2: serial@20064000 {
-	compatible = "snps,dw-apb-uart";
-	reg = <0x20064000 0x400>;
-	interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
-	reg-shift = <2>;
-	reg-io-width = <1>;
-	clocks = <&mux_uart2>;
-
-	pinctrl-names = "default";
-	pinctrl-0 = <&uart2_xfer>;
-};
diff --git a/Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.yaml
new file mode 100644
index 000000000..7c45122d3
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.yaml
@@ -0,0 +1,178 @@ 
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pinctrl/rockchip,pinctrl.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Rockchip Pinmux Controller
+
+maintainers:
+  - Heiko Stuebner <heiko@sntech.de>
+
+description:
+  The Rockchip Pinmux Controller enables the IC to share one PAD
+  to several functional blocks. The sharing is done by multiplexing
+  the PAD input/output signals. For each PAD there are several muxing
+  options with option 0 being the use as a GPIO.
+
+  Please refer to pinctrl-bindings.txt in this directory for details of the
+  common pinctrl bindings used by client devices, including the meaning of the
+  phrase "pin configuration node".
+
+  The Rockchip pin configuration node is a node of a group of pins which can be
+  used for a specific device or function. This node represents both mux and
+  config of the pins in that group. The 'pins' selects the function mode(also
+  named pin mode) this pin can work on and the 'config' configures various pad
+  settings such as pull-up, etc.
+
+  The pins are grouped into up to 9 individual pin banks which need to be
+  defined as gpio sub-nodes of the pinmux controller.
+
+properties:
+  compatible:
+    enum:
+      - rockchip,px30-pinctrl
+      - rockchip,rk2928-pinctrl
+      - rockchip,rk3066a-pinctrl
+      - rockchip,rk3066b-pinctrl
+      - rockchip,rk3128-pinctrl
+      - rockchip,rk3188-pinctrl
+      - rockchip,rk3228-pinctrl
+      - rockchip,rk3288-pinctrl
+      - rockchip,rk3308-pinctrl
+      - rockchip,rk3328-pinctrl
+      - rockchip,rk3368-pinctrl
+      - rockchip,rk3399-pinctrl
+      - rockchip,rk3568-pinctrl
+      - rockchip,rv1108-pinctrl
+
+  rockchip,grf:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      The phandle of the syscon node for the GRF registers.
+
+  rockchip,pmu:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      The phandle of the syscon node for the PMU registers,
+      as some SoCs carry parts of the iomux controller registers there.
+      Required for at least rk3188 and rk3288. On the rk3368 this should
+      point to the PMUGRF syscon.
+
+  "#address-cells":
+    enum: [1, 2]
+
+  "#size-cells":
+    enum: [1, 2]
+
+  ranges: true
+
+patternProperties:
+  "gpio[0-8]?@[0-9a-f]+$":
+    type: object
+
+    $ref: "/schemas/gpio/rockchip,gpio-bank.yaml#"
+
+    unevaluatedProperties: false
+
+  "pcfg-[a-z0-9-]+$":
+    type: object
+    properties:
+      bias-disable: true
+
+      bias-pull-down: true
+
+      bias-pull-pin-default: true
+
+      bias-pull-up: true
+
+      drive-strength:
+        minimum: 0
+        maximum: 20
+
+      input-enable: true
+
+      input-schmitt-enable: true
+
+      output-high: true
+
+      output-low: true
+
+    additionalProperties: false
+
+additionalProperties:
+  type: object
+  additionalProperties:
+    type: object
+    properties:
+      rockchip,pins:
+        type: array
+        minItems: 1
+        items:
+          items:
+            - minimum: 0
+              maximum: 8
+            - minimum: 0
+              maximum: 31
+            - minimum: 0
+              maximum: 6
+            - maximum: 0xffffffff
+        description:
+          A 3 integers array represents a group of pins mux and
+          config setting. The format is
+
+          rockchip,pins = <PIN_BANK PIN_BANK_IDX MUX &phandle>
+
+          The MUX 0 means gpio and MUX 1 to N mean the specific
+          device function. The phandle of a node contains the
+          generic pinconfig options to use, as described in
+          pinctrl-bindings.txt in this directory.
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/pinctrl/rockchip.h>
+
+    pinctrl: pinctrl {
+      compatible = "rockchip,rk3066a-pinctrl";
+      rockchip,grf = <&grf>;
+
+      #address-cells = <1>;
+      #size-cells = <1>;
+      ranges;
+
+      gpio0: gpio@20034000 {
+        compatible = "rockchip,gpio-bank";
+        reg = <0x20034000 0x100>;
+        interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
+        clocks = <&clk_gates8 9>;
+
+        gpio-controller;
+        #gpio-cells = <2>;
+
+        interrupt-controller;
+        #interrupt-cells = <2>;
+      };
+
+      pcfg_pull_default: pcfg-pull-default {
+        bias-pull-pin-default;
+      };
+
+      uart2 {
+        uart2_xfer: uart2-xfer {
+          rockchip,pins = <1 RK_PB0 1 &pcfg_pull_default>,
+                          <1 RK_PB1 1 &pcfg_pull_default>;
+        };
+      };
+    };
+
+    uart2: serial@20064000 {
+      compatible = "snps,dw-apb-uart";
+      reg = <0x20064000 0x400>;
+      interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
+      clocks = <&mux_uart2>;
+      pinctrl-0 = <&uart2_xfer>;
+      pinctrl-names = "default";
+      reg-io-width = <1>;
+      reg-shift = <2>;
+    };