[i2c] [PATCH 04/05] i2c-sh_mobile: IORESOURCE_CLK support
Magnus Damm
magnus.damm at gmail.com
Fri Jul 18 11:18:06 CEST 2008
On Fri, Jul 18, 2008 at 5:04 PM, Ben Dooks <ben-linux at fluff.org> wrote:
> On Fri, Jul 18, 2008 at 04:40:36PM +0900, Magnus Damm wrote:
>> From: Magnus Damm <damm at igel.co.jp>
>>
>> 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 at igel.co.jp>
>> ---
>>
>> 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
More information about the i2c
mailing list