All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chen-Yu Tsai <wens@csie.org>
To: Maxime Ripard <maxime.ripard@free-electrons.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	Zhang Rui <rui.zhang@intel.com>,
	Eduardo Valentin <edubezval@gmail.com>,
	Hans de Goede <hdegoede@redhat.com>,
	"linux-input@vger.kernel.org" <linux-input@vger.kernel.org>,
	linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
	linux-pm@vger.kernel.org
Subject: Re: [PATCH v3 4/9] ARM: dts: sun7i: cubieboard2: add axp209 regulator nodes
Date: Mon, 12 Jan 2015 17:38:12 +0800	[thread overview]
Message-ID: <CAGb2v66r6EG2F1-=Gaig7ZW58Z1KteQ5nDPfW5niisv7dCjY0Q@mail.gmail.com> (raw)
In-Reply-To: <20150112090603.GE4891@lukather>

Hi,

On Mon, Jan 12, 2015 at 5:06 PM, Maxime Ripard
<maxime.ripard@free-electrons.com> wrote:
> Hi Chen-Yu,
>
> On Mon, Jan 12, 2015 at 12:34:04PM +0800, Chen-Yu Tsai wrote:
>> This patch adds the regulator nodes for the axp209 by including
>> the axp209 dtsi. As the inputs of these regulators are from the
>> axp209's PS output, which is basically just a mux over the 2
>> inputs, it is considered to be unregulated. Thus we do not provide
>> input supply properties for them.
>>
>> The regulator names and constraints are based on the board
>> schematics and the SoC datasheet.
>>
>> DCDC2 is used as the cpu power supply. This patch also references
>> it from the cpu node.
>>
>> Also get rid of axp209 properties already set in axp209.dtsi.
>>
>> Signed-off-by: Chen-Yu Tsai <wens@csie.org>
>> ---
>>
>> changes since v2
>>
>>     none
>>
>> changes since v1:
>>
>>     - Use preprocessor include for axp209.dtsi
>>     - Remove incorrectly squashed axp209.dtsi patch
>>
>> ---
>>  arch/arm/boot/dts/sun7i-a20-cubieboard2.dts | 35 +++++++++++++++++++++++++----
>>  1 file changed, 31 insertions(+), 4 deletions(-)
>>
>> diff --git a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
>> index 18fc5db9c976..ec1fc2c8b3e3 100644
>> --- a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
>> +++ b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
>> @@ -88,13 +88,9 @@
>>                       status = "okay";
>>
>>                       axp209: pmic@34 {
>> -                             compatible = "x-powers,axp209";
>>                               reg = <0x34>;
>>                               interrupt-parent = <&nmi_intc>;
>>                               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
>> -
>> -                             interrupt-controller;
>> -                             #interrupt-cells = <1>;
>>                       };
>>               };
>>
>> @@ -145,3 +141,34 @@
>>               status = "okay";
>>       };
>>  };
>> +
>> +#include "axp209.dtsi"
>> +
>> +&cpu0 {
>> +     cpu-supply = <&reg_dcdc2>;
>> +};
>> +
>> +&reg_dcdc2 {
>> +     regulator-always-on;
>> +     regulator-min-microvolt = <1000000>;
>> +     regulator-max-microvolt = <1450000>;
>> +     regulator-name = "vdd-cpu";
>> +};
>> +
>> +&reg_dcdc3 {
>> +     regulator-always-on;
>> +     regulator-min-microvolt = <1000000>;
>> +     regulator-max-microvolt = <1400000>;
>> +     regulator-name = "vdd-int-dll";
>> +};
>> +
>> +&reg_ldo1 {
>> +     regulator-name = "vdd-rtc";
>> +};
>> +
>> +&reg_ldo2 {
>> +     regulator-always-on;
>> +     regulator-min-microvolt = <3000000>;
>> +     regulator-max-microvolt = <3000000>;
>> +     regulator-name = "avcc";
>> +};
>
> How do reg_vcc3v3 and the other reg used in this DT (ahci, USB) fit
> into that?

The following applies to boards that use AXP209.

reg_vcc3v3 or reg_vcc3v0 is an external buck regulator with it's
enable pin tied to EXTEN on the AXP. This pin is controllable,
but we do not have the driver for it. It is possible that multiple
regulators are tied to this pin. I suggest not touching it without
the correct schematics.

The source for usb and ahci regulators, or reg_vcc5v if you will,
is either the unregulated 5v from the power supply or the usb otg
port. For the Cubietruck, there's an additional uncontrollable
boost regulator that boosts the lipo battery's power up to 5v.

On some of the Olimex boards that use higher input voltages, they
use an uncontrollable buck regulator to step down the voltage to
5v. The Olinuxino-Micro also has a boost regulator for the battery,
tied to EXTEN.

