[RFC PATCH 03/11] arm: omap: device: create a device for system control module
Konstantin Baydarov
kbaidarov at dev.rtsoft.ru
Thu Jun 14 09:50:19 EDT 2012
Hi.
On 05/29/2012 01:44 PM, Eduardo Valentin wrote:
> On Fri, May 25, 2012 at 02:30:44PM +0200, Cousson Benoit wrote:
>> On 5/25/2012 10:25 AM, Eduardo Valentin wrote:
>>> From: Kishon Vijay Abraham I<kishon at ti.com>
>>>
>>> Extracts the device data from hwmod database and create a platform device
>>> using omap device build.
>>>
>>> The device build is done during postcore_initcall.
>> Do you still need that since you are supporting only DT?
>> The device will be built automatically in the DT case.
> In fact this is not needed for DT only probing. Dropping this one.
Yes, platform device(struct platform_device) will be built automatically, but omap device(struct omap_device) will not be built.
Also when omap device is allocated(omap_device_alloc) hwmod_clocks are registered, but in case of ctrl_module_core device - no new clock are registered.
So, is it fine to drop omap device and skip omap_device_build() call?
BR,
Konstantin Baydarov.
>
>> Regards,
>> Benoit
>>
>>> Signed-off-by: Kishon Vijay Abraham I<kishon at ti.com>
>>> Signed-off-by: Eduardo Valentin<eduardo.valentin at ti.com>
>>> ---
>>> arch/arm/mach-omap2/devices.c | 26 ++++++++++++++++++++++++++
>>> 1 files changed, 26 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
>>> index 152c266..9332673 100644
>>> --- a/arch/arm/mach-omap2/devices.c
>>> +++ b/arch/arm/mach-omap2/devices.c
>>> @@ -40,6 +40,32 @@
>>> #define L3_MODULES_MAX_LEN 12
>>> #define L3_MODULES 3
>>>
>>> +static int omap_init_control(void)
>>> +{
>>> + struct omap_hwmod *oh;
>>> + struct platform_device *pdev;
>>> + const char *oh_name, *name;
>>> +
>>> + oh_name = "ctrl_module_core";
>>> + name = "omap-control-core";
>>> +
>>> + oh = omap_hwmod_lookup(oh_name);
>>> + if (!oh) {
>>> + pr_err("Could not lookup hwmod for %s\n", oh_name);
>>> + return PTR_ERR(oh);
>>> + }
>>> +
>>> + pdev = omap_device_build(name, -1, oh, NULL, 0, NULL, 0, true);
>>> + if (IS_ERR(pdev)) {
>>> + pr_err("Could not build omap_device for %s %s\n",
>>> + name, oh_name);
>>> + return PTR_ERR(pdev);
>>> + }
>>> +
>>> + return 0;
>>> +}
>>> +postcore_initcall(omap_init_control);
>>> +
>>> static int __init omap3_l3_init(void)
>>> {
>>> struct omap_hwmod *oh;
More information about the linux-arm-kernel
mailing list