[PATCH] ARM: kirkwood: Add support for NETGEAR ReadyNAS Duo v2 using DT
Andrew Lunn
andrew at lunn.ch
Tue Mar 19 02:07:50 EDT 2013
On Tue, Mar 19, 2013 at 12:10:46AM +0100, Arnaud Ebalard wrote:
> Hi guys,
>
> Andrew Lunn <andrew at lunn.ch> writes:
>
> >> +void __init netgear_readynas_init(void)
> >> +{
> >> + u32 val;
> >> +
> >> + kirkwood_ge00_init(&netgear_readynas_ge00_data);
> >> + kirkwood_pcie_init(KW_PCIE0);
> >> +
> >> + /* USB 3.0 controller power on */
> >> + mdelay(3000);
> >> + val = readl(GPIO_HIGH_VIRT_BASE + 0x4);
> >> + writel(val & ~(0x1 << 14), GPIO_HIGH_VIRT_BASE + 0x4);
> >> + val = readl(GPIO_HIGH_VIRT_BASE);
> >> + writel(val | (0x1 << 14), GPIO_HIGH_VIRT_BASE);
> >
> > As Jason said, you can use a fixed regulator, in DT. Something like:
> >
> > regulators {
> > compatible = "simple-bus";
> > #address-cells = <1>;
> > #size-cells = <0>;
> >
> > usb_power: regulator at 1 {
> > compatible = "regulator-fixed";
> > reg = <1>;
> > regulator-name = "USB Power";
> > regulator-min-microvolt = <5000000>;
> > regulator-max-microvolt = <5000000>;
> > enable-active-high;
> > regulator-always-on;
> > regulator-boot-on;
> > gpio = <&gpio0 14 0>;
> > };
> > };
>
> I spent a lot of time on this, trying various things and reading various
> elements of Docomentation/ but for some reason, it does not work, i.e. I
> always end up w/ something lik:
>
> [ 7.599773] USB Power: Failed to request enable GPIO14: -517
> [ 7.605963] reg-fixed-voltage 1.regulator: Failed to register regulator: -517
> [ 7.613163] platform 1.regulator: Driver reg-fixed-voltage requests probe deferral
Although this is quite noisy, it is actually not an error. What it is
saying is that it failed to get the gpio and it will try again
later. -517 is EDEFERE. It failed, because at this point, the GPIO
driver has not yet loaded. Later in the boot the gpio driver
loaded. It around the time you see:
kirkwood-pinctrl f1010000.pinctrl: registered pinctrl driver
At some point, the kernel will retry again to load all drivers which
failed with EDEFER and the second time the regulator driver should
load.
Take a look in /sys/class/regulator/ See if there is a regulator
there with the name file containing "USB power".
Andrew
More information about the linux-arm-kernel
mailing list