Subject: [PATCH v1 0/2] Update yosemite4 dts for nct7363 and hardware

This patch series includes two commits that update the dts for yosemite4.
The first commit revises the mux and hardware configuration in the DTS.
The second commit adds support for the nct7363 device.

Delphine CC Chiu (2):
Revise mux and hardware in yosemite4 dts
Add nct7363 in yosemite4 dts

.../aspeed/aspeed-bmc-facebook-yosemite4.dts | 222 ++++++++++++++++--
1 file changed, 202 insertions(+), 20 deletions(-)

--
2.25.1



Subject: [PATCH v1 2/2] Add nct7363 in yosemite4 dts

ARM: dts: aspeed: yosemite4:
Add nct7363(0x21 and 0x23) in yosemite4.dts

Signed-off-by: Delphine CC Chiu <[email protected]>
---
.../aspeed/aspeed-bmc-facebook-yosemite4.dts | 144 ++++++++++++++++++
1 file changed, 144 insertions(+)

diff --git a/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-yosemite4.dts b/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-yosemite4.dts
index e45293762316..06b709b0a706 100644
--- a/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-yosemite4.dts
+++ b/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-yosemite4.dts
@@ -467,6 +467,42 @@ channel@5 {
};
};

+ hwmon0: hwmon@21 {
+ compatible = "nuvoton,nct7363";
+ reg = <0x21>;
+ #pwm-cells = <2>;
+
+ fan-3 {
+ pwms = <&hwmon0 2 20000>;
+ tach-ch = /bits/ 8 <0x00>;
+ };
+
+ fan-4 {
+ pwms = <&hwmon0 5 20000>;
+ tach-ch = /bits/ 8 <0x01>;
+ };
+
+ fan-5 {
+ pwms = <&hwmon0 5 20000>;
+ tach-ch = /bits/ 8 <0x02>;
+ };
+
+ fan-0 {
+ pwms = <&hwmon0 0 20000>;
+ tach-ch = /bits/ 8 <0x09>;
+ };
+
+ fan-1 {
+ pwms = <&hwmon0 0 20000>;
+ tach-ch = /bits/ 8 <0x0c>;
+ };
+
+ fan-2 {
+ pwms = <&hwmon0 2 20000>;
+ tach-ch = /bits/ 8 <0x0e>;
+ };
+ };
+
gpio@22{
compatible = "ti,tca6424";
reg = <0x22>;
@@ -474,6 +510,42 @@ gpio@22{
#gpio-cells = <2>;
};

+ hwmon1: hwmon@23 {
+ compatible = "nuvoton,nct7363";
+ reg = <0x23>;
+ #pwm-cells = <2>;
+
+ fan-3 {
+ pwms = <&hwmon0 2 20000>;
+ tach-ch = /bits/ 8 <0x00>;
+ };
+
+ fan-4 {
+ pwms = <&hwmon0 5 20000>;
+ tach-ch = /bits/ 8 <0x01>;
+ };
+
+ fan-5 {
+ pwms = <&hwmon0 5 20000>;
+ tach-ch = /bits/ 8 <0x02>;
+ };
+
+ fan-0 {
+ pwms = <&hwmon0 0 20000>;
+ tach-ch = /bits/ 8 <0x09>;
+ };
+
+ fan-1 {
+ pwms = <&hwmon0 0 20000>;
+ tach-ch = /bits/ 8 <0x0c>;
+ };
+
+ fan-2 {
+ pwms = <&hwmon0 2 20000>;
+ tach-ch = /bits/ 8 <0x0e>;
+ };
+ };
+
pwm@2f{
compatible = "maxim,max31790";
#address-cells = <1>;
@@ -537,6 +609,42 @@ channel@5 {
};
};

+ hwmon2: hwmon@21 {
+ compatible = "nuvoton,nct7363";
+ reg = <0x21>;
+ #pwm-cells = <2>;
+
+ fan-3 {
+ pwms = <&hwmon2 2 20000>;
+ tach-ch = /bits/ 8 <0x00>;
+ };
+
+ fan-4 {
+ pwms = <&hwmon2 5 20000>;
+ tach-ch = /bits/ 8 <0x01>;
+ };
+
+ fan-5 {
+ pwms = <&hwmon2 5 20000>;
+ tach-ch = /bits/ 8 <0x02>;
+ };
+
+ fan-0 {
+ pwms = <&hwmon2 0 20000>;
+ tach-ch = /bits/ 8 <0x09>;
+ };
+
+ fan-1 {
+ pwms = <&hwmon2 0 20000>;
+ tach-ch = /bits/ 8 <0x0c>;
+ };
+
+ fan-2 {
+ pwms = <&hwmon2 2 20000>;
+ tach-ch = /bits/ 8 <0x0e>;
+ };
+ };
+
gpio@22{
compatible = "ti,tca6424";
reg = <0x22>;
@@ -544,6 +652,42 @@ gpio@22{
#gpio-cells = <2>;
};

+ hwmon3: hwmon@23 {
+ compatible = "nuvoton,nct7363";
+ reg = <0x23>;
+ #pwm-cells = <2>;
+
+ fan-3 {
+ pwms = <&hwmon3 2 20000>;
+ tach-ch = /bits/ 8 <0x00>;
+ };
+
+ fan-4 {
+ pwms = <&hwmon3 5 20000>;
+ tach-ch = /bits/ 8 <0x01>;
+ };
+
+ fan-5 {
+ pwms = <&hwmon3 5 20000>;
+ tach-ch = /bits/ 8 <0x02>;
+ };
+
+ fan-0 {
+ pwms = <&hwmon3 0 20000>;
+ tach-ch = /bits/ 8 <0x09>;
+ };
+
+ fan-1 {
+ pwms = <&hwmon3 0 20000>;
+ tach-ch = /bits/ 8 <0x0c>;
+ };
+
+ fan-2 {
+ pwms = <&hwmon3 2 20000>;
+ tach-ch = /bits/ 8 <0x0e>;
+ };
+ };
+
pwm@2f{
compatible = "maxim,max31790";
#address-cells = <1>;
--
2.25.1


Subject: [PATCH v1 1/2] Revise mux and hardware in yosemite4 dts

ARM: dts: aspeed: yosemite4:
Change hardware configuration, consequently modifying the mux in the dts.

Signed-off-by: Delphine CC Chiu <[email protected]>
---
.../aspeed/aspeed-bmc-facebook-yosemite4.dts | 78 ++++++++++++++-----
1 file changed, 58 insertions(+), 20 deletions(-)

diff --git a/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-yosemite4.dts b/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-yosemite4.dts
index 64075cc41d92..e45293762316 100644
--- a/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-yosemite4.dts
+++ b/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-yosemite4.dts
@@ -433,16 +433,14 @@ eeprom@51 {
reg = <0x51>;
};

- i2c-mux@71 {
- compatible = "nxp,pca9846";
+ i2c-mux@74 {
+ compatible = "nxp,pca9546";
#address-cells = <1>;
#size-cells = <0>;
-
- idle-state = <0>;
i2c-mux-idle-disconnect;
- reg = <0x71>;
+ reg = <0x74>;

- i2c@0 {
+ inux30: i2c@0{
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
@@ -450,26 +448,46 @@ i2c@0 {
adc@1f {
compatible = "ti,adc128d818";
reg = <0x1f>;
- ti,mode = /bits/ 8 <2>;
+ ti,mode = /bits/ 8 <1>;
};

pwm@20{
- compatible = "max31790";
- reg = <0x20>;
+ compatible = "maxim,max31790";
#address-cells = <1>;
#size-cells = <0>;
+ reg = <0x20>;
+ channel@4 {
+ reg = <4>;
+ sensor-type = "TACH";
+ };
+
+ channel@5 {
+ reg = <5>;
+ sensor-type = "TACH";
+ };
};

gpio@22{
compatible = "ti,tca6424";
reg = <0x22>;
+ gpio-controller;
+ #gpio-cells = <2>;
};

- pwm@23{
- compatible = "max31790";
- reg = <0x23>;
+ pwm@2f{
+ compatible = "maxim,max31790";
#address-cells = <1>;
#size-cells = <0>;
+ reg = <0x2f>;
+ channel@4 {
+ reg = <4>;
+ sensor-type = "TACH";
+ };
+
+ channel@5 {
+ reg = <5>;
+ sensor-type = "TACH";
+ };
};

adc@33 {
@@ -492,34 +510,54 @@ gpio@61 {
};
};

- i2c@1 {
+ imux31: i2c@1 {
#address-cells = <1>;
#size-cells = <0>;
- reg = <0>;
+ reg = <1>;

adc@1f {
compatible = "ti,adc128d818";
reg = <0x1f>;
- ti,mode = /bits/ 8 <2>;
+ ti,mode = /bits/ 8 <1>;
};

pwm@20{
- compatible = "max31790";
- reg = <0x20>;
+ compatible = "maxim,max31790";
#address-cells = <1>;
#size-cells = <0>;
+ reg = <0x20>;
+ channel@4 {
+ reg = <4>;
+ sensor-type = "TACH";
+ };
+
+ channel@5 {
+ reg = <5>;
+ sensor-type = "TACH";
+ };
};

gpio@22{
compatible = "ti,tca6424";
reg = <0x22>;
+ gpio-controller;
+ #gpio-cells = <2>;
};

- pwm@23{
- compatible = "max31790";
- reg = <0x23>;
+ pwm@2f{
+ compatible = "maxim,max31790";
#address-cells = <1>;
#size-cells = <0>;
+ reg = <0x2f>;
+ channel@4 {
+ reg = <4>;
+ sensor-type = "TACH";
+ };
+
+ channel@5 {
+ reg = <5>;
+ sensor-type = "TACH";
+ };
};

adc@33 {
--
2.25.1


2024-04-26 00:51:58

by Andrew Jeffery

[permalink] [raw]
Subject: Re: [PATCH v1 1/2] Revise mux and hardware in yosemite4 dts

On Thu, 2024-04-25 at 14:06 +0800, Delphine CC Chiu wrote:
> ARM: dts: aspeed: yosemite4:

This should be in the patch subject, not the body of the commit
message.

> Change hardware configuration, consequently modifying the mux in the dts.

Perhaps "We have a new iteration of the hardware design, so update the
devicetree to match."?

>
> Signed-off-by: Delphine CC Chiu <[email protected]>

Overall it feels a bit untidy updating the description of distinct
devices in the one patch.

> ---
> .../aspeed/aspeed-bmc-facebook-yosemite4.dts | 78 ++++++++++++++-----
> 1 file changed, 58 insertions(+), 20 deletions(-)
>
> diff --git a/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-yosemite4.dts b/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-yosemite4.dts
> index 64075cc41d92..e45293762316 100644
> --- a/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-yosemite4.dts
> +++ b/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-yosemite4.dts
> @@ -433,16 +433,14 @@ eeprom@51 {
> reg = <0x51>;
> };
>
> - i2c-mux@71 {
> - compatible = "nxp,pca9846";
> + i2c-mux@74 {
> + compatible = "nxp,pca9546";
> #address-cells = <1>;
> #size-cells = <0>;
> -
> - idle-state = <0>;
> i2c-mux-idle-disconnect;
> - reg = <0x71>;
> + reg = <0x74>;
>
> - i2c@0 {
> + inux30: i2c@0{

'inux'? 'imux'?

> #address-cells = <1>;
> #size-cells = <0>;
> reg = <0>;
> @@ -450,26 +448,46 @@ i2c@0 {
> adc@1f {
> compatible = "ti,adc128d818";
> reg = <0x1f>;
> - ti,mode = /bits/ 8 <2>;
> + ti,mode = /bits/ 8 <1>;
> };
>
> pwm@20{
> - compatible = "max31790";
> - reg = <0x20>;
> + compatible = "maxim,max31790";

This looks like a change motivated by binding validation or a driver
change rather than hardware design :)

> #address-cells = <1>;
> #size-cells = <0>;
> + reg = <0x20>;
> + channel@4 {
> + reg = <4>;
> + sensor-type = "TACH";
> + };
> +
> + channel@5 {
> + reg = <5>;
> + sensor-type = "TACH";
> + };
> };
>
> gpio@22{
> compatible = "ti,tca6424";
> reg = <0x22>;
> + gpio-controller;
> + #gpio-cells = <2>;
> };
>
> - pwm@23{
> - compatible = "max31790";
> - reg = <0x23>;
> + pwm@2f{
> + compatible = "maxim,max31790";

Again here

Andrew

2024-04-26 00:59:27

by Andrew Jeffery

[permalink] [raw]
Subject: Re: [PATCH v1 2/2] Add nct7363 in yosemite4 dts

On Thu, 2024-04-25 at 14:06 +0800, Delphine CC Chiu wrote:
> ARM: dts: aspeed: yosemite4:

This should be in the patch subject, not the commit message body.

> Add nct7363(0x21 and 0x23) in yosemite4.dts
>
> Signed-off-by: Delphine CC Chiu <[email protected]>
> ---
> .../aspeed/aspeed-bmc-facebook-yosemite4.dts | 144 ++++++++++++++++++
> 1 file changed, 144 insertions(+)
>
> diff --git a/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-yosemite4.dts b/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-yosemite4.dts
> index e45293762316..06b709b0a706 100644
> --- a/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-yosemite4.dts
> +++ b/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-yosemite4.dts
> @@ -467,6 +467,42 @@ channel@5 {
> };
> };
>
> + hwmon0: hwmon@21 {

I feel hwmon describes a subsystem in linux more than it does hardware,
and using it for a node name feels a bit off to me. It's not listed in
the devicetree spec (v0.4) as a recommended generic name, and is only
used in a handful of devicetrees - two of which are ancient BMC
devicetrees:

((v6.9-rc5)) $ git grep -l hwmon@ -- arch/arm/boot/dts/
arch/arm/boot/dts/aspeed/aspeed-bmc-opp-palmetto.dts
arch/arm/boot/dts/aspeed/aspeed-bmc-opp-vesnin.dts
arch/arm/boot/dts/intel/ixp/intel-ixp42x-freecom-fsg-3.dts
arch/arm/boot/dts/intel/ixp/intel-ixp42x-gateworks-gw2348.dts
arch/arm/boot/dts/intel/ixp/intel-ixp43x-gateworks-gw2358.dts
arch/arm/boot/dts/marvell/armada-370-c200-v2.dts
arch/arm/boot/dts/marvell/armada-385-atl-x530.dts
arch/arm/boot/dts/microchip/lan966x.dtsi
arch/arm/boot/dts/nxp/imx/imx6q-apalis-eval-v1.2.dts
arch/arm/boot/dts/xilinx/zynq-zc702.dts

> + compatible = "nuvoton,nct7363";

This compatible seems to be undocumented as of v6.9-rc5? Should you
also send a binding patch?

Andrew