2021-04-13 07:01:30

by Johan Jonker

[permalink] [raw]
Subject: [PATCH v3 1/4] dt-bindings: pwm: convert pwm-rockchip.txt to YAML

Current dts files with 'pwm' nodes are manually verified.
In order to automate this process pwm-rockchip.txt
has to be converted to yaml.

Signed-off-by: Johan Jonker <[email protected]>
---
For some SoC nodes this patch serie generates notifications
for undocumented "interrupts" properties shared between
PWM channels till there is consensus of what to do with it or
someone makes a solution for the whole PWM block.

Changed V3:
fix mistake with compatibles introduced in V2
Changed V2:
changed schema for clocks and clock-names
---
.../devicetree/bindings/pwm/pwm-rockchip.txt | 27 -------
.../devicetree/bindings/pwm/pwm-rockchip.yaml | 88 ++++++++++++++++++++++
2 files changed, 88 insertions(+), 27 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/pwm/pwm-rockchip.txt
create mode 100644 Documentation/devicetree/bindings/pwm/pwm-rockchip.yaml

diff --git a/Documentation/devicetree/bindings/pwm/pwm-rockchip.txt b/Documentation/devicetree/bindings/pwm/pwm-rockchip.txt
deleted file mode 100644
index f70956dea..000000000
--- a/Documentation/devicetree/bindings/pwm/pwm-rockchip.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-Rockchip PWM controller
-
-Required properties:
- - compatible: should be "rockchip,<name>-pwm"
- "rockchip,rk2928-pwm": found on RK29XX,RK3066 and RK3188 SoCs
- "rockchip,rk3288-pwm": found on RK3288 SOC
- "rockchip,rv1108-pwm", "rockchip,rk3288-pwm": found on RV1108 SoC
- "rockchip,vop-pwm": found integrated in VOP on RK3288 SoC
- - reg: physical base address and length of the controller's registers
- - clocks: See ../clock/clock-bindings.txt
- - For older hardware (rk2928, rk3066, rk3188, rk3228, rk3288, rk3399):
- - There is one clock that's used both to derive the functional clock
- for the device and as the bus clock.
- - For newer hardware (rk3328 and future socs): specified by name
- - "pwm": This is used to derive the functional clock.
- - "pclk": This is the APB bus clock.
- - #pwm-cells: must be 2 (rk2928) or 3 (rk3288). See pwm.yaml in this directory
- for a description of the cell format.
-
-Example:
-
- pwm0: pwm@20030000 {
- compatible = "rockchip,rk2928-pwm";
- reg = <0x20030000 0x10>;
- clocks = <&cru PCLK_PWM01>;
- #pwm-cells = <2>;
- };
diff --git a/Documentation/devicetree/bindings/pwm/pwm-rockchip.yaml b/Documentation/devicetree/bindings/pwm/pwm-rockchip.yaml
new file mode 100644
index 000000000..19b42d31d
--- /dev/null
+++ b/Documentation/devicetree/bindings/pwm/pwm-rockchip.yaml
@@ -0,0 +1,88 @@
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pwm/pwm-rockchip.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Rockchip PWM controller
+
+maintainers:
+ - Heiko Stuebner <[email protected]>
+
+properties:
+ compatible:
+ oneOf:
+ - const: rockchip,rk2928-pwm
+ - const: rockchip,rk3288-pwm
+ - const: rockchip,vop-pwm
+ - items:
+ - enum:
+ - rockchip,rv1108-pwm
+ - const: rockchip,rk3288-pwm
+
+ reg:
+ maxItems: 1
+
+ clocks:
+ minItems: 1
+ maxItems: 2
+
+ clock-names:
+ maxItems: 2
+
+ "#pwm-cells":
+ enum: [2, 3]
+ description:
+ Must be 2 (rk2928) or 3 (rk3288 and later).
+ See pwm.yaml for a description of the cell format.
+
+required:
+ - compatible
+ - reg
+ - "#pwm-cells"
+
+if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - rockchip,rv1108-pwm
+
+then:
+ properties:
+ clocks:
+ items:
+ - description: Used to derive the functional clock for the device.
+ - description: Used as the APB bus clock.
+
+ clock-names:
+ items:
+ - const: pwm
+ - const: pclk
+
+ required:
+ - clocks
+ - clock-names
+
+else:
+ properties:
+ clocks:
+ maxItems: 1
+ description:
+ Used both to derive the functional clock
+ for the device and as the bus clock.
+
+ required:
+ - clocks
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/rk3188-cru-common.h>
+ pwm0: pwm@20030000 {
+ compatible = "rockchip,rk2928-pwm";
+ reg = <0x20030000 0x10>;
+ clocks = <&cru PCLK_PWM01>;
+ #pwm-cells = <2>;
+ };
--
2.11.0


