From 4daa584ef919a58b90e1957012ffb6eaad5dc6bd Mon Sep 17 00:00:00 2001 From: Oleksandr Suvorov Date: Wed, 25 Nov 2020 17:09:48 +0200 Subject: mfd: stmpe: support disabling sub-functions Add support of sub-functions disabling. It allows one to define and turn on sub-function devices in different devicetree files. Signed-off-by: Oleksandr Suvorov --- drivers/mfd/stmpe.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/drivers/mfd/stmpe.c b/drivers/mfd/stmpe.c index 1aee3b3253fc..0a7b649c3d8d 100644 --- a/drivers/mfd/stmpe.c +++ b/drivers/mfd/stmpe.c @@ -1358,18 +1358,20 @@ static void stmpe_of_probe(struct stmpe_platform_data *pdata, pdata->autosleep = (pdata->autosleep_timeout) ? true : false; for_each_child_of_node(np, child) { - if (of_node_name_eq(child, "stmpe_gpio")) { - pdata->blocks |= STMPE_BLOCK_GPIO; - } else if (of_node_name_eq(child, "stmpe_keypad")) { - pdata->blocks |= STMPE_BLOCK_KEYPAD; - } else if (of_node_name_eq(child, "stmpe_touchscreen")) { - pdata->blocks |= STMPE_BLOCK_TOUCHSCREEN; - } else if (of_node_name_eq(child, "stmpe_adc")) { - pdata->blocks |= STMPE_BLOCK_ADC; - } else if (of_node_name_eq(child, "stmpe_pwm")) { - pdata->blocks |= STMPE_BLOCK_PWM; - } else if (of_node_name_eq(child, "stmpe_rotator")) { - pdata->blocks |= STMPE_BLOCK_ROTATOR; + if (of_device_is_available(child)) { + if (of_node_name_eq(child, "stmpe_gpio")) { + pdata->blocks |= STMPE_BLOCK_GPIO; + } else if (of_node_name_eq(child, "stmpe_keypad")) { + pdata->blocks |= STMPE_BLOCK_KEYPAD; + } else if (of_node_name_eq(child, "stmpe_touchscreen")) { + pdata->blocks |= STMPE_BLOCK_TOUCHSCREEN; + } else if (of_node_name_eq(child, "stmpe_adc")) { + pdata->blocks |= STMPE_BLOCK_ADC; + } else if (of_node_name_eq(child, "stmpe_pwm")) { + pdata->blocks |= STMPE_BLOCK_PWM; + } else if (of_node_name_eq(child, "stmpe_rotator")) { + pdata->blocks |= STMPE_BLOCK_ROTATOR; + } } } } -- cgit v1.2.3