diff mbox series

[1/2] arm64: dts: hisilicon: Add support for Hikey 970 PMIC

Message ID 75bd73dc3a1a7a8d08eab60d4aab34e5feb2a000.1630583382.git.mchehab+huawei@kernel.org
State Accepted
Commit 6219b20e1ecd26296f02898b0aa53c7892f35a72
Headers show
Series Add DTS bits to enable USB3 PHY on HiKey970 | expand

Commit Message

Mauro Carvalho Chehab Sept. 2, 2021, 11:55 a.m. UTC
Add a device tree for the HiSilicon 6421v600 SPMI PMIC, used
on HiKey970 board.

As we now have support for it, change the fixed regulators
used by the SD I/O to use the proper LDO supplies.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
---
 .../boot/dts/hisilicon/hi3670-hikey970.dts    | 22 +----
 arch/arm64/boot/dts/hisilicon/hi3670.dtsi     |  2 +-
 .../boot/dts/hisilicon/hikey970-pmic.dtsi     | 86 +++++++++++++++++++
 3 files changed, 90 insertions(+), 20 deletions(-)
 create mode 100644 arch/arm64/boot/dts/hisilicon/hikey970-pmic.dtsi

Comments

Mauro Carvalho Chehab Sept. 15, 2021, 12:51 p.m. UTC | #1
Em Thu,  2 Sep 2021 13:55:23 +0200
Mauro Carvalho Chehab <mchehab+huawei@kernel.org> escreveu:

> Add a device tree for the HiSilicon 6421v600 SPMI PMIC, used

> on HiKey970 board.

> 

> As we now have support for it, change the fixed regulators

> used by the SD I/O to use the proper LDO supplies.


Hi Wei,

Gentile ping.

Now that the drivers and the DT schema are already upstreamed, could 
you please merge those two patches?

Thank you!
Mauro

> 

> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>

> ---

>  .../boot/dts/hisilicon/hi3670-hikey970.dts    | 22 +----

>  arch/arm64/boot/dts/hisilicon/hi3670.dtsi     |  2 +-

>  .../boot/dts/hisilicon/hikey970-pmic.dtsi     | 86 +++++++++++++++++++

>  3 files changed, 90 insertions(+), 20 deletions(-)

>  create mode 100644 arch/arm64/boot/dts/hisilicon/hikey970-pmic.dtsi

> 

> diff --git a/arch/arm64/boot/dts/hisilicon/hi3670-hikey970.dts b/arch/arm64/boot/dts/hisilicon/hi3670-hikey970.dts

> index d8abf442ee7e..7c32f5fd5cc5 100644

> --- a/arch/arm64/boot/dts/hisilicon/hi3670-hikey970.dts

> +++ b/arch/arm64/boot/dts/hisilicon/hi3670-hikey970.dts

> @@ -12,6 +12,7 @@

>  

>  #include "hi3670.dtsi"

>  #include "hikey970-pinctrl.dtsi"

> +#include "hikey970-pmic.dtsi"

>  