2021-04-13 11:02:20

by Johan Jonker

[permalink] [raw]
Subject: [PATCH v3 4/4] arm64: dts: rockchip: remove clock-names from pwm nodes

A test with the command below gives this error:

/arch/arm64/boot/dts/rockchip/rk3368-evb-act8846.dt.yaml:
pwm@ff680030: clock-names: ['pwm'] is too short

Devices with only one pwm clock use it to both
to derive the functional clock for the device
and as the bus clock. The driver does not need
"clock-names" to get a handle, so remove them all.

make ARCH=arm64 dtbs_check
DT_SCHEMA_FILES=Documentation/devicetree/bindings/pwm/pwm-rockchip.yaml

Signed-off-by: Johan Jonker <[email protected]>
---
arch/arm64/boot/dts/rockchip/rk3368.dtsi | 4 ----
arch/arm64/boot/dts/rockchip/rk3399.dtsi | 4 ----
2 files changed, 8 deletions(-)

diff --git a/arch/arm64/boot/dts/rockchip/rk3368.dtsi b/arch/arm64/boot/dts/rockchip/rk3368.dtsi
index 61b0a2a90..7832e26a3 100644
--- a/arch/arm64/boot/dts/rockchip/rk3368.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3368.dtsi
@@ -561,7 +561,6 @@
pinctrl-names = "default";
pinctrl-0 = <&pwm0_pin>;
clocks = <&cru PCLK_PWM1>;
- clock-names = "pwm";
status = "disabled";
};

@@ -572,7 +571,6 @@
pinctrl-names = "default";
pinctrl-0 = <&pwm1_pin>;
clocks = <&cru PCLK_PWM1>;
- clock-names = "pwm";
status = "disabled";
};

@@ -581,7 +579,6 @@
reg = <0x0 0xff680020 0x0 0x10>;
#pwm-cells = <3>;
clocks = <&cru PCLK_PWM1>;
- clock-names = "pwm";
status = "disabled";
};

@@ -592,7 +589,6 @@
pinctrl-names = "default";
pinctrl-0 = <&pwm3_pin>;
clocks = <&cru PCLK_PWM1>;
- clock-names = "pwm";
status = "disabled";
};

diff --git a/arch/arm64/boot/dts/rockchip/rk3399.dtsi b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
index e93a5f320..6221b027e 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
@@ -1185,7 +1185,6 @@
pinctrl-names = "default";
pinctrl-0 = <&pwm0_pin>;
clocks = <&pmucru PCLK_RKPWM_PMU>;
- clock-names = "pwm";
status = "disabled";
};

@@ -1196,7 +1195,6 @@
pinctrl-names = "default";
pinctrl-0 = <&pwm1_pin>;
clocks = <&pmucru PCLK_RKPWM_PMU>;
- clock-names = "pwm";
status = "disabled";
};

@@ -1207,7 +1205,6 @@
pinctrl-names = "default";
pinctrl-0 = <&pwm2_pin>;
clocks = <&pmucru PCLK_RKPWM_PMU>;
- clock-names = "pwm";
status = "disabled";
};

@@ -1218,7 +1215,6 @@
pinctrl-names = "default";
pinctrl-0 = <&pwm3a_pin>;
clocks = <&pmucru PCLK_RKPWM_PMU>;
- clock-names = "pwm";
status = "disabled";
};

--
2.11.0

2021-04-13 15:27:14

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH v3 1/4] dt-bindings: pwm: convert pwm-rockchip.txt to YAML

On Mon, 12 Apr 2021 22:01:52 +0200, Johan Jonker wrote:
> Current dts files with 'pwm' nodes are manually verified.
> In order to automate this process pwm-rockchip.txt
> has to be converted to yaml.
>
> Signed-off-by: Johan Jonker <[email protected]>
> ---
> For some SoC nodes this patch serie generates notifications
> for undocumented "interrupts" properties shared between
> PWM channels till there is consensus of what to do with it or
> someone makes a solution for the whole PWM block.
>
> Changed V3:
> fix mistake with compatibles introduced in V2
> Changed V2:
> changed schema for clocks and clock-names
> ---
> .../devicetree/bindings/pwm/pwm-rockchip.txt | 27 -------
> .../devicetree/bindings/pwm/pwm-rockchip.yaml | 88 ++++++++++++++++++++++
> 2 files changed, 88 insertions(+), 27 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/pwm/pwm-rockchip.txt
> create mode 100644 Documentation/devicetree/bindings/pwm/pwm-rockchip.yaml
>

Reviewed-by: Rob Herring <[email protected]>

2021-04-13 21:00:46

