[PATCH] add axp313a support
Simon Glass
sjg at google.com
Sun Jul 16 15:01:26 CEST 2023
Hi SASANO,
On Sat, 15 Jul 2023 at 18:36, SASANO Takayoshi <uaa at mx5.nisiq.net> wrote:
>
> Hello,
>
> On Sun, 16 Jul 2023 08:40:36 +0900,
> Simon Glass wrote:
> >
> > Hi,
> >
> > On Sat, 15 Jul 2023 at 16:01, SASANO Takayoshi <uaa at mx5.nisiq.net> wrote:
> > >
> > >
> > > Here is the diff of AXP313A PMIC driver.
> > > (No board configuration is included)
> > >
> > > Signed-off-by: SASANO Takayoshi <uaa at uaa.org.uk>
> > > ---
> > >
> > > arch/arm/mach-sunxi/pmic_bus.c | 4 +-
> > > board/sunxi/board.c | 9 +-
> > > drivers/power/Kconfig | 16 ++-
> > > drivers/power/Makefile | 1 +
> > > drivers/power/axp313a.c | 171 +++++++++++++++++++++++++++++++++
> > > drivers/power/pmic/axp.c | 1 +
> > > include/axp313a.h | 31 ++++++
> > > include/axp_pmic.h | 2 +
> > > 8 files changed, 226 insertions(+), 9 deletions(-)
> > > create mode 100644 drivers/power/axp313a.c
> > > create mode 100644 include/axp313a.h
> > >
> >
> > Please can you write this to use driver model? There is a pmic uclass.
>
> This is controller-specific driver for power/pmic/axp.c.
> axp.c (axp_pmic) belongs to UCLASS_PMIC.
>
> --
> U_BOOT_DRIVER(axp_pmic) = {
> .name = "axp_pmic",
> .id = UCLASS_PMIC,
> .of_match = axp_pmic_ids,
> .bind = axp_pmic_bind,
> .ops = &axp_pmic_ops,
> };
> --
>
> > > diff --git a/board/sunxi/board.c b/board/sunxi/board.c
> > > index f321cd58a6..9b0069cd52 100644
> > > --- a/board/sunxi/board.c
> > > +++ b/board/sunxi/board.c
> > > @@ -584,6 +584,7 @@ void sunxi_board_init(void)
> > >
> > > #if defined CONFIG_AXP152_POWER || defined CONFIG_AXP209_POWER || \
> > > defined CONFIG_AXP221_POWER || defined CONFIG_AXP305_POWER || \
> > > + defined CONFIG_AXP313A_POWER || \
> > > defined CONFIG_AXP809_POWER || defined CONFIG_AXP818_POWER
> > > power_failed = axp_init();
> > >
> > > @@ -605,7 +606,8 @@ void sunxi_board_init(void)
> > > power_failed |= axp_set_dcdc2(CONFIG_AXP_DCDC2_VOLT);
> > > power_failed |= axp_set_dcdc3(CONFIG_AXP_DCDC3_VOLT);
> > > #endif
> > > -#if !defined(CONFIG_AXP209_POWER) && !defined(CONFIG_AXP818_POWER)
> > > +#if !defined(CONFIG_AXP209_POWER) && !defined(CONFIG_AXP818_POWER) && \
> > > + !defined(CONFIG_AXP313A_POWER)
> > > power_failed |= axp_set_dcdc4(CONFIG_AXP_DCDC4_VOLT);
> > > #endif
> > > #if defined CONFIG_AXP221_POWER || defined CONFIG_AXP809_POWER || \
> > > @@ -617,10 +619,11 @@ void sunxi_board_init(void)
> > > defined CONFIG_AXP818_POWER
> > > power_failed |= axp_set_aldo1(CONFIG_AXP_ALDO1_VOLT);
> > > #endif
> > > -#if !defined(CONFIG_AXP305_POWER)
> > > +#if !defined(CONFIG_AXP305_POWER) && !defined(CONFIG_AXP313A_POWER)
> > > power_failed |= axp_set_aldo2(CONFIG_AXP_ALDO2_VOLT);
> > > #endif
> > > -#if !defined(CONFIG_AXP152_POWER) && !defined(CONFIG_AXP305_POWER)
> > > +#if !defined(CONFIG_AXP152_POWER) && !defined(CONFIG_AXP305_POWER) && \
> > > + !defined(CONFIG_AXP313A_POWER)
> > > power_failed |= axp_set_aldo3(CONFIG_AXP_ALDO3_VOLT);
> > > #endif
> >
> > OMG that is a mess. It looks like sunxi needs some conversion.
>
> I think so. We have to rewrite what regulator output (dcdcX, aldoX, etc..)
> is supported (not by controller name), but is it necessary before
> adding AXP313A code?
Looking at the driver, it seems to use a private sunxi implementation
I'm not sure what to do with this, but adding more to this heap
doesn't sound like a good idea. You could try asking the pmic
maintainer what to do...actually should be copied if you add a
'power:' tag to your patch
+Jaehoon Chung
>
> Best regards,
> --
> SASANO Takayoshi (JG1UAA) <uaa at mx5.nisiq.net>
Regards,
Simon
More information about the U-Boot
mailing list