[PATCH] arm: mecsbc: fixup /regulator-sd device tree node
Sascha Hauer
s.hauer at pengutronix.de
Fri Apr 5 03:12:50 PDT 2024
The MECSBC prototype board has a bug which makes the 1.8V SD mode
unusable. Add a fixup which sets the regulator-min-microvolt property of
the SD regulator to 3.3V to prevent the Kernel from going into 1.8V.
Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
arch/arm/boards/protonic-mecsbc/board.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/arch/arm/boards/protonic-mecsbc/board.c b/arch/arm/boards/protonic-mecsbc/board.c
index 3ba8fb8d1c..56f7ca393a 100644
--- a/arch/arm/boards/protonic-mecsbc/board.c
+++ b/arch/arm/boards/protonic-mecsbc/board.c
@@ -90,6 +90,24 @@ static void mecsbc_process_adc(struct device *dev)
pr_info("VIN = %d V\n", mecsbc_get_vin_mv() / 1000);
}
+static int mecsbc_sd_of_fixup(struct device_node *root, void *context)
+{
+ struct device *dev = context;
+ struct device_node *np;
+
+ dev_info(dev, "Fixing up /regulator-sd\n");
+
+ np = of_find_node_by_path_from(root, "/regulator-sd");
+ if (!np) {
+ dev_err(dev, "Cannot find /regulator-sd node\n");
+ return 0;
+ }
+
+ of_property_write_u32(np, "regulator-min-microvolt", 3300000);
+
+ return 0;
+}
+
static int mecsbc_of_fixup_hwrev(struct device *dev)
{
const char *compat;
@@ -103,6 +121,9 @@ static int mecsbc_of_fixup_hwrev(struct device *dev)
free(buf);
+ if (mecsbc_data.hw_id == 0 && mecsbc_data.hw_rev == 0)
+ of_register_fixup(mecsbc_sd_of_fixup, dev);
+
return 0;
}
--
2.39.2
More information about the barebox
mailing list