From bbb38524011b44ff683638d66c3d197078727df1 Mon Sep 17 00:00:00 2001 From: Christian Lamparter Date: Fri, 15 Oct 2021 21:30:58 +0200 Subject: [PATCH] apm821xx: MBL: HDD regulators overhaul for MBL DUO 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] Reported-by: Takimata (forum) Tested-by: Takimata (forum) Signed-off-by: Christian Lamparter --- target/linux/apm821xx/dts/wd-mybooklive.dts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/target/linux/apm821xx/dts/wd-mybooklive.dts b/target/linux/apm821xx/dts/wd-mybooklive.dts index dcb8078050..bccf82fbaa 100644 --- a/target/linux/apm821xx/dts/wd-mybooklive.dts +++ b/target/linux/apm821xx/dts/wd-mybooklive.dts @@ -127,19 +127,23 @@ 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; }; }; -- 2.30.2