2023-12-12 16:41:34

by Ninad Palsule

[permalink] [raw]
Subject: [PATCH v1 5/8] ARM: dts: aspeed: System1: Voltage regulators

This commit adds different voltage regulators.

Tested:
This board is tested using the simics simulator.

Signed-off-by: Ninad Palsule <[email protected]>
---
.../dts/aspeed/aspeed-bmc-ibm-system1.dts | 266 ++++++++++++++++++
1 file changed, 266 insertions(+)

diff --git a/arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-system1.dts b/arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-system1.dts
index 0557bff9f36a..b8e7e52d4600 100644
--- a/arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-system1.dts
+++ b/arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-system1.dts
@@ -114,10 +114,127 @@ vga_memory: region@bf000000 {
};
};

+ iio-hwmon {
+ compatible = "iio-hwmon";
+ io-channels = <&p12v_vd 0>, <&p5v_aux_vd 0>,
+ <&p5v_bmc_aux_vd 0>, <&p3v3_aux_vd 0>,
+ <&p3v3_bmc_aux_vd 0>, <&p1v8_bmc_aux_vd 0>,
+ <&adc1 4>, <&adc0 2>, <&adc1 0>,
+ <&p2V5_aux_vd 0>, <&adc1 7>;
+ };
+
+ p12v_vd: voltage_divider1 {
+ compatible = "voltage-divider";
+ io-channels = <&adc1 3>;
+ #io-channel-cells = <1>;
+
+ /* Scale the system voltage by 1127/127 to fit the ADC range.
+ * Use small nominator to prevent integer overflow.
+ */
+ output-ohms = <15>;
+ full-ohms = <133>;
+ };
+
+ p5v_aux_vd: voltage_divider2 {
+ compatible = "voltage-divider";
+ io-channels = <&adc1 5>;
+ #io-channel-cells = <1>;
+
+ /* Scale the system voltage by 1365/365 to fit the ADC range.
+ * Use small nominator to prevent integer overflow.
+ */
+ output-ohms = <50>;
+ full-ohms = <187>;
+ };
+
+ p5v_bmc_aux_vd: voltage_divider3 {
+ compatible = "voltage-divider";
+ io-channels = <&adc0 3>;
+ #io-channel-cells = <1>;
+
+ /* Scale the system voltage by 1365/365 to fit the ADC range.
+ * Use small nominator to prevent integer overflow.
+ */
+ output-ohms = <50>;
+ full-ohms = <187>;
+ };
+
+ p3v3_aux_vd: voltage_divider4 {
+ compatible = "voltage-divider";
+ io-channels = <&adc1 2>;
+ #io-channel-cells = <1>;
+
+ /* Scale the system voltage by 1698/698 to fit the ADC range.
+ * Use small nominator to prevent integer overflow.
+ */
+ output-ohms = <14>;
+ full-ohms = <34>;
+ };
+
+ p3v3_bmc_aux_vd: voltage_divider5 {
+ compatible = "voltage-divider";
+ io-channels = <&adc0 7>;
+ #io-channel-cells = <1>;
+
+ /* Scale the system voltage by 1698/698 to fit the ADC range.
+ * Use small nominator to prevent integer overflow.
+ */
+ output-ohms = <14>;
+ full-ohms = <34>;
+ };
+
+ p1v8_bmc_aux_vd: voltage_divider6 {
+ compatible = "voltage-divider";
+ io-channels = <&adc0 6>;
+ #io-channel-cells = <1>;
+
+ /* Scale the system voltage by 4000/3000 to fit the ADC range.
+ * Use small nominator to prevent integer overflow.
+ */
+ output-ohms = <3>;
+ full-ohms = <4>;
+ };
+
+ p2V5_aux_vd: voltage_divider7 {
+ compatible = "voltage-divider";
+ io-channels = <&adc1 1>;
+ #io-channel-cells = <1>;
+
+ /* Scale the system voltage by 2100/1100 to fit the ADC range.
+ * Use small nominator to prevent integer overflow.
+ */
+ output-ohms = <11>;
+ full-ohms = <21>;
+ };
+
+ p1v8_bmc_aux: fixedregulator-p1v8_bmc_aux {
+ compatible = "regulator-fixed";
+ regulator-name = "p1v8_bmc_aux";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ };
+};
+
+&adc0 {
+ status = "okay";
+ vref-supply = <&p1v8_bmc_aux>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_adc0_default
+ &pinctrl_adc1_default
+ &pinctrl_adc2_default
+ &pinctrl_adc3_default
+ &pinctrl_adc4_default
+ &pinctrl_adc5_default
+ &pinctrl_adc6_default
+ &pinctrl_adc7_default>;
};

