[PATCH 2/8] sunxi: pmic_bus: support alternative I2C address
Simon Glass
sjg at chromium.org
Thu Jan 23 15:37:37 CET 2025
Hi Andre,
On Mon, 20 Jan 2025 at 17:06, Andre Przywara <andre.przywara at arm.com> wrote:
>
> On Mon, 20 Jan 2025 12:21:28 -0700
> Simon Glass <sjg at chromium.org> wrote:
>
> Hi Simon,
>
> > On Mon, 20 Jan 2025 at 09:42, Jernej Škrabec <jernej.skrabec at gmail.com> wrote:
> > >
> > > Dne nedelja, 19. januar 2025 ob 23:25:30 Srednjeevropski standardni čas je Andre Przywara napisal(a):
> > > > On Sat, 18 Jan 2025 08:21:31 +0100
> > > > Jernej Škrabec <jernej.skrabec at gmail.com> wrote:
> > > >
> > > > Hi Jernej,
> > > >
> > > > many thanks for the review and your opinion.
> > > >
> > > > > Dne petek, 17. januar 2025 ob 02:45:31 Srednjeevropski standardni čas je Andre Przywara napisal(a):
> > > > > > Some of the X-Power AXP PMICs can be ordered with an alternative I2C
> > > > > > address, for instance an AXP717 could be shipped with address 0x34 or
> > > > > > with address 0x35.
> > > > > > The datasheets for the AXP717 and AXP803 list two possible addresses,
> > > > > > and they are always consecutive. For DM (DT) based drivers this is no
> > > > > > problem, but the Allwinner SPL code relies on a hardcoded address.
> > > > > >
> > > > > > Add a Kconfig variable that will add "1" to the existing address if it
> > > > > > is set.
> > > > > > This enables to use the AXP717 as used on boards with the new Allwinner
> > > > > > A523 chip.
> > > > > >
> > > > > > Signed-off-by: Andre Przywara <andre.przywara at arm.com>
> > > > >
> > > > > This works until some board vendor start mixing one or another address
> > > > > PMIC. Note that BSP boot0 does address autodetection, so it's not entirely
> > > > > out of the question. Anyway, let's hope we don't see anything like that.
> > > >
> > > > I looked at the datasheets for all supported PMICs, and they either
> > > > state one or two supported addresses, in the latter case both
> > > > consecutive. Autodetection sounds nice, but also unnecessary: we surely
> > > > know what address it is for a certain board? And with those A523 boards
> > > > having two PMICs, autodetection might become sketchy, as we don't know
> > > > for sure which PMIC we got?
> > >
> > > Speaking for T527 BSP boot0 - they check version register to make sure that
> > > correct PMIC is installed.
> > >
> > > >
> > > > But that got me thinking: what about putting the I2C address in Kconfig
> > > > directly, with defaults depending on the PMIC type?
> > > >
> > > > config AXP_I2C_ADDR
> > > > hex "AXP PMIC I2C address"
> > > > depends on ARCH_SUNXI && !SUNXI_NO_PMIC
> > > > default 0x36 if AXP305_POWER
> > > > ....
> > > >
> > > > That's should work seamlessly for all supported PMICs, and we just need
> > > > one line for the Avaota, same as with this patch here.
> > > >
> > > > What do you think?
> > >
> > > Yeah, looks more universal and avoids code changes in pmic_bus.c when
> > > adding support for new AXP PMIC, which is very nice indeed.
> >
> > Shouldn't this be in the devicetree?
>
> It is, and the DM based I2C driver used in U-Boot proper does this
> properly, and works fine. But this here is for the SPL, where we don't
> have DT support. We need just minimal support to adjust the regulator
> for the DRAMs. So far there is one fixed address used by each PMIC, so
> this is simply hardcoded, based on which PMIC is selected. The patch I
> am now proposing (snippet above) just moves that hardcoding into
> Kconfig.
I suppose you could use of-platdata?
Regards,
SImon
More information about the U-Boot
mailing list