* jerome Neanne <jneanne@xxxxxxxxxxxx> [230512 07:13]:
On 11/05/2023 22:57, Linus Walleij wrote:
I'm fine with your proposal. Will wait few days just in case anyone wants to+ /* Documentation is stating that GPIO0 direction must not be changed in Linux:
+ * Table 8-34. MFP_1_CONFIG(3): MULTI_DEVICE_ENABLE,
+ * Should only be changed in INITIALIZE state (prior to ON Request).
+ * Set statically by NVM, changing direction in application can cause a hang.
+ * Below can be used for test purpose only:
+ */
+
+#if 0
+ int ret = regmap_update_bits(gpio->tps->regmap, TPS65219_REG_MFP_1_CONFIG,
+ TPS65219_GPIO0_DIR_MASK, direction);
+ if (ret)
+ return ret;
+#endif
+ dev_err(gpio->tps->dev,
+ "GPIO%d direction set by NVM, change to %u failed, not allowed by specification\n",
+ offset, direction);
+ return -EOPNOTSUPP;
+}
Normally people would complain about #if 0 code.
But this is a special case!
I definitely want the code to be in there somehow.
What about:
if (IS_ENABLED(DEBUG))?
If someone enables debug with an explicit -DDEBUG to the compiler
this could be allowed.
add any comment then go for this.
Just wondering.. Would it help for the driver probe to set gpio0 as a gpio
hog after reading the configured value?
Maybe the multi device enable just means the pin may be shared with no
specific hardware reason to not change it during the runtime?