&adc1 {
status = "okay";
+ vref-supply = <&p1v8_bmc_aux>;
+ aspeed,battery-sensing;

aspeed,int-vref-microvolt = <2500000>;
pinctrl-names = "default";
@@ -250,10 +367,32 @@ &kcs3 {

&i2c0 {
status = "okay";
+
+ regulator@60 {
+ compatible = "maxim,max8952";
+ reg = <0x60>;
+
+ max8952,default-mode = <0>;
+ max8952,dvs-mode-microvolt = <1250000>, <1200000>,
+ <1050000>, <950000>;
+ max8952,sync-freq = <0>;
+ max8952,ramp-speed = <0>;
+
+ regulator-name = "VR_1.0V";
+ regulator-min-microvolt = <770000>;
+ regulator-max-microvolt = <1400000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
};

&i2c1 {
status = "okay";
+
+ regulator@42 {
+ compatible = "infineon,ir38263";
+ reg = <0x42>;
+ };
};

&i2c2 {
@@ -327,6 +466,21 @@ &i2c4 {

&i2c5 {
status = "okay";
+
+ regulator@3a {
+ compatible = "maxim,max5970";
+ reg = <0x3a>;
+ };
+
+ regulator@42 {
+ compatible = "infineon,ir38263";
+ reg = <0x42>;
+ };
+
+ regulator@43 {
+ compatible = "infineon,ir38060";
+ reg = <0x43>;
+ };
};

&i2c6 {
@@ -423,6 +577,11 @@ i2c7mux0chn3: i2c@3 {
#address-cells = <1>;
#size-cells = <0>;
reg = <3>;
+
+ regulator@58 {
+ compatible = "mps,mp2973";
+ reg = <0x58>;
+ };
};

i2c7mux0chn4: i2c@4 {
@@ -435,6 +594,11 @@ i2c7mux0chn5: i2c@5 {
#address-cells = <1>;
#size-cells = <0>;
reg = <5>;
+
+ regulator@40 {
+ compatible = "infineon,tda38640";
+ reg = <0x40>;
+ };
};

i2c7mux0chn6: i2c@6 {
@@ -466,12 +630,37 @@ i2c8mux0chn0: i2c@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
+
+ regulator@58 {
+ compatible = "mps,mp2971";
+ reg = <0x58>;
+ };
};

i2c8mux0chn1: i2c@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
+
+ regulator@40 {
+ compatible = "infineon,tda38640";
+ reg = <0x40>;
+ };
+
+ regulator@41 {
+ compatible = "infineon,tda38640";
+ reg = <0x41>;
+ };
+
+ regulator@58 {
+ compatible = "mps,mp2971";
+ reg = <0x58>;
+ };
+
+ regulator@5b {
+ compatible = "mps,mp2971";
+ reg = <0x5b>;
+ };
};

i2c8mux0chn2: i2c@2 {
@@ -565,12 +754,44 @@ i2c8mux0chn7: i2c@7 {
#address-cells = <1>;
#size-cells = <0>;
reg = <7>;
+
+ regulator@40 {
+ compatible = "infineon,ir38060";
+ reg = <0x40>;
+ };
};
};
};

&i2c9 {
status = "okay";
+
+ regulator@40 {
+ compatible = "infineon,ir38263";
+ reg = <0x40>;
+ };
+
+ regulator@41 {
+ compatible = "infineon,ir38263";
+ reg = <0x41>;
+ };
+
+ regulator@60 {
+ compatible = "maxim,max8952";
+ reg = <0x60>;
+
+ max8952,default-mode = <0>;
+ max8952,dvs-mode-microvolt = <1250000>, <1200000>,
+ <1050000>, <950000>;
+ max8952,sync-freq = <0>;
+ max8952,ramp-speed = <0>;
+
+ regulator-name = "VR_1.2V";
+ regulator-min-microvolt = <770000>;
+ regulator-max-microvolt = <1400000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
};

&i2c11 {
@@ -583,6 +804,11 @@ &i2c12 {

&i2c13 {
status = "okay";
+
+ regulator@41 {
+ compatible = "infineon,ir38263";
+ reg = <0x41>;
+ };
};

&i2c14 {
@@ -618,6 +844,11 @@ i2c14mux0chn3: i2c@3 {
#address-cells = <1>;
#size-cells = <0>;
reg = <3>;
+
+ regulator@58 {
+ compatible = "mps,mp2973";
+ reg = <0x58>;
+ };
};

i2c14mux0chn4: i2c@4 {
@@ -630,6 +861,11 @@ i2c14mux0chn5: i2c@5 {
#address-cells = <1>;
#size-cells = <0>;
reg = <5>;
+
+ regulator@40 {
+ compatible = "infineon,tda38640";
+ reg = <0x40>;
+ };
};

i2c14mux0chn6: i2c@6 {
@@ -661,12 +897,37 @@ i2c15mux0chn0: i2c@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
+
+ regulator@58 {
+ compatible = "mps,mp2971";
+ reg = <0x58>;
+ };
};

i2c15mux0chn1: i2c@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
+
+ regulator@40 {
+ compatible = "infineon,tda38640";
+ reg = <0x40>;
+ };
+
+ regulator@41 {
+ compatible = "infineon,tda38640";
+ reg = <0x41>;
+ };
+
+ regulator@58 {
+ compatible = "mps,mp2971";
+ reg = <0x58>;
+ };
+
+ regulator@5b {
+ compatible = "mps,mp2971";
+ reg = <0x5b>;
+ };
};

i2c15mux0chn2: i2c@2 {
@@ -760,6 +1021,11 @@ i2c15mux0chn7: i2c@7 {
#address-cells = <1>;
#size-cells = <0>;
reg = <7>;
+
+ regulator@40 {
+ compatible = "infineon,ir38060";
+ reg = <0x40>;
+ };
};
};
};
--
2.39.2


2023-12-12 20:22:56

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v1 5/8] ARM: dts: aspeed: System1: Voltage regulators

On 12/12/2023 17:40, Ninad Palsule wrote:
> This commit adds different voltage regulators.
>
> Tested:
> This board is tested using the simics simulator.
>
> Signed-off-by: Ninad Palsule <[email protected]>
> ---
> .../dts/aspeed/aspeed-bmc-ibm-system1.dts | 266 ++++++++++++++++++

Squash it.

> 1 file changed, 266 insertions(+)
>
> diff --git a/arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-system1.dts b/arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-system1.dts
> index 0557bff9f36a..b8e7e52d4600 100644
> --- a/arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-system1.dts
> +++ b/arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-system1.dts
> @@ -114,10 +114,127 @@ vga_memory: region@bf000000 {
> };
> };
>
> + iio-hwmon {
> + compatible = "iio-hwmon";
> + io-channels = <&p12v_vd 0>, <&p5v_aux_vd 0>,
> + <&p5v_bmc_aux_vd 0>, <&p3v3_aux_vd 0>,
> + <&p3v3_bmc_aux_vd 0>, <&p1v8_bmc_aux_vd 0>,
> + <&adc1 4>, <&adc0 2>, <&adc1 0>,
> + <&p2V5_aux_vd 0>, <&adc1 7>;
> + };
> +
> + p12v_vd: voltage_divider1 {

Same comments as in other patches.

> + compatible = "voltage-divider";
> + io-channels = <&adc1 3>;
> + #io-channel-cells = <1>;
> +
> + /* Scale the system voltage by 1127/127 to fit the ADC range.

Use Linux coding style comments. /* and blank line


....

Best regards,
Krzysztof

2023-12-14 16:33:49

by Ninad Palsule

[permalink] [raw]
Subject: Re: [PATCH v1 5/8] ARM: dts: aspeed: System1: Voltage regulators

Hello Krzysztof,

On 12/12/23 14:22, Krzysztof Kozlowski wrote:
> On 12/12/2023 17:40, Ninad Palsule wrote:
>> This commit adds different voltage regulators.
>>
>> Tested:
>> This board is tested using the simics simulator.
>>
>> Signed-off-by: Ninad Palsule <[email protected]>
>> ---
>> .../dts/aspeed/aspeed-bmc-ibm-system1.dts | 266 ++++++++++++++++++
> Squash it.
Done.
>
>> 1 file changed, 266 insertions(+)
>>
>> diff --git a/arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-system1.dts b/arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-system1.dts
>> index 0557bff9f36a..b8e7e52d4600 100644
>> --- a/arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-system1.dts
>> +++ b/arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-system1.dts
>> @@ -114,10 +114,127 @@ vga_memory: region@bf000000 {
>> };
>> };
>>
>> + iio-hwmon {
>> + compatible = "iio-hwmon";
>> + io-channels = <&p12v_vd 0>, <&p5v_aux_vd 0>,
>> + <&p5v_bmc_aux_vd 0>, <&p3v3_aux_vd 0>,
>> + <&p3v3_bmc_aux_vd 0>, <&p1v8_bmc_aux_vd 0>,
>> + <&adc1 4>, <&adc0 2>, <&adc1 0>,
>> + <&p2V5_aux_vd 0>, <&adc1 7>;
>> + };
>> +
>> + p12v_vd: voltage_divider1 {
> Same comments as in other patches.
Fixed.
>
>> + compatible = "voltage-divider";
>> + io-channels = <&adc1 3>;
>> + #io-channel-cells = <1>;
>> +
>> + /* Scale the system voltage by 1127/127 to fit the ADC range.
> Use Linux coding style comments. /* and blank line

Fixed.

Thanks for the review.

Regards,

Ninad

>
>
> ....
>
> Best regards,
> Krzysztof
>