[PATCH 3/4] rtc: omap: add rtc wakeup support to alarm events

Hebbar, Gururaja gururaja.hebbar at ti.com
Wed Jul 3 14:56:59 EST 2013


Below is the code snippet I was referring to





From drivers/rtc/rtc-omap.c



static struct platform_device_id omap_rtc_devtype[] = {

      {

            .name = DRIVER_NAME,

      },

      [OMAP_RTC_DATA_AM3352_IDX] = {

            .name = "am3352-rtc",

            .driver_data = OMAP_RTC_HAS_KICKER | OMAP_RTC_HAS_IRQWAKEEN,

      },

      [OMAP_RTC_DATA_DA830_IDX] = {

            .name = "da830-rtc",

            .driver_data = OMAP_RTC_HAS_KICKER,

     },

      {},

};

MODULE_DEVICE_TABLE(platform, omap_rtc_devtype);



static const struct of_device_id omap_rtc_of_match[] = {

      {     .compatible = "ti,da830-rtc",

            .data       = &omap_rtc_devtype[OMAP_RTC_DATA_DA830_IDX],

      },

      {     .compatible = "ti,am3352-rtc",

            .data       = &omap_rtc_devtype[OMAP_RTC_DATA_AM3352_IDX],

      },

      {},

};

MODULE_DEVICE_TABLE(of, omap_rtc_of_match);





From arch/arm/boot/dts/am33xx.dtsi



            rtc at 44e3e000 {

                  compatible = "ti,da830-rtc", "ti,am3352-rtc";

                  reg = <0x44e3e000 0x1000>;

                  interrupts = <75

                              76>;

                  ti,hwmods = "rtc";

            };





As seen from above snippet, 2 compatible items are specified for compatible dt property (ti,da830-rtc" & "ti,am3352-rtc”)

These are the same compatibles that are mentioned in the of_device_id structure inside rtc-omap driver.



What I observed is, if we mention both compatible in the .dtsi file that are under one single of_device_id structure, the first match from the of_device_id structure is considered (ti,da830-rtc in above case)



To confirm, I switched the 2 compatible inside of_device_id structure as below





static const struct of_device_id omap_rtc_of_match[] = {

      {     .compatible = "ti,am3352-rtc",

            .data       = &omap_rtc_devtype[OMAP_RTC_DATA_AM3352_IDX],

      },

      {     .compatible = "ti,da830-rtc",

            .data       = &omap_rtc_devtype[OMAP_RTC_DATA_DA830_IDX],

      },

      {},

};



In this case, the first match from compatible field was chosen (ti,am3352-rtc now).





Hope this is clear.



Kindly let me know when you are free to discuss.





Regards

Gururaja



> -----Original Message-----

> From: Nori, Sekhar

> Sent: Tuesday, July 02, 2013 11:47 AM

> To: Hebbar, Gururaja

> Cc: khilman at linaro.org; tony at atomide.com; Cousson, Benoit; linux-

> omap at vger.kernel.org; devicetree-discuss at lists.ozlabs.org; linux-

> kernel at vger.kernel.org; linux-arm-kernel at lists.infradead.org;

> davinci-linux-open-source at linux.davincidsp.com; Bedia, Vaibhav;

> Rajashekhara, Sudhakar; Grant Likely; Rob Herring; Rob Landley;

> Alessandro Zummo; rtc-linux at googlegroups.com; linux-

> doc at vger.kernel.org

> Subject: Re: [PATCH 3/4] rtc: omap: add rtc wakeup support to

> alarm events

>

>

>

> On 7/2/2013 11:41 AM, Hebbar, Gururaja wrote:

> > On Tue, Jul 02, 2013 at 11:39:28, Nori, Sekhar wrote:

> >> On 7/2/2013 11:34 AM, Hebbar, Gururaja wrote:

> >>> On Tue, Jul 02, 2013 at 11:32:34, Nori, Sekhar wrote:

