Subject: [PATCH] pwm: pxa: add device tree support to pwm driver

From: [email-masked] (Mike Dunn)
Date: Wed, 04 Sep 2013 07:23:26 -0700

On 09/03/2013 03:20 PM, Marek Vasut wrote:

[...]

>>
>> +#ifdef CONFIG_OF
>> +/* use the platform_device id table for OF match table data */
>> +static struct of_device_id pwm_of_match[] = {
>> +	{ .compatible = "marvell,pxa25x-pwm", .data = &pwm_id_table[0] },
>> +	{ .compatible = "marvell,pxa27x-pwm", .data = &pwm_id_table[1] },
>> +	{ .compatible = "marvell,pxa168-pwm", .data = &pwm_id_table[2] },
>> +	{ .compatible = "marvell,pxa910-pwm", .data = &pwm_id_table[3] },
>> +	{ }
>> +};
>> +MODULE_DEVICE_TABLE(of, pwm_of_match);
> 
> Are PXA2xx and PXA3xx PWM impleemntations not all the same ? If so, why not just 
> stick with pxa25x-pwm only for all of the CPUs (aka. the lowest CPU model). Then 
> the table would have but a single entry.

I'm just echoing the existing platform_device_id table...

static const struct platform_device_id pwm_id_table[] = {
	/*   PWM    has_secondary_pwm? */
	{ "pxa25x-pwm", 0 },
	{ "pxa27x-pwm", HAS_SECONDARY_PWM },
	{ "pxa168-pwm", 0 },
	{ "pxa910-pwm", 0 },
	{ },
};
MODULE_DEVICE_TABLE(platform, pwm_id_table);

... so that my changes to the driver are minimal.  Yes, apparently the only
difference is the existance of a "secondary" pwm for pxa27x.

BTW, the pxa27x actually has four pwms, which is why the addition I made to
pxa27x.dtsi has two nodes (the driver handles two pwms for each device instance
in the pxa27x case).

Thanks Marek.

Mike