Hi, On 16/05/2015 at 00:35:30 +0200, Philippe Reynes wrote : > Please always include a commit message. > Signed-off-by: Philippe Reynes <tremyfr@xxxxxxxxx> > --- > Documentation/devicetree/bindings/rtc/rtc-mxc.txt | 27 +++++++++++++++++++++ > drivers/rtc/rtc-mxc.c | 22 ++++++++++++++++- > 2 files changed, 48 insertions(+), 1 deletions(-) > create mode 100644 Documentation/devicetree/bindings/rtc/rtc-mxc.txt > > diff --git a/Documentation/devicetree/bindings/rtc/rtc-mxc.txt b/Documentation/devicetree/bindings/rtc/rtc-mxc.txt > new file mode 100644 > index 0000000..5505493 > --- /dev/null > +++ b/Documentation/devicetree/bindings/rtc/rtc-mxc.txt > @@ -0,0 +1,27 @@ > +* Real Time Clock of the i.MX SoCs > + > +RTC controller for the i.MX SoCs > + > +Required properties: > +- compatible: Should be "fsl,imx1-rtc" or "fsl,imx21-rtc". > +- reg: physical base address of the controller and length of memory mapped > + region. > +- interrupts: IRQ line for the RTC. > +- clocks: should contain two entries: > + * one for the input reference > + * one for the the SoC RTC > +- clock-names: should contain: > + * "rtc" for the input reference clock > + * "ipg" for the SoC RTC clock > + > +Example: > + > +rtc@10007000 { > + compatible = "fsl,imx21-rtc"; > + reg = <0x10007000 0x1000>; > + interrupts = <22>; > + clocks = <&clks IMX27_CLK_CKIL>, > + <&clks IMX27_CLK_RTC_IPG_GATE>; > + clock-names = "rtc, "ipg"; > + status = "disabled"; > +}; > diff --git a/drivers/rtc/rtc-mxc.c b/drivers/rtc/rtc-mxc.c > index e916a91..df6483d 100644 > --- a/drivers/rtc/rtc-mxc.c > +++ b/drivers/rtc/rtc-mxc.c > @@ -16,6 +16,8 @@ > #include <linux/interrupt.h> > #include <linux/platform_device.h> > #include <linux/clk.h> > +#include <linux/of.h> > +#include <linux/of_device.h> > > #define RTC_INPUT_CLK_32768HZ (0x00 << 5) > #define RTC_INPUT_CLK_32000HZ (0x01 << 5) > @@ -98,6 +100,15 @@ static struct platform_device_id imx_rtc_devtype[] = { > }; > MODULE_DEVICE_TABLE(platform, imx_rtc_devtype); > > +#ifdef CONFIG_OF > +static const struct of_device_id imx_rtc_dt_ids[] = { > + { .compatible = "fsl,imx1-rtc", .data = &imx_rtc_devtype[IMX1_RTC] }, > + { .compatible = "fsl,imx21-rtc", .data = &imx_rtc_devtype[IMX21_RTC] }, Maybe you can use directly IMX1_RTC and IMX21_RTC which... > > - pdata->devtype = pdev->id_entry->driver_data; > + of_id = of_match_device(imx_rtc_dt_ids, &pdev->dev); > + if (of_id) { > + struct platform_device_id *id_entry; > + > + id_entry = (struct platform_device_id *)of_id->data; > + pdata->devtype = id_entry->driver_data; ... also simplifies that part. > + } else > + pdata->devtype = pdev->id_entry->driver_data; > -- Alexandre Belloni, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html