MVEBU A38x Regulator

Pali Rohár pali at kernel.org
Tue Jul 26 09:57:09 CEST 2022


Hello!

On Monday 25 July 2022 17:04:33 Tony Dinh wrote:
> Hi Pali,
> 
> Great work! I applied the patch and removed the DM Regulator configs,
> rebuilt, and kwboot it.
> 
> Using the improved GPIO command, I discovered my problem was the pins
> were misconfigured in the DTS include chain, or in the MPP configs
> somewhere. So the improved GPIO command did the trick :) ... I think
> we were flying blind with the old GPIO command, never realizing a pin
> was misconfigured.

If your power supply is controlled by GPIO, then you should define
"regulator-gpio" compatible node in device tree with corresponding GPIO.
See examples in existing DTS files. This should automatically set GPIO
to correct output value without need to call gpio command manually.

> DS116> gpio clear mvebu0_15
> Warning: Changing mpp15 function from ge0_rxd3 to gpio...
> gpio: pin mvebu0_15 (gpio 15) value is 0
> DS116> gpio set  mvebu0_15
> gpio: pin mvebu0_15 (gpio 15) value is 1
> DS116> scsi reset
> Reset SCSI
> scanning bus for devices...
> Target spinup took 0 ms.
> SATA link 1 timeout.
> AHCI 0001.0000 32 slots 2 ports 6 Gbps 0x3 impl SATA mode
> flags: 64bit ncq led only pmp fbss pio slum part sxs
>   Device 0: (0:0) Vendor: ATA Prod.: HGST HTS721010A9 Rev: JB0O
>             Type: Hard Disk
>             Capacity: 953869.7 MB = 931.5 GB (1953525168 x 512)
> 
> And verifying that ge0_rxd3 is not used by Ethernet.

You could run 'pinmux status -a' command to verify how is each MPP pin
configured.

> DS116> ping 192.168.0.220
> ethernet at 70000 Waiting for PHY auto negotiation to complete........ done
> Using ethernet at 70000 device
> host 192.168.0.220 is alive
> 
> The USB GPIO 26 and 27 were also similarly misconfigured . And now I
> can power up both USB ports with a clear/set GPIO.
> 
> Thanks for an awesome patch in such a short time!
> Tony

Perfect!

> On Mon, Jul 25, 2022 at 1:22 PM Tony Dinh <mibodhi at gmail.com> wrote:
> >
> > Hi Pali,
> >
> > I'll get the patch and give it a try.
> >
> > Thanks,
> > Tony
> >
> > On Mon, Jul 25, 2022 at 12:13 PM Pali Rohár <pali at kernel.org> wrote:
> > >
> > > On Sunday 24 July 2022 11:27:00 Pali Rohár wrote:
> > > > On Wednesday 20 July 2022 15:47:55 Tony Dinh wrote:
> > > > > Hi Pali/Marek,
> > > > >
> > > > > I'm writing u-boot for the Synology DS116 (Armada 385, dual core, 1.8
> > > > > Ghz). I could not seem to get the DM Regulator to power up the SATA
> > > > > port on this board. I'm using Stefan ./board/Marvell/db-88f6820-gp as
> > > > > the starting point, and using the latest DTS
> > > > >
> > > > > https://github.com/torvalds/linux/blob/master/arch/arm/boot/dts/armada-385-synology-ds116.dts
> > > > >
> > > > > I noticed that the Linux kernel boot log (booted with stock Marvell
> > > > > u-boot) shows "supply ahci not found" error. But I can power up the
> > > > > SATA drive in stock u-boot by poking GPIO 15 (SATA power enable). And
> > > > > it works fine with this combination: stock u-boot, kernel 5.18.6.
> > > > >
> > > > > [    2.861061] usb_phy_generic usb3_0_phy: dummy supplies not allowed
> > > > > for exclusive requests
> > > > > [    2.870173] usb_phy_generic usb3_1_phy: dummy supplies not allowed
> > > > > for exclusive requests
> > > > > [    2.879296] ahci-mvebu f10a8000.sata: supply ahci not found, using
> > > > > dummy regulator
> > > > > [    2.887704] ahci-mvebu f10a8000.sata: supply phy not found, using
> > > > > dummy regulator
> > > > > [    2.896101] ahci-mvebu f10a8000.sata: masking port_map 0x3 -> 0x1
> > > > > [    2.902951] ahci-mvebu f10a8000.sata: AHCI 0001.0000 32 slots 2
> > > > > ports 6 Gbps 0x1 impl platform mode
> > > > > [    2.912750] ahci-mvebu f10a8000.sata: flags: 64bit ncq sntf led
> > > > > only pmp fbs pio slum part sxs
> > > > > [    2.923184] scsi host0: ahci-mvebu
> > > > > [    2.927693] scsi host1: ahci-mvebu
> > > > > [    2.931935] ata1: SATA max UDMA/133 mmio [mem
> > > > > 0xf10a8000-0xf10a9fff] port 0x100 irq 50
> > > > > [    2.940610] ata2: DUMMY
> > > > >
> > > > > My questions: does DM regulator +  DM GPIO work for Armada 38x u-boot?
> > > > > and is the error "ahci-mvebu f10a8000.sata: supply ahci, using dummy
> > > > > regulator" a real error? I've googled this and came across some past
> > > > > related posts from you (Pali and Marek), but it is not apparent what
> > > > > was the solution.
> > > >
> > > > I'm really not sure if DM regulator and DM GPIO is working in U-Boot for
> > > > Armada 38x. Lot of Armada boards touch pinctrl/gpio registers directory
> > > > to configure GPIOs, instead of using DM GPIO API.
> > >
> > > DM GPIO for A38x is semi-broken. It requires DM pinctrl A38x driver,
> > > which is not in U-Boot yet. I implemented it and sent to ML:
> > > https://patchwork.ozlabs.org/project/uboot/list/?series=311133&state=*
> > >
> > > With this change U-Boot 'gpio' command is working fine on Turris Omnia
> > > (A385 board).
> > >
> > > It is possible that on other mvebu boards are gpios already working fine
> > > without new driver. It depends on initial MPP configuration. Above new
> > > pinctrl driver ensures that gpio subsystem set particular pin to GPIO
> > > mode (if it is not by default initialized to gpio) prior using it.
> > >
> > > > Stefan, any idea?
> > > >
> > > > > If you are interested in seeing more info while I'm at my new u-boot
> > > > > prompt (kwboot with the SPL kwb), I can post that followup.
> > > > >
> > > > > Thanks,
> > > > > Tony


More information about the U-Boot mailing list