[PATCH] gpio: stmpe: Add DT support for stmpe gpio

Viresh Kumar viresh.kumar at linaro.org
Fri Nov 23 21:43:28 EST 2012


On 23 November 2012 16:04, Lee Jones <lee.jones at linaro.org> wrote:
> On Fri, 23 Nov 2012, Viresh Kumar wrote:
>> diff --git a/drivers/gpio/gpio-stmpe.c b/drivers/gpio/gpio-stmpe.c

>>  static int __devinit stmpe_gpio_probe(struct platform_device *pdev)
>>  {

>> -     stmpe_gpio->chip.base = pdata ? pdata->gpio_base : -1;
>
> Why have you deleted this?
>
>> +
>> +     if (pdata) {
>> +             stmpe_gpio->norequest_mask = pdata->norequest_mask;
>> +             stmpe_gpio->chip.base = pdata->gpio_base;
>
> Then added this?
>
>> +     } else {
>> +             stmpe_gpio->chip.base = -1;
>
> And this?

To group all non-DT assignments in a single if block, instead of two.

> Just leave the top line in and it saves you lots of complecations.

Sorry, Couldn't get this one.

>> +             if (np)
>> +                     of_property_read_u32(np, "st,norequest-mask",
>> +                                     &pdata->norequest_mask);
>
> Can you explain to me what this does?

You mean pdata->norequest_mask?  It marks few gpios as unusable.
Because these pads might be used by other blocks of stmpe.

>> diff --git a/drivers/mfd/stmpe.c b/drivers/mfd/stmpe.c

>>  static struct mfd_cell stmpe_gpio_cell = {
>>       .name           = "stmpe-gpio",
>> +     .of_compatible  = "st,stmpe-gpio",
>
> There's no need for any of the STMPE to have their own compatible
> string, as they are MFD devices. They are registered as platform
> devices from the MFD subsystem.

This is required by mfd-core.c, mfd_add_device() isn't it?

	if (parent->of_node && cell->of_compatible) {
		for_each_child_of_node(parent->of_node, np) {
			if (of_device_is_compatible(np, cell->of_compatible)) {
				pdev->dev.of_node = np;
				break;
			}
		}
	}

--
viresh


More information about the devicetree-discuss mailing list