by Thierry Reding

[permalink] [raw]
Subject: Re: [PATCH v3 1/4] dt-bindings: pwm: convert pwm-rockchip.txt to YAML

On Mon, Apr 12, 2021 at 10:01:52PM +0200, Johan Jonker wrote:
> Current dts files with 'pwm' nodes are manually verified.
> In order to automate this process pwm-rockchip.txt
> has to be converted to yaml.
>
> Signed-off-by: Johan Jonker <[email protected]>
> ---
> For some SoC nodes this patch serie generates notifications
> for undocumented "interrupts" properties shared between
> PWM channels till there is consensus of what to do with it or
> someone makes a solution for the whole PWM block.
>
> Changed V3:
> fix mistake with compatibles introduced in V2
> Changed V2:
> changed schema for clocks and clock-names
> ---
> .../devicetree/bindings/pwm/pwm-rockchip.txt | 27 -------
> .../devicetree/bindings/pwm/pwm-rockchip.yaml | 88 ++++++++++++++++++++++
> 2 files changed, 88 insertions(+), 27 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/pwm/pwm-rockchip.txt
> create mode 100644 Documentation/devicetree/bindings/pwm/pwm-rockchip.yaml

Heiko, do you want to pick up patches 1 & 2 into your tree along with 3 & 4? If so:

Acked-by: Thierry Reding <[email protected]>


Attachments:
(No filename) (1.13 kB)
signature.asc (849.00 B)
Download all attachments

2021-04-14 01:22:36

by Heiko Stuebner

[permalink] [raw]
Subject: Re: [PATCH v3 1/4] dt-bindings: pwm: convert pwm-rockchip.txt to YAML

Hi Thierry,

Am Dienstag, 13. April 2021, 17:21:49 CEST schrieb Thierry Reding:
> On Mon, Apr 12, 2021 at 10:01:52PM +0200, Johan Jonker wrote:
> > Current dts files with 'pwm' nodes are manually verified.
> > In order to automate this process pwm-rockchip.txt
> > has to be converted to yaml.
> >
> > Signed-off-by: Johan Jonker <[email protected]>
> > ---
> > For some SoC nodes this patch serie generates notifications
> > for undocumented "interrupts" properties shared between
> > PWM channels till there is consensus of what to do with it or
> > someone makes a solution for the whole PWM block.
> >
> > Changed V3:
> > fix mistake with compatibles introduced in V2
> > Changed V2:
> > changed schema for clocks and clock-names
> > ---
> > .../devicetree/bindings/pwm/pwm-rockchip.txt | 27 -------
> > .../devicetree/bindings/pwm/pwm-rockchip.yaml | 88 ++++++++++++++++++++++
> > 2 files changed, 88 insertions(+), 27 deletions(-)
> > delete mode 100644 Documentation/devicetree/bindings/pwm/pwm-rockchip.txt
> > create mode 100644 Documentation/devicetree/bindings/pwm/pwm-rockchip.yaml
>
> Heiko, do you want to pick up patches 1 & 2 into your tree along with 3 & 4? If so:
>
> Acked-by: Thierry Reding <[email protected]>

however you like :-)

I can pick up everything for 5.14 for sure.

Depending on your tree-schedule for the merge-window, you could also pick
up all 4 with my:

Acked-by: Heiko Stuebner <[email protected]>


Heiko



2021-04-23 16:54:09

by Thierry Reding

[permalink] [raw]
Subject: Re: [PATCH v3 1/4] dt-bindings: pwm: convert pwm-rockchip.txt to YAML

On Mon, Apr 12, 2021 at 10:01:52PM +0200, Johan Jonker wrote:
> Current dts files with 'pwm' nodes are manually verified.
> In order to automate this process pwm-rockchip.txt
> has to be converted to yaml.
>
> Signed-off-by: Johan Jonker <[email protected]>
> ---
> For some SoC nodes this patch serie generates notifications
> for undocumented "interrupts" properties shared between
> PWM channels till there is consensus of what to do with it or
> someone makes a solution for the whole PWM block.
>
> Changed V3:
> fix mistake with compatibles introduced in V2
> Changed V2:
> changed schema for clocks and clock-names
> ---
> .../devicetree/bindings/pwm/pwm-rockchip.txt | 27 -------
> .../devicetree/bindings/pwm/pwm-rockchip.yaml | 88 ++++++++++++++++++++++
> 2 files changed, 88 insertions(+), 27 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/pwm/pwm-rockchip.txt
> create mode 100644 Documentation/devicetree/bindings/pwm/pwm-rockchip.yaml

All 4 patches applied, thanks.

Thierry


Attachments:
(No filename) (1.03 kB)
signature.asc (849.00 B)
Download all attachments