The AXP209 simply does not have enough outputs for all the needed
voltages.

You could probably chain the regulators in the DT via xxx-supply
if it helps. But beyond that, it is hard to do anything meaningful
at this point. Modeling them as fixed regulators beyond our control
is simpler. We also do not have an IPSOUT regulator for the AXP.

> Eventually, I think we would be able to remove
> sunxi-common-regulators.dtsi, or at least, expose the proper regulator
> hierarchy.

The USB and SATA regulators are just GPIO enabled switches (MOSFETs)
or current limiters. I think these will always exist because of the
reference designs. Or do you want to move them back into the board
dts files? FWIW, I like it the way it is now. Not that I don't like
it to be accurate.


ChenYu

WARNING: multiple messages have this Message-ID (diff)
From: wens@csie.org (Chen-Yu Tsai)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 4/9] ARM: dts: sun7i: cubieboard2: add axp209 regulator nodes
Date: Mon, 12 Jan 2015 17:38:12 +0800	[thread overview]
Message-ID: <CAGb2v66r6EG2F1-=Gaig7ZW58Z1KteQ5nDPfW5niisv7dCjY0Q@mail.gmail.com> (raw)
In-Reply-To: <20150112090603.GE4891@lukather>

Hi,

On Mon, Jan 12, 2015 at 5:06 PM, Maxime Ripard
<maxime.ripard@free-electrons.com> wrote:
> Hi Chen-Yu,
>
> On Mon, Jan 12, 2015 at 12:34:04PM +0800, Chen-Yu Tsai wrote:
>> This patch adds the regulator nodes for the axp209 by including
>> the axp209 dtsi. As the inputs of these regulators are from the
>> axp209's PS output, which is basically just a mux over the 2
>> inputs, it is considered to be unregulated. Thus we do not provide
>> input supply properties for them.
>>
>> The regulator names and constraints are based on the board
>> schematics and the SoC datasheet.
>>
>> DCDC2 is used as the cpu power supply. This patch also references
>> it from the cpu node.
>>
>> Also get rid of axp209 properties already set in axp209.dtsi.
>>
>> Signed-off-by: Chen-Yu Tsai <wens@csie.org>
>> ---
>>
>> changes since v2
>>
>>     none
>>
>> changes since v1:
>>
>>     - Use preprocessor include for axp209.dtsi
>>     - Remove incorrectly squashed axp209.dtsi patch
>>
>> ---
>>  arch/arm/boot/dts/sun7i-a20-cubieboard2.dts | 35 +++++++++++++++++++++++++----
>>  1 file changed, 31 insertions(+), 4 deletions(-)
>>
>> diff --git a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
>> index 18fc5db9c976..ec1fc2c8b3e3 100644
>> --- a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
>> +++ b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
>> @@ -88,13 +88,9 @@
>>                       status = "okay";
>>
>>                       axp209: pmic at 34 {
>> -                             compatible = "x-powers,axp209";
>>                               reg = <0x34>;
>>                               interrupt-parent = <&nmi_intc>;
>>                               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
>> -
>> -                             interrupt-controller;
>> -                             #interrupt-cells = <1>;
>>                       };
>>               };
>>
>> @@ -145,3 +141,34 @@
>>               status = "okay";
>>       };
>>  };
>> +
>> +#include "axp209.dtsi"
>> +
>> +&cpu0 {
>> +     cpu-supply = <&reg_dcdc2>;
>> +};
>> +
>> +&reg_dcdc2 {
>> +     regulator-always-on;
>> +     regulator-min-microvolt = <1000000>;
>> +     regulator-max-microvolt = <1450000>;
>> +     regulator-name = "vdd-cpu";
>> +};
>> +
>> +&reg_dcdc3 {
>> +     regulator-always-on;
>> +     regulator-min-microvolt = <1000000>;
>> +     regulator-max-microvolt = <1400000>;
>> +     regulator-name = "vdd-int-dll";
>> +};
>> +
>> +&reg_ldo1 {
>> +     regulator-name = "vdd-rtc";
>> +};
>> +
>> +&reg_ldo2 {
>> +     regulator-always-on;
>> +     regulator-min-microvolt = <3000000>;
>> +     regulator-max-microvolt = <3000000>;
>> +     regulator-name = "avcc";
>> +};
>
> How do reg_vcc3v3 and the other reg used in this DT (ahci, USB) fit
> into that?

The following applies to boards that use AXP209.

reg_vcc3v3 or reg_vcc3v0 is an external buck regulator with it's
enable pin tied to EXTEN on the AXP. This pin is controllable,
but we do not have the driver for it. It is possible that multiple
regulators are tied to this pin. I suggest not touching it without
the correct schematics.

