Skip to contentSkip to conversation

pcf857x: DTS fixes and DT binding to json-schema conversion

PATCH Applied Geert Uytterhoeven 7 participants 13 messages Jun 1, 2021 – Jun 25, 2021

Subsystems (5)

v2 of 3 Applied Latest is v3 →

lore
Share & tools
lore
#0 lore raw

v2 cover pcf857x: DTS fixes and DT binding to json-schema conversion

Hi all,

This patch series converts the PCF857x-compatible I/O expanders Device Tree binding documentation to json-schema, after fixing a few issues in DT binding examples and DTS files.

Changes compared to v1[1]:
- Drop applied fixes,
- Drop "ti,pcf8575" from examples and DTS files,
- Drop support for "ti,pcf8575", as it's 100% compatible with

    "nxp,pcf8575",

- Drop "hog-[0-9]+" from hog names,
- Rely on dt-schema/schemas/gpio/gpio-hog.yaml for hog properties.

Thanks!

[1] [PATCH 0/3] pcf857x: DTS fixes and DT binding to json-schema conversion

    https://lore.kernel.org/r/[email protected]/

Geert Uytterhoeven (4):
dt-bindings: i2c: ce4100: Replace "ti,pcf8575" by "nxp,pcf8575"
ARM: dts: dra7x-evm: Drop "ti,pcf8575"
x86: ce4100: Replace "ti,pcf8575" by "nxp,pcf8575"
dt-bindings: gpio: pcf857x: Convert to json-schema

 .../devicetree/bindings/gpio/gpio-pcf857x.txt |  69 ------------
 .../devicetree/bindings/gpio/nxp,pcf8575.yaml | 103 ++++++++++++++++++
 .../bindings/i2c/i2c-pxa-pci-ce4100.txt       |   4 +-
 arch/arm/boot/dts/dra7-evm.dts                |   6 +-
 arch/arm/boot/dts/dra72-evm-common.dtsi       |   4 +-
 arch/arm/boot/dts/dra76-evm.dts               |   6 +-
 arch/x86/platform/ce4100/falconfalls.dts      |   4 +-
 7 files changed, 115 insertions(+), 81 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-pcf857x.txt
 create mode 100644 Documentation/devicetree/bindings/gpio/nxp,pcf8575.yaml
Signature · 12 lines
2.25.1

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds
#1 lore raw

PATCH v2 1/4 dt-bindings: i2c: ce4100: Replace "ti,pcf8575" by "nxp,pcf8575"

The TI part is equivalent to the NXP part, and its compatible value is not documented in the DT bindings.

---
v2:
- New.

---
 Documentation/devicetree/bindings/i2c/i2c-pxa-pci-ce4100.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
Documentation/devicetree/bindings/i2c/i2c-pxa-pci-ce4100.txt +2 -2
index 569b16248514ff86..1ff6f8487a2d7bbd 100644
@@ -71,7 +71,7 @@ This is an example which is used on FalconFalls:
 			/* This I2C controller has one gpio controller */
 			gpio@26 {
 				#gpio-cells = <2>;
-				compatible = "ti,pcf8575";
+				compatible = "nxp,pcf8575";
 				reg = <0x26>;
 				gpio-controller;
 			};
@@ -85,7 +85,7 @@ This is an example which is used on FalconFalls:
 
 			gpio@26 {
 				#gpio-cells = <2>;
-				compatible = "ti,pcf8575";
+				compatible = "nxp,pcf8575";
 				reg = <0x26>;
 				gpio-controller;
 			};
Signature · 1 line
2.25.1
#2 lore raw

Re: [PATCH v2 1/4] dt-bindings: i2c: ce4100: Replace "ti,pcf8575" by "nxp,pcf8575"

Quoted 4 lines · Geert Uytterhoeven

The TI part is equivalent to the NXP part, and its compatible value is not documented in the DT bindings.

I'd think I pick this individually? Or shall it all go via some tree?

maintainer Reviewed-by
#3 lore raw

Re: [PATCH v2 1/4] dt-bindings: i2c: ce4100: Replace "ti,pcf8575" by "nxp,pcf8575"

Quoted 7 lines · Wolfram Sang
Quoted 4 lines · Geert Uytterhoeven

The TI part is equivalent to the NXP part, and its compatible value is not documented in the DT bindings.

