diff mbox series

[1/2] dts: hisilicon: add support for the PMIC found on Hikey 970

Message ID 4a3583dd683512c2a4a138e88d4c889e51bf48e8.1627116285.git.mchehab+huawei@kernel.org (mailing list archive)
State New, archived
Headers show
Series Add support for Kirin 970 PMIC and USB3 | expand

Commit Message

Mauro Carvalho Chehab July 24, 2021, 8: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 +----
 .../boot/dts/hisilicon/hikey970-pmic.dtsi     | 86 +++++++++++++++++++
 2 files changed, 89 insertions(+), 19 deletions(-)
 create mode 100644 arch/arm64/boot/dts/hisilicon/hikey970-pmic.dtsi

Comments

Wei Xu July 26, 2021, 2:40 a.m. UTC | #1
Hi Mauro,

On 2021/7/24 16:55, Mauro Carvalho Chehab wrote:
> 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 +----
>  .../boot/dts/hisilicon/hikey970-pmic.dtsi     | 86 +++++++++++++++++++
>  2 files changed, 89 insertions(+), 19 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/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";

Should this be "hisilicon,hi6421-pmic" which is already in the binding document "mfd/hi6421.txt"?
Others are OK to me.
Thanks!

Best Regards,
Wei
Mauro Carvalho Chehab July 26, 2021, 6:19 a.m. UTC | #2
Em Mon, 26 Jul 2021 10:40:44 +0800
Wei Xu <xuwei5@hisilicon.com> escreveu:

> Hi Mauro,
> 
> On 2021/7/24 16:55, Mauro Carvalho Chehab wrote:
> > 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 +----
> >  .../boot/dts/hisilicon/hikey970-pmic.dtsi     | 86 +++++++++++++++++++
> >  2 files changed, 89 insertions(+), 19 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/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";  
> 
> Should this be "hisilicon,hi6421-pmic" which is already in the binding document "mfd/hi6421.txt"?
> Others are OK to me.

No. 

hisilicon,hi6421-pmic is used by this driver
	drivers/mfd/hi6421-pmic-core.c

which provides support for the Hi6421 variants that don't use a MIPI
SPMI bus.

The "hisilicon,hi6421-spmi" compatible is for the new driver:
	drivers/mfd/hi6421-spmi-pmic.c

And it is defined at:
	Documentation/devicetree/bindings/mfd/hisilicon,hi6421-spmi-pmic.yaml

Both DT bindings and the driver were promoted from staging on this patch:

	https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git/commit/?h=staging-next&id=9bd9e0de1cf5b89c4854be505ac0a418ddcc01bf

Regards,
Mauro
Wei Xu July 26, 2021, 6:35 a.m. UTC | #3
Hi Mauro,

On 2021/7/26 14:19, Mauro Carvalho Chehab wrote:
> Em Mon, 26 Jul 2021 10:40:44 +0800
> Wei Xu <xuwei5@hisilicon.com> escreveu:
> 
>> Hi Mauro,
>>
>> On 2021/7/24 16:55, Mauro Carvalho Chehab wrote:
>>> 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 +----
>>>  .../boot/dts/hisilicon/hikey970-pmic.dtsi     | 86 +++++++++++++++++++
>>>  2 files changed, 89 insertions(+), 19 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/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";  
>>
>> Should this be "hisilicon,hi6421-pmic" which is already in the binding document "mfd/hi6421.txt"?
>> Others are OK to me.
> 
> No. 
> 
> hisilicon,hi6421-pmic is used by this driver
> 	drivers/mfd/hi6421-pmic-core.c
> 
> which provides support for the Hi6421 variants that don't use a MIPI
> SPMI bus.
> 
> The "hisilicon,hi6421-spmi" compatible is for the new driver:
> 	drivers/mfd/hi6421-spmi-pmic.c
> 
> And it is defined at:
> 	Documentation/devicetree/bindings/mfd/hisilicon,hi6421-spmi-pmic.yaml
> 
> Both DT bindings and the driver were promoted from staging on this patch:
> 
> 	https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git/commit/?h=staging-next&id=9bd9e0de1cf5b89c4854be505ac0a418ddcc01bf

Got it. Thanks for your kind explanation!
So I am fine with this patch.
Do you need my ack now or later I can merge it once it is out of staging.

Best Regards,
Wei

> 
> Regards,
> Mauro
> .
>
Mauro Carvalho Chehab July 26, 2021, 7:43 a.m. UTC | #4
Em Mon, 26 Jul 2021 14:35:33 +0800
Wei Xu <xuwei5@hisilicon.com> escreveu:

