From mboxrd@z Thu Jan 1 00:00:00 1970 From: vaibhav.hiremath@linaro.org (Vaibhav Hiremath) Date: Thu, 25 Jun 2015 10:57:16 +0530 Subject: [PATCH-v3 1/3] mfd: 88pm800: Add device tree support In-Reply-To: References: <1435137673-1629-1-git-send-email-vaibhav.hiremath@linaro.org> <1435137673-1629-2-git-send-email-vaibhav.hiremath@linaro.org> Message-ID: <558B9134.5090409@linaro.org> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Thursday 25 June 2015 05:27 AM, Krzysztof Kozlowski wrote: > 2015-06-24 18:21 GMT+09:00 Vaibhav Hiremath : >> Add DT support to the 88pm800 driver, along with compatible >> field for it's sub-devices (rtc, onkey and regulator) >> >> Signed-off-by: Chao Xie >> Signed-off-by: Vaibhav Hiremath >> --- >> drivers/mfd/88pm800.c | 25 +++++++++++++++++++++++++ >> 1 file changed, 25 insertions(+) >> >> diff --git a/drivers/mfd/88pm800.c b/drivers/mfd/88pm800.c >> index 841717a..059f01a 100644 >> --- a/drivers/mfd/88pm800.c >> +++ b/drivers/mfd/88pm800.c >> @@ -27,6 +27,7 @@ >> #include >> #include >> #include >> +#include >> >> /* Interrupt Registers */ >> #define PM800_INT_STATUS1 (0x05) >> @@ -121,6 +122,11 @@ static const struct i2c_device_id pm80x_id_table[] = { >> }; >> MODULE_DEVICE_TABLE(i2c, pm80x_id_table); >> >> +static const struct of_device_id pm80x_of_match_table[] = { >> + { .compatible = "marvell,88pm800", }, >> + {}, >> +}; >> + >> static struct resource rtc_resources[] = { >> { >> .name = "88pm80x-rtc", >> @@ -133,6 +139,7 @@ static struct resource rtc_resources[] = { >> static struct mfd_cell rtc_devs[] = { >> { >> .name = "88pm80x-rtc", >> + .of_compatible = "marvell,88pm80x-rtc", >> .num_resources = ARRAY_SIZE(rtc_resources), >> .resources = &rtc_resources[0], >> .id = -1, >> @@ -151,6 +158,7 @@ static struct resource onkey_resources[] = { >> static const struct mfd_cell onkey_devs[] = { >> { >> .name = "88pm80x-onkey", >> + .of_compatible = "marvell,88pm80x-onkey", >> .num_resources = 1, >> .resources = &onkey_resources[0], >> .id = -1, >> @@ -160,6 +168,7 @@ static const struct mfd_cell onkey_devs[] = { >> static const struct mfd_cell regulator_devs[] = { >> { >> .name = "88pm80x-regulator", >> + .of_compatible = "marvell,88pm80x-regulator", >> .id = -1, >> }, >> }; >> @@ -544,8 +553,23 @@ static int pm800_probe(struct i2c_client *client, >> int ret = 0; >> struct pm80x_chip *chip; >> struct pm80x_platform_data *pdata = dev_get_platdata(&client->dev); >> + struct device_node *np = client->dev.of_node; >> struct pm80x_subchip *subchip; >> >> + if (!pdata && !np) { >> + dev_err(&client->dev, >> + "pm80x requires platform data or of_node\n"); >> + return -EINVAL; >> + } >> + >> + if (!pdata) { >> + pdata = devm_kzalloc(&client->dev, sizeof(*pdata), GFP_KERNEL); >> + if (!pdata) { >> + dev_err(&client->dev, "failed to allocaate memory\n"); > > Generic error message for ENOMEM is not needed. Just return ENOMEM and > the core code will print the error. > > Rest looks fine, Ok, will remove it. Should I add your reviewed-by in V4 for this patch? Thanks, Vaibhav