I'd think I pick this individually? Or shall it all go via some tree?

Yes, you can take it.

#5 lore raw

PATCH v2 2/4 ARM: dts: dra7x-evm: Drop "ti,pcf8575"

In reply to Geert Uytterhoeven

The TI part is equivalent to the NXP part and its compatible value is not documented in the DT bindings. All other users of similar I2C GPIO expanders just use the compatible values of the original NXP parts.

---
v2:
- New.

---
 arch/arm/boot/dts/dra7-evm.dts          | 6 +++---
 arch/arm/boot/dts/dra72-evm-common.dtsi | 4 ++--
 arch/arm/boot/dts/dra76-evm.dts         | 6 +++---
 3 files changed, 8 insertions(+), 8 deletions(-)
arch/arm/boot/dts/dra7-evm.dts +3 -3
index 3dcb6e1f49bcf1f0..87deb6a76eff3602 100644
@@ -319,7 +319,7 @@ sysen2: sysen2 {
 	};
 
 	pcf_lcd: gpio@20 {
-		compatible = "ti,pcf8575", "nxp,pcf8575";
+		compatible = "nxp,pcf8575";
 		reg = <0x20>;
 		gpio-controller;
 		#gpio-cells = <2>;
@@ -330,7 +330,7 @@ pcf_lcd: gpio@20 {
 	};
 
 	pcf_gpio_21: gpio@21 {
-		compatible = "ti,pcf8575", "nxp,pcf8575";
+		compatible = "nxp,pcf8575";
 		reg = <0x21>;
 		lines-initial-states = <0x1408>;
 		gpio-controller;
@@ -362,7 +362,7 @@ &i2c2 {
 	clock-frequency = <400000>;
 
 	pcf_hdmi: gpio@26 {
-		compatible = "ti,pcf8575", "nxp,pcf8575";
+		compatible = "nxp,pcf8575";
 		reg = <0x26>;
 		gpio-controller;
 		#gpio-cells = <2>;
arch/arm/boot/dts/dra72-evm-common.dtsi +2 -2
index f2384277d5dcdc5c..f12825268188e493 100644
@@ -226,7 +226,7 @@ pcf_lcd: gpio@20 {
 	};
 
 	pcf_gpio_21: gpio@21 {
-		compatible = "ti,pcf8575", "nxp,pcf8575";
+		compatible = "nxp,pcf8575";
 		reg = <0x21>;
 		lines-initial-states = <0x1408>;
 		gpio-controller;
@@ -256,7 +256,7 @@ &i2c5 {
 	clock-frequency = <400000>;
 
 	pcf_hdmi: pcf8575@26 {
-		compatible = "ti,pcf8575", "nxp,pcf8575";
+		compatible = "nxp,pcf8575";
 		reg = <0x26>;
 		gpio-controller;
 		#gpio-cells = <2>;
arch/arm/boot/dts/dra76-evm.dts +3 -3
index df47ea59c9c404c2..90e036ac6ffb5197 100644
@@ -355,7 +355,7 @@ buck23_reg: buck23 {
 	};
 
 	pcf_lcd: pcf8757@20 {
-		compatible = "ti,pcf8575", "nxp,pcf8575";
+		compatible = "nxp,pcf8575";
 		reg = <0x20>;
 		gpio-controller;
 		#gpio-cells = <2>;
@@ -366,7 +366,7 @@ pcf_lcd: pcf8757@20 {
 	};
 
 	pcf_gpio_21: pcf8757@21 {
-		compatible = "ti,pcf8575", "nxp,pcf8575";
+		compatible = "nxp,pcf8575";
 		reg = <0x21>;
 		gpio-controller;
 		#gpio-cells = <2>;
@@ -377,7 +377,7 @@ pcf_gpio_21: pcf8757@21 {
 	};
 
 	pcf_hdmi: pcf8575@26 {
-		compatible = "ti,pcf8575", "nxp,pcf8575";
+		compatible = "nxp,pcf8575";
 		reg = <0x26>;
 		gpio-controller;
 		#gpio-cells = <2>;
Signature · 1 line
2.25.1
#6 lore raw

Re: [PATCH v2 2/4] ARM: dts: dra7x-evm: Drop "ti,pcf8575"

Quoted 3 lines · Geert Uytterhoeven

The TI part is equivalent to the NXP part and its compatible value is not documented in the DT bindings. All other users of similar I2C GPIO expanders just use the compatible values of the original NXP parts.

Picking this patch into omap-for-v5.14/dt thanks.

Tony

#7 lore raw

PATCH v2 3/4 x86: ce4100: Replace "ti,pcf8575" by "nxp,pcf8575"

In reply to Geert Uytterhoeven

The TI part is equivalent to the NXP part, and its compatible value is not documented in the DT bindings.

Note that while the Linux driver DT match table does not contain the compatible value of the TI part, it could still match to this part, as i2c_device_id-based matching ignores the vendor part of the compatible value.

---
v2:
- New.

---
 arch/x86/platform/ce4100/falconfalls.dts | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
arch/x86/platform/ce4100/falconfalls.dts +2 -2
index 0ac3d43571361112..65fa3d866226ce97 100644
@@ -249,7 +249,7 @@ i2c@1 {
 
 						gpio@26 {
 							#gpio-cells = <2>;
-							compatible = "ti,pcf8575";
+							compatible = "nxp,pcf8575";
 							reg = <0x26>;
 							gpio-controller;
 						};
@@ -263,7 +263,7 @@ i2c@2 {
 
 						gpio@26 {
 							#gpio-cells = <2>;
-							compatible = "ti,pcf8575";
+							compatible = "nxp,pcf8575";
 							reg = <0x26>;
 							gpio-controller;
 						};
Signature · 1 line
2.25.1
Reviewed-by on v2 3/4
#8 lore raw

Re: [PATCH v2 3/4] x86: ce4100: Replace "ti,pcf8575" by "nxp,pcf8575"

Quoted 8 lines · Geert Uytterhoeven

The TI part is equivalent to the NXP part, and its compatible value is not documented in the DT bindings.

Note that while the Linux driver DT match table does not contain the compatible value of the TI part, it could still match to this part, as i2c_device_id-based matching ignores the vendor part of the compatible value.

LGTM!

Maybe at some point I will find the time to resurrect the CE4100 based device that collects dirt on my desk...

Quoted 33 lines

---
v2:
- New.

---
 arch/x86/platform/ce4100/falconfalls.dts | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
arch/x86/platform/ce4100/falconfalls.dts +2 -3
index 0ac3d43571361112..65fa3d866226ce97 100644
@@ -249,7 +249,7 @@ i2c@1 {
 
                                                gpio@26 {
                                                        #gpio-cells = <2>;
-                                                       compatible = "ti,pcf8575";
+                                                       compatible = "nxp,pcf8575";
                                                        reg = <0x26>;
                                                        gpio-controller;
                                                };
@@ -263,7 +263,7 @@ i2c@2 {
 
                                                gpio@26 {
                                                        #gpio-cells = <2>;
-                                                       compatible = "ti,pcf8575";
+                                                       compatible = "nxp,pcf8575";
                                                        reg = <0x26>;
                                                        gpio-controller;
                                                };
--

2.25.1

Signature · 2 lines
With Best Regards,
Andy Shevchenko
#9 lore raw

PATCH v2 4/4 dt-bindings: gpio: pcf857x: Convert to json-schema

In reply to Geert Uytterhoeven

Convert the PCF857x-compatible I/O expanders Device Tree binding documentation to json-schema.

Document missing compatible values, properties, and gpio hogs.

---
v2:
- Drop support for "ti,pcf8575", as it's 100% compatible with

    "nxp,pcf8575",
  - Drop "hog-[0-9]+" from hog names,
  - Rely on dt-schema/schemas/gpio/gpio-hog.yaml for hog properties.
---
 .../devicetree/bindings/gpio/gpio-pcf857x.txt |  69 ------------
 .../devicetree/bindings/gpio/nxp,pcf8575.yaml | 103 ++++++++++++++++++
 2 files changed, 103 insertions(+), 69 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-pcf857x.txt
 create mode 100644 Documentation/devicetree/bindings/gpio/nxp,pcf8575.yaml
Documentation/devicetree/bindings/gpio/gpio-pcf857x.txt deleted +0 -69
deleted file mode 100644
index a482455a205b0855..0000000000000000
@@ -1,69 +0,0 @@
-* PCF857x-compatible I/O expanders
-
-The PCF857x-compatible chips have "quasi-bidirectional" I/O lines that can be
-driven high by a pull-up current source or driven low to ground. This combines
-the direction and output level into a single bit per line, which can't be read
-back. We can't actually know at initialization time whether a line is configured
-(a) as output and driving the signal low/high, or (b) as input and reporting a
-low/high value, without knowing the last value written since the chip came out
-of reset (if any). The only reliable solution for setting up line direction is
-thus to do it explicitly.
-
-Required Properties:
-
-  - compatible: should be one of the following.
-    - "maxim,max7328": For the Maxim MAX7378
-    - "maxim,max7329": For the Maxim MAX7329
-    - "nxp,pca8574": For the NXP PCA8574
-    - "nxp,pca8575": For the NXP PCA8575
-    - "nxp,pca9670": For the NXP PCA9670
-    - "nxp,pca9671": For the NXP PCA9671
-    - "nxp,pca9672": For the NXP PCA9672
-    - "nxp,pca9673": For the NXP PCA9673
-    - "nxp,pca9674": For the NXP PCA9674
-    - "nxp,pca9675": For the NXP PCA9675
-    - "nxp,pcf8574": For the NXP PCF8574
-    - "nxp,pcf8574a": For the NXP PCF8574A
-    - "nxp,pcf8575": For the NXP PCF8575
-
-  - reg: I2C slave address.
-
-  - gpio-controller: Marks the device node as a gpio controller.
-  - #gpio-cells: Should be 2. The first cell is the GPIO number and the second
-    cell specifies GPIO flags, as defined in <dt-bindings/gpio/gpio.h>. Only the
-    GPIO_ACTIVE_HIGH and GPIO_ACTIVE_LOW flags are supported.
-
-Optional Properties:
-
-  - lines-initial-states: Bitmask that specifies the initial state of each
-  line. When a bit is set to zero, the corresponding line will be initialized to
-  the input (pulled-up) state. When the  bit is set to one, the line will be
-  initialized the low-level output state. If the property is not specified
-  all lines will be initialized to the input state.
-
-  The I/O expander can detect input state changes, and thus optionally act as
-  an interrupt controller. When the expander interrupt line is connected all the
-  following properties must be set. For more information please see the
-  interrupt controller device tree bindings documentation available at
-  Documentation/devicetree/bindings/interrupt-controller/interrupts.txt.
-
-  - interrupt-controller: Identifies the node as an interrupt controller.
-  - #interrupt-cells: Number of cells to encode an interrupt source, shall be 2.
-  - interrupts: Interrupt specifier for the controllers interrupt.
-
-
-Please refer to gpio.txt in this directory for details of the common GPIO
-bindings used by client devices.
-
-Example: PCF8575 I/O expander node
-
-	pcf8575: gpio@20 {
-		compatible = "nxp,pcf8575";
-		reg = <0x20>;
-		interrupt-parent = <&irqpin2>;
-		interrupts = <3 0>;
-		gpio-controller;
-		#gpio-cells = <2>;
-		interrupt-controller;
-		#interrupt-cells = <2>;
-	};
Documentation/devicetree/bindings/gpio/nxp,pcf8575.yaml new file +103 -0

103 lines not on this page · raw message

Signature · 1 line
2.25.1
maintainer Reviewed-by on v2 4/4
#10 lore raw

Re: [PATCH v2 4/4] dt-bindings: gpio: pcf857x: Convert to json-schema

Quoted 9 lines · Geert Uytterhoeven

Convert the PCF857x-compatible I/O expanders Device Tree binding documentation to json-schema.

Document missing compatible values, properties, and gpio hogs.

---
v2:
- Drop support for "ti,pcf8575", as it's 100% compatible with

Quoted 10 lines
    "nxp,pcf8575",
  - Drop "hog-[0-9]+" from hog names,
  - Rely on dt-schema/schemas/gpio/gpio-hog.yaml for hog properties.
---
 .../devicetree/bindings/gpio/gpio-pcf857x.txt |  69 ------------
 .../devicetree/bindings/gpio/nxp,pcf8575.yaml | 103 ++++++++++++++++++
 2 files changed, 103 insertions(+), 69 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-pcf857x.txt
 create mode 100644 Documentation/devicetree/bindings/gpio/nxp,pcf8575.yaml