Re: [PATCH 04/05] i2c-sh_mobile: IORESOURCE_CLK support

From: Magnus Damm
Date: Fri Jul 18 2008 - 05:18:23 EST


On Fri, Jul 18, 2008 at 5:04 PM, Ben Dooks <ben-linux@xxxxxxxxx> wrote:
> On Fri, Jul 18, 2008 at 04:40:36PM +0900, Magnus Damm wrote:
>> From: Magnus Damm <damm@xxxxxxxxxx>
>>
>> This patch makes the i2c-sh_mobile driver get the clock name from the
>> struct resource with type IORESOURCE_CLK provided by the platform data.
>>
>> Signed-off-by: Magnus Damm <damm@xxxxxxxxxx>
>> ---
>>
>> drivers/i2c/busses/i2c-sh_mobile.c | 8 +++++++-
>> 1 file changed, 7 insertions(+), 1 deletion(-)
>>
>> --- 0001/drivers/i2c/busses/i2c-sh_mobile.c
>> +++ work/drivers/i2c/busses/i2c-sh_mobile.c 2008-07-18 14:56:40.000000000 +0900
>> @@ -390,13 +390,19 @@ static int sh_mobile_i2c_probe(struct pl
>> int size;
>> int ret;
>>
>> + res = platform_get_resource(dev, IORESOURCE_CLK, 0);
>> + if (res == NULL || res->name == NULL) {
>> + dev_err(&dev->dev, "cannot find CLK resource\n");
>> + return -ENOENT;
>> + }
>> +
>> pd = kzalloc(sizeof(struct sh_mobile_i2c_data), GFP_KERNEL);
>> if (pd == NULL) {
>> dev_err(&dev->dev, "cannot allocate private data\n");
>> return -ENOMEM;
>> }
>>
>> - pd->clk = clk_get(&dev->dev, "peripheral_clk");
>
> I think that is working correctly and there isn't really any
> need to change this. The clk_get is supplied the device that
> it needs the clock for, and the name of the clock needed.

Right, we could handle this "under the hood" of the clock frame work
implementation, or we could deal with it together with the rest of the
platform data and have one unique string per hardware block. On SuperH
Mobile we currently have one shared clock implementation that supports
multiple processors. Which clock that is assigned to what hardware
block is currently handled by per-cpu platform data, and that's where
this patch comes in.

Thanks!

/ magnus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/