apm821xx: MBL: HDD regulators overhaul for MBL DUO
authorChristian Lamparter <chunkeey@gmail.com>
Fri, 15 Oct 2021 19:30:58 +0000 (21:30 +0200)
committerChristian Lamparter <chunkeey@gmail.com>
Fri, 22 Oct 2021 19:25:18 +0000 (21:25 +0200)
Takimata reported on the OpenWrt forum in thread [0], that his
MyBook Live Duo wasn't booting OpenWrt 21.02 after upgrading
from the previous OpenWrt 19.07.

The last logged entries on his console

|[    0.531599] sata1-regulator GPIO handle specifies active low - ignored
|[    0.538391] sata0-regulator GPIO handle specifies active low - ignored
|[    0.759791] ata2: SATA link down (SStatus 0 SControl 300)
|[    0.765251] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
|[    5.909555] ata1.00: qc timeout (cmd 0xec)
|[    5.913656] ata1.00: failed to IDENTIFY (I/O error, err_mask=0x4)
|[    6.231757] ata1: SATA link down (SStatus 0 SControl 300)

This extract clearly showed that the HDD on which OpenWrt is installed,
simply disappeared after the SATA power regulators had been initialized.

The reason why this worked with OpenWrt 19.07 was because the kernel
config symbol CONFIG_REGULATOR=y was not set in the target's config-4.14.

(This shows that the MBL Single does differ from the DUO in that
it does not have programmable power regulators for the HDDs.)

[0] <https://forum.openwrt.org/t/21-02-0-and-snapshot-fail-to-boot-on-my-book-live-duo/106585>

Reported-by: Takimata (forum)
Tested-by: Takimata (forum)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
target/linux/apm821xx/dts/wd-mybooklive.dts

index dcb8078050dad7cd8288f51738a2bbabe52b1662..bccf82fbaa9c5b6320a21f257854bd573f62cffa 100644 (file)
        sata1pwr: sata1-regulator {
                compatible = "regulator-fixed";
                regulator-name = "Power Drive Port 1";
-               gpios = <&GPIO1 3 GPIO_ACTIVE_LOW>;
+               gpios = <&GPIO1 3 GPIO_ACTIVE_HIGH>;
                regulator-min-microvolt = <12000000>;
                regulator-max-microvolt = <12000000>;
+               regulator-boot-on;   /* uboot sets this */
                regulator-always-on; /* needed to read OS from HDD */
+               enable-active-high;
        };
 
        sata0pwr: sata0-regulator {
                compatible = "regulator-fixed";
                regulator-name = "Power Drive Port 0";
-               gpios = <&GPIO1 7 GPIO_ACTIVE_LOW>;
+               gpios = <&GPIO1 7 GPIO_ACTIVE_HIGH>;
                regulator-min-microvolt = <12000000>;
                regulator-max-microvolt = <12000000>;
+               regulator-boot-on;   /* uboot sets this */
                regulator-always-on; /* needed to read OS from HDD */
+               enable-active-high;
        };
 };