> Hi Mauro,
> 
> On 2021/7/26 14:19, Mauro Carvalho Chehab wrote:
> > Em Mon, 26 Jul 2021 10:40:44 +0800
> > Wei Xu <xuwei5@hisilicon.com> escreveu:
> >   
> >> Hi Mauro,
> >>
> >> On 2021/7/24 16:55, Mauro Carvalho Chehab wrote:  
> >>> 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 +----
> >>>  .../boot/dts/hisilicon/hikey970-pmic.dtsi     | 86 +++++++++++++++++++
> >>>  2 files changed, 89 insertions(+), 19 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/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";    
> >>
> >> Should this be "hisilicon,hi6421-pmic" which is already in the binding document "mfd/hi6421.txt"?
> >> Others are OK to me.  
> > 
> > No. 
> > 
> > hisilicon,hi6421-pmic is used by this driver
> > 	drivers/mfd/hi6421-pmic-core.c
> > 
> > which provides support for the Hi6421 variants that don't use a MIPI
> > SPMI bus.
> > 
> > The "hisilicon,hi6421-spmi" compatible is for the new driver:
> > 	drivers/mfd/hi6421-spmi-pmic.c
> > 
> > And it is defined at:
> > 	Documentation/devicetree/bindings/mfd/hisilicon,hi6421-spmi-pmic.yaml
> > 
> > Both DT bindings and the driver were promoted from staging on this patch:
> > 
> > 	https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git/commit/?h=staging-next&id=9bd9e0de1cf5b89c4854be505ac0a418ddcc01bf  
> 
> Got it. Thanks for your kind explanation!
> So I am fine with this patch.
> Do you need my ack now or later I can merge it once it is out of staging.

Whatever works best for you and Greg.

It should be noticed that the driver should be out of staging for v5.15-rc1
(as the patch moving it out of staging was already merged at Greg's tree).
This patch is needed by the PCI driver patchset I'm currently working,
so the best would be if this patch could also be merged for v5.15-rc1
(either via HiSilicon tree or via staging tree).

I suspect that having your ack and merging this via staging would work
best, as this would ensure that both changes will be merged upstream
at the same time.

But, as I said, it is up to you both ;-)

Thanks,
Mauro
Wei Xu July 26, 2021, 8:10 a.m. UTC | #5
Hi Mauro,

On 2021/7/26 15:43, Mauro Carvalho Chehab wrote:
> Em Mon, 26 Jul 2021 14:35:33 +0800
> Wei Xu <xuwei5@hisilicon.com> escreveu:
> 
>> Hi Mauro,
>>
>> On 2021/7/26 14:19, Mauro Carvalho Chehab wrote:
>>> Em Mon, 26 Jul 2021 10:40:44 +0800
>>> Wei Xu <xuwei5@hisilicon.com> escreveu:
>>>   
>>>> Hi Mauro,
>>>>
>>>> On 2021/7/24 16:55, Mauro Carvalho Chehab wrote:  
>>>>> 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 +----
>>>>>  .../boot/dts/hisilicon/hikey970-pmic.dtsi     | 86 +++++++++++++++++++
>>>>>  2 files changed, 89 insertions(+), 19 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/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";    
>>>>
>>>> Should this be "hisilicon,hi6421-pmic" which is already in the binding document "mfd/hi6421.txt"?
>>>> Others are OK to me.  
>>>
>>> No. 
>>>
>>> hisilicon,hi6421-pmic is used by this driver
>>> 	drivers/mfd/hi6421-pmic-core.c
>>>
>>> which provides support for the Hi6421 variants that don't use a MIPI
>>> SPMI bus.
>>>
>>> The "hisilicon,hi6421-spmi" compatible is for the new driver:
>>> 	drivers/mfd/hi6421-spmi-pmic.c
>>>
>>> And it is defined at:
>>> 	Documentation/devicetree/bindings/mfd/hisilicon,hi6421-spmi-pmic.yaml
>>>
>>> Both DT bindings and the driver were promoted from staging on this patch:
>>>
>>> 	https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git/commit/?h=staging-next&id=9bd9e0de1cf5b89c4854be505ac0a418ddcc01bf  
>>
>> Got it. Thanks for your kind explanation!
>> So I am fine with this patch.
>> Do you need my ack now or later I can merge it once it is out of staging.
> 
> Whatever works best for you and Greg.
> 
> It should be noticed that the driver should be out of staging for v5.15-rc1
> (as the patch moving it out of staging was already merged at Greg's tree).
> This patch is needed by the PCI driver patchset I'm currently working,
> so the best would be if this patch could also be merged for v5.15-rc1
> (either via HiSilicon tree or via staging tree).
> 
> I suspect that having your ack and merging this via staging would work
> best, as this would ensure that both changes will be merged upstream
> at the same time.
> 
> But, as I said, it is up to you both ;-)

Got it.
To avoid dependency, I think it is better to be merged by Greg's tree.
So for this patch,

Reviewed-by: Wei Xu <xuwei5@hisilicon.com>

Best Regards,
Wei

> 
> 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/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>;
+				};
+			};
+		};
+	};
+};