Subject: [PATCH v3 11/19] clocksource: sh_mtu2: Add DT support

From: [email-masked] (Sergei Shtylyov)
Date: Sat, 14 Jun 2014 21:00:20 +0400

On 06/14/2014 08:23 PM, Laurent Pinchart wrote:

> Document DT bindings and parse them in the MTU2 driver.

> Signed-off-by: Laurent Pinchart <[email-masked]>
> Tested-by: Wolfram Sang <[email-masked]>
> ---
>   .../devicetree/bindings/timer/renesas,mtu2.txt     | 40 ++++++++++++++++++++++
>   drivers/clocksource/sh_mtu2.c                      |  8 +++++
>   2 files changed, 48 insertions(+)
>   create mode 100644 Documentation/devicetree/bindings/timer/renesas,mtu2.txt

> diff --git a/Documentation/devicetree/bindings/timer/renesas,mtu2.txt b/Documentation/devicetree/bindings/timer/renesas,mtu2.txt
> new file mode 100644
> index 0000000..c5dd032
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/timer/renesas,mtu2.txt
> @@ -0,0 +1,40 @@
> +* Renesas R-Car Multi-Function Timer Pulse Unit 2 (MTU2)
> +
> +The MTU2 is a multi-purpose, multi-channel timer/counter with configurable
> +clock inputs and programmable compare match.
> +
> +Channels share hardware resources but their counter and compare match value
> +are independent. The MTU2 hardware supports five channels indexed from 0 to 4.
> +
> +Required Properties:
> +
> +  - compatible: must contain "renesas,mtu2"
> +
> +  - reg: base address and length of the registers block for the timer module.
> +
> +  - interrupt-parent, interrupts: interrupt specifiers for the timer, one for
> +    each entry in interrupt-names.

    The "interrupt-parent" has never been a required property, it can and 
should be inherited from an upper level node.

[...]

> diff --git a/drivers/clocksource/sh_mtu2.c b/drivers/clocksource/sh_mtu2.c
> index ebdf9d1..79387af 100644
> --- a/drivers/clocksource/sh_mtu2.c
> +++ b/drivers/clocksource/sh_mtu2.c
[...]
> @@ -502,11 +503,18 @@ static const struct platform_device_id sh_mtu2_id_table[] = {
>   };
>   MODULE_DEVICE_TABLE(platform, sh_mtu2_id_table);
>
> +static const struct of_device_id sh_mtu2_of_table[] = {
> +	{ .compatible = "renesas,mtu2" },
> +	{ }
> +};
> +MODULE_DEVICE_TABLE(of, sh_mtu2_of_table);
> +
>   static struct platform_driver sh_mtu2_device_driver = {
>   	.probe		= sh_mtu2_probe,
>   	.remove		= sh_mtu2_remove,
>   	.driver		= {
>   		.name	= "sh_mtu2",
> +		.of_match_table = of_match_ptr(sh_mtu2_of_table),

    No need for of_match_ptr() since the table us not protected by #ifdef 
CONFIG_OF...

WBR, Sergei