Re: U-Boot sunxi DM_I2C migration?
On Wed, Aug 18, 2021 at 12:20:10AM -0500, Samuel Holland wrote: > Hi all, > > On 8/17/21 2:23 PM, Tom Rini wrote: > > On Thu, Aug 12, 2021 at 05:40:34PM -0400, Tom Rini wrote: > >> On Thu, Aug 12, 2021 at 10:22:07PM +0100, Andre Przywara wrote: > >>> On Thu, 12 Aug 2021 13:49:30 -0400 > >>> Tom Rini wrote: > >>> > >>> Hi Tom, > >>> > As I try and migrate more CONFIG symbols to be Kconfig only, I see that > sunxi is still using the legacy I2C drivers. Is there something > specific holding up migration? Thanks! > >>> > >>> Do you mean a DM_I2C conversion, or just moving those base address > >>> symbols to Kconfig? The latter is rather easy, let me know if I should > >>> give it a shot. > >>> > >>> For DM_I2C, it's the usual sunxi issue: we are using both: DM_I2C and > >>> DT based probing for U-Boot proper, and hardcoded CONFIG_ symbols for > >>> the SPL. *Some* boards need the set up the PMIC early (for increasing > >>> the CPU frequency or setting the proper DRAM voltage), so this needs to > >>> be done in the SPL. I don't know how to fix this "properly", > >>> but introducing DM (and DT) into the SPL is surely not worth the > >>> trouble. Alternatively we could have a separate, cut-down SPL-only > >>> driver, like we have for SPI (arch/arm/mach-sunxi/spl_spi_sunxi.c), > >>> but not sure that's really better. > >>> > >>> If there is something in particular that annoys you about the > >>> situation, we could try to improve this particular issue instead? > >>> Moving the non-DM code into a separate file, maybe? > >> > >> I'm working on the symbols now (since it gets tricky). The first > >> example I pulled out was Hummingbird_A31 which does have legacy I2C and > >> does not set DM_I2C, which is what set me down the more worrying path. > >> If you can confirm that no, really, it's just SPL that's not using > >> DM_I2C that's OK enough for now, we can sort out what the best but > >> probably still unideal solution is long term for SPL. > > > > As I'm converting the symbols to Kconfig now (and adding > > SPL_SYS_I2C_LEGACY), what I'm seeing on sunxi is a whole lot of platform > > enabling the legacy driver in full U-Boot and not DM_I2C. Now it's > > entirely possible the follow up solution really is just to switch to > > DM_I2C (and continue SPL_SYS_I2C_LEGACY) and it would be a fairly > > trivial switch. But I'm not in a good position to make that change and > > test it, so I'm asking you to please, once I've posted this series to > > add SPL_SYS_I2C_LEGACY > > I am aware of three places where sunxi boards use legacy I2C in U-Boot proper: > - The i2c_soft usage enabled by CONFIG_VIDEO_LCD_PANEL_I2C > - The axp_gpio driver (through pmic_bus_*) > - do_poweroff() in drivers/power/axp*.c (through pmic_bus_write) > > I have a patch series for converting all of these that I will be sending > within > the next few days. The two tricky parts are: > - I have no way to test either board that uses VIDEO_LCD_PANEL_I2C, >so I do not want to rely on bus number ordering. > - I am trying to arrange changes in an order that never breaks any >functionality, so some driver must be temporarily compatible with >both legacy and DM I2C. > > I will rebase this on top of the Kconfig series before sending it. Great, thanks! -- Tom signature.asc Description: PGP signature
Re: U-Boot sunxi DM_I2C migration?
Hi all, On 8/17/21 2:23 PM, Tom Rini wrote: > On Thu, Aug 12, 2021 at 05:40:34PM -0400, Tom Rini wrote: >> On Thu, Aug 12, 2021 at 10:22:07PM +0100, Andre Przywara wrote: >>> On Thu, 12 Aug 2021 13:49:30 -0400 >>> Tom Rini wrote: >>> >>> Hi Tom, >>> As I try and migrate more CONFIG symbols to be Kconfig only, I see that sunxi is still using the legacy I2C drivers. Is there something specific holding up migration? Thanks! >>> >>> Do you mean a DM_I2C conversion, or just moving those base address >>> symbols to Kconfig? The latter is rather easy, let me know if I should >>> give it a shot. >>> >>> For DM_I2C, it's the usual sunxi issue: we are using both: DM_I2C and >>> DT based probing for U-Boot proper, and hardcoded CONFIG_ symbols for >>> the SPL. *Some* boards need the set up the PMIC early (for increasing >>> the CPU frequency or setting the proper DRAM voltage), so this needs to >>> be done in the SPL. I don't know how to fix this "properly", >>> but introducing DM (and DT) into the SPL is surely not worth the >>> trouble. Alternatively we could have a separate, cut-down SPL-only >>> driver, like we have for SPI (arch/arm/mach-sunxi/spl_spi_sunxi.c), >>> but not sure that's really better. >>> >>> If there is something in particular that annoys you about the >>> situation, we could try to improve this particular issue instead? >>> Moving the non-DM code into a separate file, maybe? >> >> I'm working on the symbols now (since it gets tricky). The first >> example I pulled out was Hummingbird_A31 which does have legacy I2C and >> does not set DM_I2C, which is what set me down the more worrying path. >> If you can confirm that no, really, it's just SPL that's not using >> DM_I2C that's OK enough for now, we can sort out what the best but >> probably still unideal solution is long term for SPL. > > As I'm converting the symbols to Kconfig now (and adding > SPL_SYS_I2C_LEGACY), what I'm seeing on sunxi is a whole lot of platform > enabling the legacy driver in full U-Boot and not DM_I2C. Now it's > entirely possible the follow up solution really is just to switch to > DM_I2C (and continue SPL_SYS_I2C_LEGACY) and it would be a fairly > trivial switch. But I'm not in a good position to make that change and > test it, so I'm asking you to please, once I've posted this series to > add SPL_SYS_I2C_LEGACY I am aware of three places where sunxi boards use legacy I2C in U-Boot proper: - The i2c_soft usage enabled by CONFIG_VIDEO_LCD_PANEL_I2C - The axp_gpio driver (through pmic_bus_*) - do_poweroff() in drivers/power/axp*.c (through pmic_bus_write) I have a patch series for converting all of these that I will be sending within the next few days. The two tricky parts are: - I have no way to test either board that uses VIDEO_LCD_PANEL_I2C, so I do not want to rely on bus number ordering. - I am trying to arrange changes in an order that never breaks any functionality, so some driver must be temporarily compatible with both legacy and DM I2C. I will rebase this on top of the Kconfig series before sending it. Regards, Samuel
Re: U-Boot sunxi DM_I2C migration?
On Thu, Aug 12, 2021 at 05:40:34PM -0400, Tom Rini wrote: > On Thu, Aug 12, 2021 at 10:22:07PM +0100, Andre Przywara wrote: > > On Thu, 12 Aug 2021 13:49:30 -0400 > > Tom Rini wrote: > > > > Hi Tom, > > > > > As I try and migrate more CONFIG symbols to be Kconfig only, I see that > > > sunxi is still using the legacy I2C drivers. Is there something > > > specific holding up migration? Thanks! > > > > Do you mean a DM_I2C conversion, or just moving those base address > > symbols to Kconfig? The latter is rather easy, let me know if I should > > give it a shot. > > > > For DM_I2C, it's the usual sunxi issue: we are using both: DM_I2C and > > DT based probing for U-Boot proper, and hardcoded CONFIG_ symbols for > > the SPL. *Some* boards need the set up the PMIC early (for increasing > > the CPU frequency or setting the proper DRAM voltage), so this needs to > > be done in the SPL. I don't know how to fix this "properly", > > but introducing DM (and DT) into the SPL is surely not worth the > > trouble. Alternatively we could have a separate, cut-down SPL-only > > driver, like we have for SPI (arch/arm/mach-sunxi/spl_spi_sunxi.c), > > but not sure that's really better. > > > > If there is something in particular that annoys you about the > > situation, we could try to improve this particular issue instead? > > Moving the non-DM code into a separate file, maybe? > > I'm working on the symbols now (since it gets tricky). The first > example I pulled out was Hummingbird_A31 which does have legacy I2C and > does not set DM_I2C, which is what set me down the more worrying path. > If you can confirm that no, really, it's just SPL that's not using > DM_I2C that's OK enough for now, we can sort out what the best but > probably still unideal solution is long term for SPL. As I'm converting the symbols to Kconfig now (and adding SPL_SYS_I2C_LEGACY), what I'm seeing on sunxi is a whole lot of platform enabling the legacy driver in full U-Boot and not DM_I2C. Now it's entirely possible the follow up solution really is just to switch to DM_I2C (and continue SPL_SYS_I2C_LEGACY) and it would be a fairly trivial switch. But I'm not in a good position to make that change and test it, so I'm asking you to please, once I've posted this series to add SPL_SYS_I2C_LEGACY -- Tom signature.asc Description: PGP signature
Re: U-Boot sunxi DM_I2C migration?
On Thu, Aug 12, 2021 at 10:22:07PM +0100, Andre Przywara wrote: > On Thu, 12 Aug 2021 13:49:30 -0400 > Tom Rini wrote: > > Hi Tom, > > > As I try and migrate more CONFIG symbols to be Kconfig only, I see that > > sunxi is still using the legacy I2C drivers. Is there something > > specific holding up migration? Thanks! > > Do you mean a DM_I2C conversion, or just moving those base address > symbols to Kconfig? The latter is rather easy, let me know if I should > give it a shot. > > For DM_I2C, it's the usual sunxi issue: we are using both: DM_I2C and > DT based probing for U-Boot proper, and hardcoded CONFIG_ symbols for > the SPL. *Some* boards need the set up the PMIC early (for increasing > the CPU frequency or setting the proper DRAM voltage), so this needs to > be done in the SPL. I don't know how to fix this "properly", > but introducing DM (and DT) into the SPL is surely not worth the > trouble. Alternatively we could have a separate, cut-down SPL-only > driver, like we have for SPI (arch/arm/mach-sunxi/spl_spi_sunxi.c), > but not sure that's really better. > > If there is something in particular that annoys you about the > situation, we could try to improve this particular issue instead? > Moving the non-DM code into a separate file, maybe? I'm working on the symbols now (since it gets tricky). The first example I pulled out was Hummingbird_A31 which does have legacy I2C and does not set DM_I2C, which is what set me down the more worrying path. If you can confirm that no, really, it's just SPL that's not using DM_I2C that's OK enough for now, we can sort out what the best but probably still unideal solution is long term for SPL. -- Tom signature.asc Description: PGP signature
Re: U-Boot sunxi DM_I2C migration?
On Thu, 12 Aug 2021 13:49:30 -0400 Tom Rini wrote: Hi Tom, > As I try and migrate more CONFIG symbols to be Kconfig only, I see that > sunxi is still using the legacy I2C drivers. Is there something > specific holding up migration? Thanks! Do you mean a DM_I2C conversion, or just moving those base address symbols to Kconfig? The latter is rather easy, let me know if I should give it a shot. For DM_I2C, it's the usual sunxi issue: we are using both: DM_I2C and DT based probing for U-Boot proper, and hardcoded CONFIG_ symbols for the SPL. *Some* boards need the set up the PMIC early (for increasing the CPU frequency or setting the proper DRAM voltage), so this needs to be done in the SPL. I don't know how to fix this "properly", but introducing DM (and DT) into the SPL is surely not worth the trouble. Alternatively we could have a separate, cut-down SPL-only driver, like we have for SPI (arch/arm/mach-sunxi/spl_spi_sunxi.c), but not sure that's really better. If there is something in particular that annoys you about the situation, we could try to improve this particular issue instead? Moving the non-DM code into a separate file, maybe? Cheers, Andre
U-Boot sunxi DM_I2C migration?
Hey, As I try and migrate more CONFIG symbols to be Kconfig only, I see that sunxi is still using the legacy I2C drivers. Is there something specific holding up migration? Thanks! -- Tom signature.asc Description: PGP signature