> >>>> On 6/28/2013 3:05 PM, Hebbar Gururaja wrote:

> >>>>> On some platforms (like AM33xx), a special register

> (RTC_IRQWAKEEN)

> >>>>> is available to enable Alarm Wakeup feature. This register

> needs to be

> >>>>> properly handled for the rtcwake to work properly.

> >>>>>

> >>>>> Platforms using such IP should set "ti,am3352-rtc" in rtc

> device dt

> >>>>> compatibility node.

> >>>>>

> >>>>> Signed-off-by: Hebbar Gururaja <gururaja.hebbar at ti.com<mailto:gururaja.hebbar at ti.com>>

> >>>>> Cc: Grant Likely <grant.likely at linaro.org<mailto:grant.likely at linaro.org>>

> >>>>> Cc: Rob Herring <rob.herring at calxeda.com<mailto:rob.herring at calxeda.com>>

> >>>>> Cc: Rob Landley <rob at landley.net<mailto:rob at landley.net>>

> >>>>> Cc: Sekhar Nori <nsekhar at ti.com<mailto:nsekhar at ti.com>>

> >>>>> Cc: Kevin Hilman <khilman at linaro.org<mailto:khilman at linaro.org>>

> >>>>> Cc: Alessandro Zummo <a.zummo at towertech.it<mailto:a.zummo at towertech.it>>

> >>>>> Cc: rtc-linux at googlegroups.com<mailto:rtc-linux at googlegroups.com>

> >>>>> Cc: devicetree-discuss at lists.ozlabs.org<mailto:devicetree-discuss at lists.ozlabs.org>

> >>>>> Cc: linux-doc at vger.kernel.org<mailto:linux-doc at vger.kernel.org>

> >>>>> ---

> >>>>

> >>>> [...]

> >>>>

> >>>>> -#define  OMAP_RTC_DATA_DA830_IDX 1

> >>>>> +#define  OMAP_RTC_DATA_DA830_IDX       1

> >>>>> +#define  OMAP_RTC_DATA_AM335X_IDX      2

> >>>>>

> >>>>>  static struct platform_device_id omap_rtc_devtype[] = {

> >>>>>     {

> >>>>> @@ -309,6 +321,9 @@ static struct platform_device_id

> omap_rtc_devtype[] = {

> >>>>>     }, {

> >>>>>           .name = "da830-rtc",

> >>>>>           .driver_data = OMAP_RTC_HAS_KICKER,

> >>>>> +   }, {

> >>>>> +         .name = "am335x-rtc",

> >>>>

> >>>> may be use am3352-rtc here just to keep the platform device

> name and of

> >>>> compatible in sync.

> >>>

> >>> Correct. I will update the same in v2.

> >>>

> >>>>

> >>>>> +         .driver_data = OMAP_RTC_HAS_KICKER |

> OMAP_RTC_HAS_IRQWAKEEN,

> >>>>>     },

> >>>>>     {},

> >>>>

> >>>> It is better to use the index defined above in the static

> initialization

> >>>> so they remain in sync.

> >>>

> >>> Sorry. I didn’t get this.

> >>>

> >>

> >> See example below I provided. If its still not clear, let me

> know what

> >> is not clear.

> >>

> >>>>      ...

> >>>>      [OMAP_RTC_DATA_DA830_IDX] = {

> >>>>            .name = "da830-rtc",

> >>>>            .driver_data = OMAP_RTC_HAS_KICKER,

> >>>>      },

> >

> > Thanks for the clarification. In this case will it ok if I

> update the previous

> > member also.

>

> You dont really reference [0] in omap_rtc_of_match[] so even if

> you

> leave it as-is, that's fine with me. I am mostly concerned with

> the

> index definitions and initialization order being out of sync and

> that's

> really not an issue with [0].

>

> Thanks,

> Sekhar
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/devicetree-discuss/attachments/20130703/e552cdd4/attachment-0001.html>


More information about the devicetree-discuss mailing list