Skip to contentSkip to conversation

ARM: dts: aspeed: zaius: Add 1-wire buses

PATCH In review Xo Wang 2 participants 6 messages Nov 16, 2016 – Nov 18, 2016

Subsystems (2)
lore
Share & tools
lore

Xo Wang

author
#0 lore raw

PATCH 1/2 ARM: dts: aspeed: zaius: Add 1-wire buses

Add device-tree bindings to instantiate GPIO-based 1-wire buses. These go to headers for DS18B20 thermal sensors.

---
 arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts +20 -0
index b52e45e..3d997d9 100644
@@ -20,6 +20,26 @@
 		reg = <0x80000000 0x40000000>;
 	};
 
+	onewire0 {
+		compatible = "w1-gpio";
+		gpios = <&gpio ASPEED_GPIO(H, 0) GPIO_ACTIVE_HIGH>;
+	};
+
+	onewire1 {
+		compatible = "w1-gpio";
+		gpios = <&gpio ASPEED_GPIO(H, 1) GPIO_ACTIVE_HIGH>;
+	};
+
+	onewire2 {
+		compatible = "w1-gpio";
+		gpios = <&gpio ASPEED_GPIO(H, 2) GPIO_ACTIVE_HIGH>;
+	};
+
+	onewire3 {
+		compatible = "w1-gpio";
+		gpios = <&gpio ASPEED_GPIO(H, 3) GPIO_ACTIVE_HIGH>;
+	};
+
 	leds {
 		compatible = "gpio-leds";
 
Signature · 1 line
2.8.0.rc3.226.g39d4020
author
#1 lore raw

PATCH 2/2 ARM: dts: aspeed: zaius: Add I2C master selector and hotswap controller

Add device-tree bindings to instantiate the PCA9541A I2C master selector. This driver allows mastering downstream devices after sending an arbitration request to the PCA9541A. Downstream devices go into the 'i2c-arb' child node.

Instantiate the HWMON client driver for the TI LM5066I hotswap controller present on Zaius EVT2 downstream of the master selector.

---
 arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)
arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts +17 -2
index 3d997d9..136eb1d 100644
@@ -210,8 +210,23 @@
 &i2c7 {
 	status = "okay";
 
-	/* MUX PCA9541A (other master: CPU0 PCIe 1)
-	 *   ADM1272 PMBUS @10h
+	pca9541a@70 {
+		compatible = "nxp,pca9541";
+		reg = <0x70>;
+
+		i2c-arb {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			hotswap@10 {
+				compatible = "ti,lm5066";
+				reg = <0x10>;
+			};
+		};
+	};
+
+	/* Master selector PCA9541A @70h (other master: CPU0)
+	 *   LM5066I PMBUS @10h
 	 */
 	/* 12V SMPS Q54SH12050NNDH @61h */
 	/* CPU0 VR ISL68137 0.7V, 0.96V PMBUS @64h */
Signature · 1 line
2.8.0.rc3.226.g39d4020
maintainer
#2 lore raw

Re: [PATCH linux 2/2] ARM: dts: aspeed: zaius: Add I2C master selector and hotswap controller

Hi Xo,

Quoted 4 lines · Xo Wang

Add device-tree bindings to instantiate the PCA9541A I2C master selector. This driver allows mastering downstream devices after sending an arbitration request to the PCA9541A. Downstream devices go into the 'i2c-arb' child node.

I took a look at the bindings document for i2c-mux[1] and it suggests something different.

Is there a reason why you didn't follow what it says?

[1] https://www.kernel.org/doc/Documentation/devicetree/bindings/i2c/i2c-mux.txt

Cheers,

Joel

Quoted 46 lines

Instantiate the HWMON client driver for the TI LM5066I hotswap controller present on Zaius EVT2 downstream of the master selector.

---
 arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)
arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts +17 -3
index 3d997d9..136eb1d 100644
@@ -210,8 +210,23 @@
 &i2c7 {
        status = "okay";
 
-       /* MUX PCA9541A (other master: CPU0 PCIe 1)
-        *   ADM1272 PMBUS @10h
+       pca9541a@70 {
+               compatible = "nxp,pca9541";
+               reg = <0x70>;
+
+               i2c-arb {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       hotswap@10 {
+                               compatible = "ti,lm5066";
+                               reg = <0x10>;
+                       };
+               };
+       };
+
+       /* Master selector PCA9541A @70h (other master: CPU0)
+        *   LM5066I PMBUS @10h
         */
        /* 12V SMPS Q54SH12050NNDH @61h */
        /* CPU0 VR ISL68137 0.7V, 0.96V PMBUS @64h */
--

2.8.0.rc3.226.g39d4020

_______________________________________________
openbmc mailing list
[email protected]
https://lists.ozlabs.org/listinfo/openbmc

author
#3 lore raw

Re: [PATCH linux 2/2] ARM: dts: aspeed: zaius: Add I2C master selector and hotswap controller

Hi Joel,

Quoted 8 lines · Joel Stanley

Hi Xo,

Quoted 4 lines · Xo Wang

Add device-tree bindings to instantiate the PCA9541A I2C master selector. This driver allows mastering downstream devices after sending an arbitration request to the PCA9541A. Downstream devices go into the 'i2c-arb' child node.

Quoted 7 lines

I took a look at the bindings document for i2c-mux[1] and it suggests something different.

Is there a reason why you didn't follow what it says?

[1] https://www.kernel.org/doc/Documentation/devicetree/bindings/i2c/i2c-mux.txt

I was following the I2C arbitration bus doc, which has its i2c slave device nodes in an "i2c-arb" child node. I'm not sure why it was written differently from "i2c-mux" bindings.

To be clear, I haven't 100% tested the LM5066I instantiation since the motherboard I have actually has an ADI ADM1272 at address 0x10 downstream of the NXP PCA9541A.

https://www.kernel.org/doc/Documentation/devicetree/bindings/i2c/i2c-arb.txt

cheers
xo

Quoted 51 lines

Cheers,

Joel

Quoted 46 lines

Instantiate the HWMON client driver for the TI LM5066I hotswap controller present on Zaius EVT2 downstream of the master selector.

---
 arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)
arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts +17 -3
index 3d997d9..136eb1d 100644
@@ -210,8 +210,23 @@
 &i2c7 {
        status = "okay";
 
-       /* MUX PCA9541A (other master: CPU0 PCIe 1)
-        *   ADM1272 PMBUS @10h
+       pca9541a@70 {
+               compatible = "nxp,pca9541";
+               reg = <0x70>;
+
+               i2c-arb {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       hotswap@10 {
+                               compatible = "ti,lm5066";
+                               reg = <0x10>;
+                       };
+               };
+       };
+
+       /* Master selector PCA9541A @70h (other master: CPU0)
+        *   LM5066I PMBUS @10h
         */
        /* 12V SMPS Q54SH12050NNDH @61h */
        /* CPU0 VR ISL68137 0.7V, 0.96V PMBUS @64h */
--

2.8.0.rc3.226.g39d4020

_______________________________________________
openbmc mailing list
[email protected]
https://lists.ozlabs.org/listinfo/openbmc

maintainer
#4 lore raw

Re: [PATCH linux 2/2] ARM: dts: aspeed: zaius: Add I2C master selector and hotswap controller

Quoted 23 lines · Xo Wang

Hi Joel,

Quoted 8 lines · Joel Stanley

Hi Xo,

Quoted 4 lines · Xo Wang

Add device-tree bindings to instantiate the PCA9541A I2C master selector. This driver allows mastering downstream devices after sending an arbitration request to the PCA9541A. Downstream devices go into the 'i2c-arb' child node.

Quoted 7 lines

I took a look at the bindings document for i2c-mux[1] and it suggests something different.

Is there a reason why you didn't follow what it says?

[1] https://www.kernel.org/doc/Documentation/devicetree/bindings/i2c/i2c-mux.txt

I was following the I2C arbitration bus doc, which has its i2c slave device nodes in an "i2c-arb" child node. I'm not sure why it was written differently from "i2c-mux" bindings.

Quoted 6 lines

To be clear, I haven't 100% tested the LM5066I instantiation since the motherboard I have actually has an ADI ADM1272 at address 0x10 downstream of the NXP PCA9541A.

https://www.kernel.org/doc/Documentation/devicetree/bindings/i2c/i2c-arb.txt

Okay. Thanks for the explanation. I have merged both patches into dev-4.7.

Cheers,

Joel

maintainer Reviewed-by on v1 1/2
#5 lore raw
In reply to Xo Wang
Quoted 13 lines · Xo Wang

Add device-tree bindings to instantiate GPIO-based 1-wire buses. These go to headers for DS18B20 thermal sensors.

---
 arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts +0 -0
index b52e45e..3d997d9 100644

arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts line 23

Quoted 4 lines
arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts +1 -0
@@ -20,6 +20,26 @@
                reg = <0x80000000 0x40000000>;
        };
 
+       onewire0 {

I wasn't sure if we should use a cell index: onewire@0, onewire@1, ... The binding suggests yes, but the convention is usually to make the cell index correspond to the reg property, and we don't have one one here.

Lets merge it as is.

Quoted 29 lines
arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts +19 -1
+               compatible = "w1-gpio";
+               gpios = <&gpio ASPEED_GPIO(H, 0) GPIO_ACTIVE_HIGH>;
+       };
+
+       onewire1 {
+               compatible = "w1-gpio";
+               gpios = <&gpio ASPEED_GPIO(H, 1) GPIO_ACTIVE_HIGH>;
+       };
+
+       onewire2 {
+               compatible = "w1-gpio";
+               gpios = <&gpio ASPEED_GPIO(H, 2) GPIO_ACTIVE_HIGH>;
+       };
+
+       onewire3 {
+               compatible = "w1-gpio";
+               gpios = <&gpio ASPEED_GPIO(H, 3) GPIO_ACTIVE_HIGH>;
+       };
+
        leds {
                compatible = "gpio-leds";
 
--

2.8.0.rc3.226.g39d4020

_______________________________________________
openbmc mailing list
[email protected]
https://lists.ozlabs.org/listinfo/openbmc