diff options
author | Peter Carlson <petercarlson@google.com> | 2023-02-23 16:30:34 +0000 |
---|---|---|
committer | Peter Carlson <petercarlson@google.com> | 2023-02-25 02:30:52 +0000 |
commit | a626f65972e2f0d41a3efc0478ed30d3ba58236b (patch) | |
tree | 5a0c84409b43d054956ae10fbdd68a8243514308 | |
parent | bfd85f8026fec91a0346853c56364716b77f82f0 (diff) | |
download | nanohub-a626f65972e2f0d41a3efc0478ed30d3ba58236b.tar.gz |
Disable BOB EXT CTRL1 boost prior to MCU boot
Use SPMI to disable BOB EXT_CTRL1 boost on MCU boot.
Bug: 262723868
Test: Manual, verify BOB voltage gets reset to ~3.5-3.8V if MCU
crashes with AFE LED in high current state.
Change-Id: I545e1c89ab265d9f8629680092dc8f75f05baffb
-rw-r--r-- | main.c | 13 | ||||
-rw-r--r-- | nanohub.h | 1 |
2 files changed, 14 insertions, 0 deletions
@@ -829,6 +829,11 @@ static void __nanohub_hw_reset(struct nanohub_data *data, int boot_mode) if (ret != 0) pr_warn("nanohub: failed to disable afe_tx_sup ret=%x\n", ret); + // Disable BOB EXT CTRL1 prior to MCU boot + ret = regmap_write(pdata->pmic_regmap, pdata->bob_ext_ctrl1_control_reg, 0); + if (ret != 0) + pr_warn("nanohub: failed to disable bob ext ctrl1 ret=%x\n", ret); + // Disable 32KHz clock prior to MCU boot ret = regmap_write(pdata->pmic_regmap, pdata->clk32_control_reg, 0); if (ret != 0) @@ -1918,6 +1923,14 @@ static struct nanohub_platform_data *nanohub_parse_dt(struct device *dev) goto free_pdata; } + /* required bob ext ctrl1 control register */ + ret = of_property_read_u32(dt, "sensorhub,bob_ext_ctrl1_control", + &pdata->bob_ext_ctrl1_control_reg); + if (ret < 0) { + pr_err("nanohub: missing sensorhub,bob_ext_ctrl1_control in device tree\n"); + goto free_pdata; + } + #ifdef CONFIG_NANOHUB_BL_ST /* optional (bl-max-frequency) */ pdata->bl_max_speed_hz = BL_MAX_SPEED_HZ; @@ -19,6 +19,7 @@ struct nanohub_platform_data { u32 vddcore_control_reg; u32 vddcore_voltage; u32 clk32_control_reg; + u32 bob_ext_ctrl1_control_reg; #ifdef CONFIG_NANOHUB_BL_ST u32 bl_max_speed_hz; u32 bl_addr; |