>  / {

>  	model = "HiKey970";

> @@ -39,23 +40,6 @@ memory@0 {

>  		reg = <0x0 0x0 0x0 0x0>;

>  	};

>  

> -	sd_1v8: regulator-1v8 {

> -		compatible = "regulator-fixed";

> -		regulator-name = "fixed-1.8V";

> -		regulator-min-microvolt = <1800000>;

> -		regulator-max-microvolt = <1800000>;

> -		regulator-always-on;

> -	};

> -

> -	sd_3v3: regulator-3v3 {

> -		compatible = "regulator-fixed";

> -		regulator-name = "fixed-3.3V";

> -		regulator-min-microvolt = <3300000>;

> -		regulator-max-microvolt = <3300000>;

> -		regulator-boot-on;

> -		regulator-always-on;

> -	};

> -

>  	wlan_en: wlan-en-1-8v {

>  		compatible = "regulator-fixed";

>  		regulator-name = "wlan-en-regulator";

> @@ -402,8 +386,8 @@ &dwmmc1 {

>  	pinctrl-0 = <&sd_pmx_func

>  		     &sd_clk_cfg_func

>  		     &sd_cfg_func>;  

> -	vmmc-supply = <&sd_3v3>;

> -	vqmmc-supply = <&sd_1v8>;

> +	vmmc-supply = <&ldo16>;

> +	vqmmc-supply = <&ldo9>;

>  	status = "okay";

>  };

>  

> diff --git a/arch/arm64/boot/dts/hisilicon/hi3670.dtsi b/arch/arm64/boot/dts/hisilicon/hi3670.dtsi

> index 20698cfd0637..636c8817df7e 100644

> --- a/arch/arm64/boot/dts/hisilicon/hi3670.dtsi

> +++ b/arch/arm64/boot/dts/hisilicon/hi3670.dtsi

> @@ -669,7 +669,7 @@ ufs: ufs@ff3c0000 {

>  			interrupt-parent = <&gic>;

>  			interrupts = <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH>;

>  			clocks = <&crg_ctrl HI3670_CLK_GATE_UFSIO_REF>,

> -				<&crg_ctrl HI3670_CLK_GATE_UFS_SUBSYS>;

> +				 <&crg_ctrl HI3670_CLK_GATE_UFS_SUBSYS>;

>  			clock-names = "ref_clk", "phy_clk";

>  			freq-table-hz = <0 0

>  					 0 0>;

> diff --git a/arch/arm64/boot/dts/hisilicon/hikey970-pmic.dtsi b/arch/arm64/boot/dts/hisilicon/hikey970-pmic.dtsi

> new file mode 100644

> index 000000000000..970047f2dabd

> --- /dev/null

> +++ b/arch/arm64/boot/dts/hisilicon/hikey970-pmic.dtsi

> @@ -0,0 +1,86 @@

> +// SPDX-License-Identifier: GPL-2.0

> +/*

> + * dts file for Hi6421v600 SPMI PMIC used at the HiKey970 Development Board

> + *

> + * Copyright (C) 2020, Huawei Tech. Co., Ltd.

> + */

> +

> +#include <dt-bindings/spmi/spmi.h>

> +

> +/ {

> +	spmi: spmi@fff24000 {

> +		compatible = "hisilicon,kirin970-spmi-controller";

> +		#address-cells = <2>;

> +		#size-cells = <0>;

> +		status = "okay";

> +		reg = <0x0 0xfff24000 0x0 0x1000>;

> +		hisilicon,spmi-channel = <2>;

> +

> +		pmic: pmic@0 {

> +			compatible = "hisilicon,hi6421-spmi";

> +			reg = <0 SPMI_USID>;

> +

> +			#interrupt-cells = <2>;

> +			interrupt-controller;

> +			gpios = <&gpio28 0 0>;

> +

> +			regulators {

> +				#address-cells = <1>;

> +				#size-cells = <0>;

> +

> +				ldo3: ldo3 { /* HDMI */

> +					regulator-name = "ldo3";

> +					regulator-min-microvolt = <1500000>;

> +					regulator-max-microvolt = <2000000>;

> +					regulator-boot-on;

> +				};

> +

> +				ldo4: ldo4 { /* 40 PIN */

> +					regulator-name = "ldo4";

> +					regulator-min-microvolt = <1725000>;

> +					regulator-max-microvolt = <1900000>;

> +					regulator-boot-on;

> +				};

> +

> +				ldo9: ldo9 { /* SDCARD I/O */

> +					regulator-name = "ldo9";

> +					regulator-min-microvolt = <1750000>;

> +					regulator-max-microvolt = <3300000>;

> +					regulator-boot-on;

> +				};

> +

> +				ldo15: ldo15 { /* UFS */

> +					regulator-name = "ldo15";

> +					regulator-min-microvolt = <1800000>;

> +					regulator-max-microvolt = <3000000>;

> +					regulator-always-on;

> +				};

> +

> +				ldo16: ldo16 { /* SD */

> +					regulator-name = "ldo16";

> +					regulator-min-microvolt = <1800000>;

> +					regulator-max-microvolt = <3000000>;

> +					regulator-boot-on;

> +				};

> +

> +				ldo17: ldo17 { /* USB HUB */

> +					regulator-name = "ldo17";

> +					regulator-min-microvolt = <2500000>;

> +					regulator-max-microvolt = <3300000>;

> +				};

> +

> +				ldo33: ldo33 { /* PEX8606 */

> +					regulator-name = "ldo33";

> +					regulator-min-microvolt = <2500000>;

> +					regulator-max-microvolt = <3300000>;

> +				};

> +

> +				ldo34: ldo34 { /* GPS AUX IN VDD */

> +					regulator-name = "ldo34";

> +					regulator-min-microvolt = <2600000>;

> +					regulator-max-microvolt = <3300000>;

> +				};

> +			};

> +		};

> +	};

> +};




Thanks,
Mauro
Wei Xu Sept. 18, 2021, 7:08 a.m. UTC | #2
Hi Mauro,

On 2021/9/15 20:51, Mauro Carvalho Chehab wrote:
> Em Thu,  2 Sep 2021 13:55:23 +0200

> Mauro Carvalho Chehab <mchehab+huawei@kernel.org> escreveu:

> 

>> Add a device tree for the HiSilicon 6421v600 SPMI PMIC, used

>> on HiKey970 board.

>>

>> As we now have support for it, change the fixed regulators

>> used by the SD I/O to use the proper LDO supplies.

> 

> Hi Wei,

> 

> Gentile ping.

> 

> Now that the drivers and the DT schema are already upstreamed, could 

> you please merge those two patches?


Applied the patch 1 to the HiSilicon arm64 dt tree.
Thanks!

Best Regards,
Wei

> 

> Thank you!

> Mauro

> 

>>

>> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>

>> ---

>>  .../boot/dts/hisilicon/hi3670-hikey970.dts    | 22 +----

>>  arch/arm64/boot/dts/hisilicon/hi3670.dtsi     |  2 +-

>>  .../boot/dts/hisilicon/hikey970-pmic.dtsi     | 86 +++++++++++++++++++

>>  3 files changed, 90 insertions(+), 20 deletions(-)

>>  create mode 100644 arch/arm64/boot/dts/hisilicon/hikey970-pmic.dtsi

>>

>> diff --git a/arch/arm64/boot/dts/hisilicon/hi3670-hikey970.dts b/arch/arm64/boot/dts/hisilicon/hi3670-hikey970.dts

>> index d8abf442ee7e..7c32f5fd5cc5 100644

>> --- a/arch/arm64/boot/dts/hisilicon/hi3670-hikey970.dts

>> +++ b/arch/arm64/boot/dts/hisilicon/hi3670-hikey970.dts

>> @@ -12,6 +12,7 @@

>>  

>>  #include "hi3670.dtsi"

>>  #include "hikey970-pinctrl.dtsi"

>> +#include "hikey970-pmic.dtsi"

>>  

>>  / {

>>  	model = "HiKey970";

>> @@ -39,23 +40,6 @@ memory@0 {

>>  		reg = <0x0 0x0 0x0 0x0>;

>>  	};

>>  

>> -	sd_1v8: regulator-1v8 {

>> -		compatible = "regulator-fixed";

>> -		regulator-name = "fixed-1.8V";

>> -		regulator-min-microvolt = <1800000>;

>> -		regulator-max-microvolt = <1800000>;

>> -		regulator-always-on;

>> -	};

>> -

>> -	sd_3v3: regulator-3v3 {

>> -		compatible = "regulator-fixed";

>> -		regulator-name = "fixed-3.3V";

>> -		regulator-min-microvolt = <3300000>;

>> -		regulator-max-microvolt = <3300000>;

>> -		regulator-boot-on;

>> -		regulator-always-on;

>> -	};

>> -

>>  	wlan_en: wlan-en-1-8v {

>>  		compatible = "regulator-fixed";

>>  		regulator-name = "wlan-en-regulator";

>> @@ -402,8 +386,8 @@ &dwmmc1 {

>>  	pinctrl-0 = <&sd_pmx_func

>>  		     &sd_clk_cfg_func

>>  		     &sd_cfg_func>;  

>> -	vmmc-supply = <&sd_3v3>;

>> -	vqmmc-supply = <&sd_1v8>;

>> +	vmmc-supply = <&ldo16>;

>> +	vqmmc-supply = <&ldo9>;

>>  	status = "okay";

>>  };

>>  

>> diff --git a/arch/arm64/boot/dts/hisilicon/hi3670.dtsi b/arch/arm64/boot/dts/hisilicon/hi3670.dtsi

>> index 20698cfd0637..636c8817df7e 100644

>> --- a/arch/arm64/boot/dts/hisilicon/hi3670.dtsi

>> +++ b/arch/arm64/boot/dts/hisilicon/hi3670.dtsi

>> @@ -669,7 +669,7 @@ ufs: ufs@ff3c0000 {

>>  			interrupt-parent = <&gic>;

>>  			interrupts = <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH>;

>>  			clocks = <&crg_ctrl HI3670_CLK_GATE_UFSIO_REF>,

>> -				<&crg_ctrl HI3670_CLK_GATE_UFS_SUBSYS>;

>> +				 <&crg_ctrl HI3670_CLK_GATE_UFS_SUBSYS>;

>>  			clock-names = "ref_clk", "phy_clk";

>>  			freq-table-hz = <0 0

>>  					 0 0>;

>> diff --git a/arch/arm64/boot/dts/hisilicon/hikey970-pmic.dtsi b/arch/arm64/boot/dts/hisilicon/hikey970-pmic.dtsi

>> new file mode 100644

>> index 000000000000..970047f2dabd

>> --- /dev/null

>> +++ b/arch/arm64/boot/dts/hisilicon/hikey970-pmic.dtsi

>> @@ -0,0 +1,86 @@

>> +// SPDX-License-Identifier: GPL-2.0

>> +/*

>> + * dts file for Hi6421v600 SPMI PMIC used at the HiKey970 Development Board

>> + *

>> + * Copyright (C) 2020, Huawei Tech. Co., Ltd.

>> + */

>> +

>> +#include <dt-bindings/spmi/spmi.h>

>> +

>> +/ {

>> +	spmi: spmi@fff24000 {

>> +		compatible = "hisilicon,kirin970-spmi-controller";

>> +		#address-cells = <2>;

>> +		#size-cells = <0>;

>> +		status = "okay";

>> +		reg = <0x0 0xfff24000 0x0 0x1000>;

>> +		hisilicon,spmi-channel = <2>;

>> +

>> +		pmic: pmic@0 {

>> +			compatible = "hisilicon,hi6421-spmi";

>> +			reg = <0 SPMI_USID>;

>> +

>> +			#interrupt-cells = <2>;

>> +			interrupt-controller;

>> +			gpios = <&gpio28 0 0>;

>> +

>> +			regulators {

>> +				#address-cells = <1>;

>> +				#size-cells = <0>;

>> +

>> +				ldo3: ldo3 { /* HDMI */

>> +					regulator-name = "ldo3";

>> +					regulator-min-microvolt = <1500000>;

>> +					regulator-max-microvolt = <2000000>;

>> +					regulator-boot-on;

>> +				};

>> +

>> +				ldo4: ldo4 { /* 40 PIN */

>> +					regulator-name = "ldo4";

>> +					regulator-min-microvolt = <1725000>;

>> +					regulator-max-microvolt = <1900000>;

>> +					regulator-boot-on;

>> +				};

>> +

>> +				ldo9: ldo9 { /* SDCARD I/O */

>> +					regulator-name = "ldo9";

>> +					regulator-min-microvolt = <1750000>;

>> +					regulator-max-microvolt = <3300000>;

>> +					regulator-boot-on;

>> +				};

>> +

>> +				ldo15: ldo15 { /* UFS */

>> +					regulator-name = "ldo15";

>> +					regulator-min-microvolt = <1800000>;

>> +					regulator-max-microvolt = <3000000>;

>> +					regulator-always-on;

>> +				};

>> +

>> +				ldo16: ldo16 { /* SD */

>> +					regulator-name = "ldo16";

>> +					regulator-min-microvolt = <1800000>;

>> +					regulator-max-microvolt = <3000000>;

>> +					regulator-boot-on;

>> +				};

>> +

>> +				ldo17: ldo17 { /* USB HUB */

>> +					regulator-name = "ldo17";

>> +					regulator-min-microvolt = <2500000>;

>> +					regulator-max-microvolt = <3300000>;

>> +				};

>> +

>> +				ldo33: ldo33 { /* PEX8606 */

>> +					regulator-name = "ldo33";

>> +					regulator-min-microvolt = <2500000>;

>> +					regulator-max-microvolt = <3300000>;

>> +				};

>> +

>> +				ldo34: ldo34 { /* GPS AUX IN VDD */

>> +					regulator-name = "ldo34";

>> +					regulator-min-microvolt = <2600000>;

>> +					regulator-max-microvolt = <3300000>;

>> +				};

>> +			};

>> +		};

>> +	};

>> +};

> 

> 

> 

> Thanks,

> Mauro

> .

>
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/hisilicon/hi3670-hikey970.dts b/arch/arm64/boot/dts/hisilicon/hi3670-hikey970.dts
index d8abf442ee7e..7c32f5fd5cc5 100644
--- a/arch/arm64/boot/dts/hisilicon/hi3670-hikey970.dts
+++ b/arch/arm64/boot/dts/hisilicon/hi3670-hikey970.dts
@@ -12,6 +12,7 @@ 
 
 #include "hi3670.dtsi"
 #include "hikey970-pinctrl.dtsi"
+#include "hikey970-pmic.dtsi"
 
 / {
 	model = "HiKey970";
@@ -39,23 +40,6 @@  memory@0 {
 		reg = <0x0 0x0 0x0 0x0>;
 	};
 
-	sd_1v8: regulator-1v8 {
-		compatible = "regulator-fixed";
-		regulator-name = "fixed-1.8V";
-		regulator-min-microvolt = <1800000>;
-		regulator-max-microvolt = <1800000>;
-		regulator-always-on;
-	};
-
-	sd_3v3: regulator-3v3 {
-		compatible = "regulator-fixed";
-		regulator-name = "fixed-3.3V";
-		regulator-min-microvolt = <3300000>;
-		regulator-max-microvolt = <3300000>;
-		regulator-boot-on;
-		regulator-always-on;
-	};
-
 	wlan_en: wlan-en-1-8v {
 		compatible = "regulator-fixed";
 		regulator-name = "wlan-en-regulator";
@@ -402,8 +386,8 @@  &dwmmc1 {
 	pinctrl-0 = <&sd_pmx_func
 		     &sd_clk_cfg_func
 		     &sd_cfg_func>;
-	vmmc-supply = <&sd_3v3>;
-	vqmmc-supply = <&sd_1v8>;
+	vmmc-supply = <&ldo16>;
+	vqmmc-supply = <&ldo9>;
 	status = "okay";
 };
 
diff --git a/arch/arm64/boot/dts/hisilicon/hi3670.dtsi b/arch/arm64/boot/dts/hisilicon/hi3670.dtsi
index 20698cfd0637..636c8817df7e 100644
--- a/arch/arm64/boot/dts/hisilicon/hi3670.dtsi
+++ b/arch/arm64/boot/dts/hisilicon/hi3670.dtsi
@@ -669,7 +669,7 @@  ufs: ufs@ff3c0000 {
 			interrupt-parent = <&gic>;
 			interrupts = <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&crg_ctrl HI3670_CLK_GATE_UFSIO_REF>,
-				<&crg_ctrl HI3670_CLK_GATE_UFS_SUBSYS>;
+				 <&crg_ctrl HI3670_CLK_GATE_UFS_SUBSYS>;
 			clock-names = "ref_clk", "phy_clk";
 			freq-table-hz = <0 0
 					 0 0>;
diff --git a/arch/arm64/boot/dts/hisilicon/hikey970-pmic.dtsi b/arch/arm64/boot/dts/hisilicon/hikey970-pmic.dtsi
new file mode 100644
index 000000000000..970047f2dabd
--- /dev/null
+++ b/arch/arm64/boot/dts/hisilicon/hikey970-pmic.dtsi
@@ -0,0 +1,86 @@ 
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * dts file for Hi6421v600 SPMI PMIC used at the HiKey970 Development Board
+ *
+ * Copyright (C) 2020, Huawei Tech. Co., Ltd.
+ */
+
+#include <dt-bindings/spmi/spmi.h>
+
+/ {
+	spmi: spmi@fff24000 {
+		compatible = "hisilicon,kirin970-spmi-controller";
+		#address-cells = <2>;
+		#size-cells = <0>;
+		status = "okay";
+		reg = <0x0 0xfff24000 0x0 0x1000>;
+		hisilicon,spmi-channel = <2>;
+
+		pmic: pmic@0 {
+			compatible = "hisilicon,hi6421-spmi";
+			reg = <0 SPMI_USID>;
+
+			#interrupt-cells = <2>;
+			interrupt-controller;
+			gpios = <&gpio28 0 0>;
+
+			regulators {
+				#address-cells = <1>;
+				#size-cells = <0>;
+
+				ldo3: ldo3 { /* HDMI */
+					regulator-name = "ldo3";
+					regulator-min-microvolt = <1500000>;
+					regulator-max-microvolt = <2000000>;
+					regulator-boot-on;
+				};
+
+				ldo4: ldo4 { /* 40 PIN */
+					regulator-name = "ldo4";
+					regulator-min-microvolt = <1725000>;
+					regulator-max-microvolt = <1900000>;
+					regulator-boot-on;
+				};
+
+				ldo9: ldo9 { /* SDCARD I/O */
+					regulator-name = "ldo9";
+					regulator-min-microvolt = <1750000>;
+					regulator-max-microvolt = <3300000>;
+					regulator-boot-on;
+				};
+
+				ldo15: ldo15 { /* UFS */
+					regulator-name = "ldo15";
+					regulator-min-microvolt = <1800000>;
+					regulator-max-microvolt = <3000000>;
+					regulator-always-on;
+				};
+
+				ldo16: ldo16 { /* SD */
+					regulator-name = "ldo16";
+					regulator-min-microvolt = <1800000>;
+					regulator-max-microvolt = <3000000>;
+					regulator-boot-on;
+				};
+
+				ldo17: ldo17 { /* USB HUB */
+					regulator-name = "ldo17";
+					regulator-min-microvolt = <2500000>;
+					regulator-max-microvolt = <3300000>;
+				};
+
+				ldo33: ldo33 { /* PEX8606 */
+					regulator-name = "ldo33";
+					regulator-min-microvolt = <2500000>;
+					regulator-max-microvolt = <3300000>;
+				};
+
+				ldo34: ldo34 { /* GPS AUX IN VDD */
+					regulator-name = "ldo34";
+					regulator-min-microvolt = <2600000>;
+					regulator-max-microvolt = <3300000>;
+				};
+			};
+		};
+	};
+};