The source for usb and ahci regulators, or reg_vcc5v if you will,
is either the unregulated 5v from the power supply or the usb otg
port. For the Cubietruck, there's an additional uncontrollable
boost regulator that boosts the lipo battery's power up to 5v.

On some of the Olimex boards that use higher input voltages, they
use an uncontrollable buck regulator to step down the voltage to
5v. The Olinuxino-Micro also has a boost regulator for the battery,
tied to EXTEN.

The AXP209 simply does not have enough outputs for all the needed
voltages.

You could probably chain the regulators in the DT via xxx-supply
if it helps. But beyond that, it is hard to do anything meaningful
at this point. Modeling them as fixed regulators beyond our control
is simpler. We also do not have an IPSOUT regulator for the AXP.

> Eventually, I think we would be able to remove
> sunxi-common-regulators.dtsi, or at least, expose the proper regulator
> hierarchy.

The USB and SATA regulators are just GPIO enabled switches (MOSFETs)
or current limiters. I think these will always exist because of the
reference designs. Or do you want to move them back into the board
dts files? FWIW, I like it the way it is now. Not that I don't like
it to be accurate.


ChenYu

  reply	other threads:[~2015-01-12  9:38 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-12  4:34 [PATCH v3 0/9] ARM: sunxi: Support cpufreq on sun[457]i Chen-Yu Tsai
2015-01-12  4:34 ` Chen-Yu Tsai
2015-01-12  4:34 ` [PATCH v3 1/9] Input: sun4i-ts: Add thermal zone sensor support Chen-Yu Tsai
2015-01-12  4:34   ` Chen-Yu Tsai
2015-01-12 12:08   ` Eduardo Valentin
2015-01-12 12:08     ` Eduardo Valentin
2015-01-12  4:34 ` [PATCH v3 2/9] ARM: dts: sunxi: Add dtsi for AXP209 PMIC Chen-Yu Tsai
2015-01-12  4:34   ` Chen-Yu Tsai
2015-01-12  4:34 ` [PATCH v3 3/9] ARM: dts: sun7i: Add cpu thermal zones to dtsi Chen-Yu Tsai
2015-01-12  4:34   ` Chen-Yu Tsai
2015-01-12  4:34 ` [PATCH v3 4/9] ARM: dts: sun7i: cubieboard2: add axp209 regulator nodes Chen-Yu Tsai
2015-01-12  4:34   ` Chen-Yu Tsai
2015-01-12  9:06   ` Maxime Ripard
2015-01-12  9:06     ` Maxime Ripard
2015-01-12  9:38     ` Chen-Yu Tsai [this message]
2015-01-12  9:38       ` Chen-Yu Tsai
2015-01-13  9:40       ` Maxime Ripard
2015-01-13  9:40         ` Maxime Ripard
2015-01-13 10:30         ` Chen-Yu Tsai
2015-01-13 10:30           ` Chen-Yu Tsai
2015-01-14 19:30           ` Maxime Ripard
2015-01-14 19:30             ` Maxime Ripard
2015-01-12  4:34 ` [PATCH v3 5/9] ARM: dts: sun7i: cubietruck: " Chen-Yu Tsai
2015-01-12  4:34   ` Chen-Yu Tsai
2015-01-12  4:34 ` [PATCH v3 6/9] ARM: dts: sun5i: Add cpu thermal zones to dtsi Chen-Yu Tsai
2015-01-12  4:34   ` Chen-Yu Tsai
2015-01-12  4:34 ` [PATCH v3 7/9] ARM: dts: sun5i: hsg-h702: add axp209 regulator nodes Chen-Yu Tsai
2015-01-12  4:34   ` Chen-Yu Tsai
2015-01-12  4:34 ` [PATCH v3 8/9] ARM: dts: sun4i: Add cpu thermal zones to dtsi Chen-Yu Tsai
2015-01-12  4:34   ` Chen-Yu Tsai
2015-01-12  4:34 ` [PATCH v3 9/9] ARM: dts: sun4i: cubieboard: add axp209 regulator nodes Chen-Yu Tsai
2015-01-12  4:34   ` Chen-Yu Tsai
2015-01-12  9:10 ` [PATCH v3 0/9] ARM: sunxi: Support cpufreq on sun[457]i Maxime Ripard
2015-01-12  9:10   ` Maxime Ripard
2015-01-13 13:53   ` Maxime Ripard
2015-01-13 13:53     ` Maxime Ripard

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAGb2v66r6EG2F1-=Gaig7ZW58Z1KteQ5nDPfW5niisv7dCjY0Q@mail.gmail.com' \
    --to=wens@csie.org \
    --cc=dmitry.torokhov@gmail.com \
    --cc=edubezval@gmail.com \
    --cc=hdegoede@redhat.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=maxime.ripard@free-electrons.com \
    --cc=rui.zhang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.