Message ID | 1440755679-8266-3-git-send-email-wens@csie.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Fri, Aug 28, 2015 at 05:54:35PM +0800, Chen-Yu Tsai wrote: > The AXP221 PMIC is used with some Allwinner SoCs. This patch adds > a dtsi file listing all the regulator nodes. The regulators are > initialized based on their device node names. > > This can later be used with the AXP223 PMIC as well, which has > the same functionality as AXP221, except for its host interface. > > Signed-off-by: Chen-Yu Tsai <wens@csie.org> > --- > arch/arm/boot/dts/axp221.dtsi | 148 ++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 148 insertions(+) > create mode 100644 arch/arm/boot/dts/axp221.dtsi > > diff --git a/arch/arm/boot/dts/axp221.dtsi b/arch/arm/boot/dts/axp221.dtsi > new file mode 100644 > index 000000000000..74836f329863 > --- /dev/null > +++ b/arch/arm/boot/dts/axp221.dtsi > @@ -0,0 +1,148 @@ > +/* > + * Copyright 2015 Chen-Yu Tsai > + * > + * Chen-Yu Tsai <wens@csie.org> > + * > + * This file is dual-licensed: you can use it either under the terms > + * of the GPL or the X11 license, at your option. Note that this dual > + * licensing only applies to this file, and not this project as a > + * whole. > + * > + * a) This file is free software; you can redistribute it and/or > + * modify it under the terms of the GNU General Public License as > + * published by the Free Software Foundation; either version 2 of the > + * License, or (at your option) any later version. > + * > + * This file is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + * GNU General Public License for more details. > + * > + * Or, alternatively, > + * > + * b) Permission is hereby granted, free of charge, to any person > + * obtaining a copy of this software and associated documentation > + * files (the "Software"), to deal in the Software without > + * restriction, including without limitation the rights to use, > + * copy, modify, merge, publish, distribute, sublicense, and/or > + * sell copies of the Software, and to permit persons to whom the > + * Software is furnished to do so, subject to the following > + * conditions: > + * > + * The above copyright notice and this permission notice shall be > + * included in all copies or substantial portions of the Software. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, > + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES > + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND > + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT > + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, > + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR > + * OTHER DEALINGS IN THE SOFTWARE. > + */ > + > +/* > + * AXP221/221s/223 Integrated Power Management Chip > + * http://www.x-powers.com/product/AXP22X.php > + * http://dl.linux-sunxi.org/AXP/AXP221%20Datasheet%20V1.2%2020130326%20.pdf > + */ I'm usually not really fond of URLs in the source code and/or the commit logs. They tend to be broken very easily. > + > +&axp221 { > + compatible = "x-powers,axp221"; > + interrupt-controller; > + #interrupt-cells = <1>; > + > + regulators { > + /* Default work frequency for buck regulators */ > + x-powers,dcdc-freq = <3000>; > + > + /* supplies for dc1sw & dc5ldo are connected internally */ > + dcdc1-supply = <®_dcdc1>; > + dcdc5-supply = <®_dcdc5>; so the parent regulator of DCDC1 is DCDC1 ? Maxime
On Fri, Aug 28, 2015 at 8:31 PM, Maxime Ripard <maxime.ripard@free-electrons.com> wrote: > On Fri, Aug 28, 2015 at 05:54:35PM +0800, Chen-Yu Tsai wrote: >> The AXP221 PMIC is used with some Allwinner SoCs. This patch adds >> a dtsi file listing all the regulator nodes. The regulators are >> initialized based on their device node names. >> >> This can later be used with the AXP223 PMIC as well, which has >> the same functionality as AXP221, except for its host interface. >> >> Signed-off-by: Chen-Yu Tsai <wens@csie.org> >> --- >> arch/arm/boot/dts/axp221.dtsi | 148 ++++++++++++++++++++++++++++++++++++++++++ >> 1 file changed, 148 insertions(+) >> create mode 100644 arch/arm/boot/dts/axp221.dtsi >> >> diff --git a/arch/arm/boot/dts/axp221.dtsi b/arch/arm/boot/dts/axp221.dtsi >> new file mode 100644 >> index 000000000000..74836f329863 >> --- /dev/null >> +++ b/arch/arm/boot/dts/axp221.dtsi >> @@ -0,0 +1,148 @@ >> +/* >> + * Copyright 2015 Chen-Yu Tsai >> + * >> + * Chen-Yu Tsai <wens@csie.org> >> + * >> + * This file is dual-licensed: you can use it either under the terms >> + * of the GPL or the X11 license, at your option. Note that this dual >> + * licensing only applies to this file, and not this project as a >> + * whole. >> + * >> + * a) This file is free software; you can redistribute it and/or >> + * modify it under the terms of the GNU General Public License as >> + * published by the Free Software Foundation; either version 2 of the >> + * License, or (at your option) any later version. >> + * >> + * This file is distributed in the hope that it will be useful, >> + * but WITHOUT ANY WARRANTY; without even the implied warranty of >> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >> + * GNU General Public License for more details. >> + * >> + * Or, alternatively, >> + * >> + * b) Permission is hereby granted, free of charge, to any person >> + * obtaining a copy of this software and associated documentation >> + * files (the "Software"), to deal in the Software without >> + * restriction, including without limitation the rights to use, >> + * copy, modify, merge, publish, distribute, sublicense, and/or >> + * sell copies of the Software, and to permit persons to whom the >> + * Software is furnished to do so, subject to the following >> + * conditions: >> + * >> + * The above copyright notice and this permission notice shall be >> + * included in all copies or substantial portions of the Software. >> + * >> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >> + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES >> + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND >> + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT >> + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, >> + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING >> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR >> + * OTHER DEALINGS IN THE SOFTWARE. >> + */ >> + >> +/* >> + * AXP221/221s/223 Integrated Power Management Chip >> + * http://www.x-powers.com/product/AXP22X.php >> + * http://dl.linux-sunxi.org/AXP/AXP221%20Datasheet%20V1.2%2020130326%20.pdf >> + */ > > I'm usually not really fond of URLs in the source code and/or the > commit logs. They tend to be broken very easily. OK. Would you rather I put them in Documentation/arm/sunxi/README? It's not immediately clear that sunxi and axp* are connected though. >> + >> +&axp221 { >> + compatible = "x-powers,axp221"; >> + interrupt-controller; >> + #interrupt-cells = <1>; >> + >> + regulators { >> + /* Default work frequency for buck regulators */ >> + x-powers,dcdc-freq = <3000>; >> + >> + /* supplies for dc1sw & dc5ldo are connected internally */ >> + dcdc1-supply = <®_dcdc1>; >> + dcdc5-supply = <®_dcdc5>; > > so the parent regulator of DCDC1 is DCDC1 ? These probably aren't the best names. These are the supplies for DC1SW and DC5LDO, respectively. They are connected internally, so there aren't named pins for them. The comment above explains it, though probably not clearly enough. Furthermore, the input pins for DCDC1/5 are VIN1/5. Regards ChenYu
On Sat, Aug 29, 2015 at 12:09:55AM +0800, Chen-Yu Tsai wrote: > >> +/* > >> + * AXP221/221s/223 Integrated Power Management Chip > >> + * http://www.x-powers.com/product/AXP22X.php > >> + * http://dl.linux-sunxi.org/AXP/AXP221%20Datasheet%20V1.2%2020130326%20.pdf > >> + */ > > > > I'm usually not really fond of URLs in the source code and/or the > > commit logs. They tend to be broken very easily. > > OK. Would you rather I put them in Documentation/arm/sunxi/README? > It's not immediately clear that sunxi and axp* are connected though. It's one of the first things that pop up when googling, and it's not really related to sunxi, so I'd say simply leave them out. > >> + > >> +&axp221 { > >> + compatible = "x-powers,axp221"; > >> + interrupt-controller; > >> + #interrupt-cells = <1>; > >> + > >> + regulators { > >> + /* Default work frequency for buck regulators */ > >> + x-powers,dcdc-freq = <3000>; > >> + > >> + /* supplies for dc1sw & dc5ldo are connected internally */ > >> + dcdc1-supply = <®_dcdc1>; > >> + dcdc5-supply = <®_dcdc5>; > > > > so the parent regulator of DCDC1 is DCDC1 ? > > These probably aren't the best names. These are the supplies for DC1SW and > DC5LDO, respectively. They are connected internally, so there aren't named > pins for them. The comment above explains it, though probably not clearly > enough. Furthermore, the input pins for DCDC1/5 are VIN1/5. I'm not quite sure I understand. They're connected internally but they have pins ? Maxime
On Sat, Aug 29, 2015 at 4:43 AM, Maxime Ripard <maxime.ripard@free-electrons.com> wrote: > On Sat, Aug 29, 2015 at 12:09:55AM +0800, Chen-Yu Tsai wrote: >> >> +/* >> >> + * AXP221/221s/223 Integrated Power Management Chip >> >> + * http://www.x-powers.com/product/AXP22X.php >> >> + * http://dl.linux-sunxi.org/AXP/AXP221%20Datasheet%20V1.2%2020130326%20.pdf >> >> + */ >> > >> > I'm usually not really fond of URLs in the source code and/or the >> > commit logs. They tend to be broken very easily. >> >> OK. Would you rather I put them in Documentation/arm/sunxi/README? >> It's not immediately clear that sunxi and axp* are connected though. > > It's one of the first things that pop up when googling, and it's not > really related to sunxi, so I'd say simply leave them out. Ok. >> >> + >> >> +&axp221 { >> >> + compatible = "x-powers,axp221"; >> >> + interrupt-controller; >> >> + #interrupt-cells = <1>; >> >> + >> >> + regulators { >> >> + /* Default work frequency for buck regulators */ >> >> + x-powers,dcdc-freq = <3000>; >> >> + >> >> + /* supplies for dc1sw & dc5ldo are connected internally */ >> >> + dcdc1-supply = <®_dcdc1>; >> >> + dcdc5-supply = <®_dcdc5>; >> > >> > so the parent regulator of DCDC1 is DCDC1 ? >> >> These probably aren't the best names. These are the supplies for DC1SW and >> DC5LDO, respectively. They are connected internally, so there aren't named >> pins for them. The comment above explains it, though probably not clearly >> enough. Furthermore, the input pins for DCDC1/5 are VIN1/5. > > I'm not quite sure I understand. They're connected internally but they > have pins ? Internally, DCDC1's output feeds the input for DC1SW (which is just a switch BTW), and DCDC5's output feeds DC5LDO (which is an LDO). Both these extra regulators have separate controls. There are no external pins to name the supplies after, so I just named them after which regulator supplies them. ChenYu
On Sat, Aug 29, 2015 at 10:07:12AM +0800, Chen-Yu Tsai wrote: > >> >> + > >> >> +&axp221 { > >> >> + compatible = "x-powers,axp221"; > >> >> + interrupt-controller; > >> >> + #interrupt-cells = <1>; > >> >> + > >> >> + regulators { > >> >> + /* Default work frequency for buck regulators */ > >> >> + x-powers,dcdc-freq = <3000>; > >> >> + > >> >> + /* supplies for dc1sw & dc5ldo are connected internally */ > >> >> + dcdc1-supply = <®_dcdc1>; > >> >> + dcdc5-supply = <®_dcdc5>; > >> > > >> > so the parent regulator of DCDC1 is DCDC1 ? > >> > >> These probably aren't the best names. These are the supplies for DC1SW and > >> DC5LDO, respectively. They are connected internally, so there aren't named > >> pins for them. The comment above explains it, though probably not clearly > >> enough. Furthermore, the input pins for DCDC1/5 are VIN1/5. > > > > I'm not quite sure I understand. They're connected internally but they > > have pins ? > > Internally, DCDC1's output feeds the input for DC1SW (which is just a switch > BTW) and DCDC5's output feeds DC5LDO (which is an LDO). Both these extra > regulators have separate controls. There are no external pins to name the > supplies after, so I just named them after which regulator supplies them. Well, there is. dc5ldo and dc1sw. And it is also how you called these regulators in your DT, so it would make much more sense to have it listed as such. Maxime
On Tue, Sep 1, 2015 at 2:29 PM, Maxime Ripard <maxime.ripard@free-electrons.com> wrote: > On Sat, Aug 29, 2015 at 10:07:12AM +0800, Chen-Yu Tsai wrote: >> >> >> + >> >> >> +&axp221 { >> >> >> + compatible = "x-powers,axp221"; >> >> >> + interrupt-controller; >> >> >> + #interrupt-cells = <1>; >> >> >> + >> >> >> + regulators { >> >> >> + /* Default work frequency for buck regulators */ >> >> >> + x-powers,dcdc-freq = <3000>; >> >> >> + >> >> >> + /* supplies for dc1sw & dc5ldo are connected internally */ >> >> >> + dcdc1-supply = <®_dcdc1>; >> >> >> + dcdc5-supply = <®_dcdc5>; >> >> > >> >> > so the parent regulator of DCDC1 is DCDC1 ? >> >> >> >> These probably aren't the best names. These are the supplies for DC1SW and >> >> DC5LDO, respectively. They are connected internally, so there aren't named >> >> pins for them. The comment above explains it, though probably not clearly >> >> enough. Furthermore, the input pins for DCDC1/5 are VIN1/5. >> > >> > I'm not quite sure I understand. They're connected internally but they >> > have pins ? >> >> Internally, DCDC1's output feeds the input for DC1SW (which is just a switch >> BTW) and DCDC5's output feeds DC5LDO (which is an LDO). Both these extra >> regulators have separate controls. There are no external pins to name the >> supplies after, so I just named them after which regulator supplies them. > > Well, there is. dc5ldo and dc1sw. And it is also how you called these > regulators in your DT, so it would make much more sense to have it > listed as such. I was under the impression that we name them after the input pins. The names are also documented in Documentation/devicetree/bindings/mfd/axp20x.txt Do you want to change them? Regards ChenYu
On Tue, Sep 01, 2015 at 02:40:23PM +0800, Chen-Yu Tsai wrote: > On Tue, Sep 1, 2015 at 2:29 PM, Maxime Ripard > <maxime.ripard@free-electrons.com> wrote: > > On Sat, Aug 29, 2015 at 10:07:12AM +0800, Chen-Yu Tsai wrote: > >> >> >> + > >> >> >> +&axp221 { > >> >> >> + compatible = "x-powers,axp221"; > >> >> >> + interrupt-controller; > >> >> >> + #interrupt-cells = <1>; > >> >> >> + > >> >> >> + regulators { > >> >> >> + /* Default work frequency for buck regulators */ > >> >> >> + x-powers,dcdc-freq = <3000>; > >> >> >> + > >> >> >> + /* supplies for dc1sw & dc5ldo are connected internally */ > >> >> >> + dcdc1-supply = <®_dcdc1>; > >> >> >> + dcdc5-supply = <®_dcdc5>; > >> >> > > >> >> > so the parent regulator of DCDC1 is DCDC1 ? > >> >> > >> >> These probably aren't the best names. These are the supplies for DC1SW and > >> >> DC5LDO, respectively. They are connected internally, so there aren't named > >> >> pins for them. The comment above explains it, though probably not clearly > >> >> enough. Furthermore, the input pins for DCDC1/5 are VIN1/5. > >> > > >> > I'm not quite sure I understand. They're connected internally but they > >> > have pins ? > >> > >> Internally, DCDC1's output feeds the input for DC1SW (which is just a switch > >> BTW) and DCDC5's output feeds DC5LDO (which is an LDO). Both these extra > >> regulators have separate controls. There are no external pins to name the > >> supplies after, so I just named them after which regulator supplies them. > > > > Well, there is. dc5ldo and dc1sw. And it is also how you called these > > regulators in your DT, so it would make much more sense to have it > > listed as such. > > I was under the impression that we name them after the input pins. The names > are also documented in Documentation/devicetree/bindings/mfd/axp20x.txt Except that those don't have any input pins, like you said. It makes much more sense to name them after the regulator they supply. This property express a parenting relationship, with <child>-supply = <parent>. > Do you want to change them? Yes. Maxime
diff --git a/arch/arm/boot/dts/axp221.dtsi b/arch/arm/boot/dts/axp221.dtsi new file mode 100644 index 000000000000..74836f329863 --- /dev/null +++ b/arch/arm/boot/dts/axp221.dtsi @@ -0,0 +1,148 @@ +/* + * Copyright 2015 Chen-Yu Tsai + * + * Chen-Yu Tsai <wens@csie.org> + * + * This file is dual-licensed: you can use it either under the terms + * of the GPL or the X11 license, at your option. Note that this dual + * licensing only applies to this file, and not this project as a + * whole. + * + * a) This file is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This file is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * Or, alternatively, + * + * b) Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +/* + * AXP221/221s/223 Integrated Power Management Chip + * http://www.x-powers.com/product/AXP22X.php + * http://dl.linux-sunxi.org/AXP/AXP221%20Datasheet%20V1.2%2020130326%20.pdf + */ + +&axp221 { + compatible = "x-powers,axp221"; + interrupt-controller; + #interrupt-cells = <1>; + + regulators { + /* Default work frequency for buck regulators */ + x-powers,dcdc-freq = <3000>; + + /* supplies for dc1sw & dc5ldo are connected internally */ + dcdc1-supply = <®_dcdc1>; + dcdc5-supply = <®_dcdc5>; + + reg_dcdc1: dcdc1 { + regulator-name = "dcdc1"; + }; + + reg_dcdc2: dcdc2 { + regulator-name = "dcdc2"; + }; + + reg_dcdc3: dcdc3 { + regulator-name = "dcdc3"; + }; + + reg_dcdc4: dcdc4 { + regulator-name = "dcdc4"; + }; + + reg_dcdc5: dcdc5 { + regulator-name = "dcdc5"; + }; + + reg_dc1sw: dc1sw { + regulator-name = "dc1sw"; + }; + + reg_dc5ldo: dc5ldo { + regulator-name = "dc5ldo"; + }; + + reg_aldo1: aldo1 { + regulator-name = "aldo1"; + }; + + reg_aldo2: aldo2 { + regulator-name = "aldo2"; + }; + + reg_aldo3: aldo3 { + regulator-name = "aldo3"; + }; + + reg_dldo1: dldo1 { + regulator-name = "dldo1"; + }; + + reg_dldo2: dldo2 { + regulator-name = "dldo2"; + }; + + reg_dldo3: dldo3 { + regulator-name = "dldo3"; + }; + + reg_dldo4: dldo4 { + regulator-name = "dldo4"; + }; + + reg_eldo1: eldo1 { + regulator-name = "eldo1"; + }; + + reg_eldo2: eldo2 { + regulator-name = "eldo2"; + }; + + reg_eldo3: eldo3 { + regulator-name = "eldo3"; + }; + + reg_ldo_io0: ldo_io0 { + regulator-name = "ldo_io0"; + }; + + reg_ldo_io1: ldo_io1 { + regulator-name = "ldo_io1"; + }; + + reg_rtc_ldo: rtc_ldo { + /* RTC_LDO is a fixed, always-on regulator */ + regulator-always-on; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + regulator-name = "rtc_ldo"; + }; + }; +};
The AXP221 PMIC is used with some Allwinner SoCs. This patch adds a dtsi file listing all the regulator nodes. The regulators are initialized based on their device node names. This can later be used with the AXP223 PMIC as well, which has the same functionality as AXP221, except for its host interface. Signed-off-by: Chen-Yu Tsai <wens@csie.org> --- arch/arm/boot/dts/axp221.dtsi | 148 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 arch/arm/boot/dts/axp221.dtsi