[PATCH 1/2] drivers: pwm: pwm-atmel: add support for pwm on sama5d2
Alexandre Belloni
alexandre.belloni at free-electrons.com
Thu Feb 23 01:16:07 PST 2017
On 23/02/2017 at 10:38:39 +0200, Claudiu Beznea wrote:
> Enable PWM on sama5d2 by adding atmel_pwm_config_v3().
> This, simply, sets the period and duty factor registers.
>
> Signed-off-by: Claudiu Beznea <claudiu.beznea at microchip.com>
Acked-by: Alexandre Belloni <alexandre.belloni at free-electrons.com>
> ---
> Documentation/devicetree/bindings/pwm/atmel-pwm.txt | 1 +
> drivers/pwm/pwm-atmel.c | 16 ++++++++++++++++
> 2 files changed, 17 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/pwm/atmel-pwm.txt b/Documentation/devicetree/bindings/pwm/atmel-pwm.txt
> index 02331b9..c8c831d 100644
> --- a/Documentation/devicetree/bindings/pwm/atmel-pwm.txt
> +++ b/Documentation/devicetree/bindings/pwm/atmel-pwm.txt
> @@ -4,6 +4,7 @@ Required properties:
> - compatible: should be one of:
> - "atmel,at91sam9rl-pwm"
> - "atmel,sama5d3-pwm"
> + - "atmel,sama5d2-pwm"
> - reg: physical base address and length of the controller's registers
> - #pwm-cells: Should be 3. See pwm.txt in this directory for a
> description of the cells format.
> diff --git a/drivers/pwm/pwm-atmel.c b/drivers/pwm/pwm-atmel.c
> index 0e4bd4e..4406639 100644
> --- a/drivers/pwm/pwm-atmel.c
> +++ b/drivers/pwm/pwm-atmel.c
> @@ -207,6 +207,15 @@ static void atmel_pwm_config_v2(struct pwm_chip *chip, struct pwm_device *pwm,
> }
> }
>
> +static void atmel_pwm_config_v3(struct pwm_chip *chip, struct pwm_device *pwm,
> + unsigned long dty, unsigned long prd)
> +{
> + struct atmel_pwm_chip *atmel_pwm = to_atmel_pwm_chip(chip);
> +
> + atmel_pwm_ch_writel(atmel_pwm, pwm->hwpwm, PWMV2_CDTY, dty);
> + atmel_pwm_ch_writel(atmel_pwm, pwm->hwpwm, PWMV2_CPRD, prd);
> +}
> +
> static int atmel_pwm_set_polarity(struct pwm_chip *chip, struct pwm_device *pwm,
> enum pwm_polarity polarity)
> {
> @@ -295,6 +304,10 @@ static const struct atmel_pwm_data atmel_pwm_data_v2 = {
> .config = atmel_pwm_config_v2,
> };
>
> +static const struct atmel_pwm_data atmel_pwm_data_v3 = {
> + .config = atmel_pwm_config_v3,
> +};
> +
> static const struct platform_device_id atmel_pwm_devtypes[] = {
> {
> .name = "at91sam9rl-pwm",
> @@ -316,6 +329,9 @@ static const struct of_device_id atmel_pwm_dt_ids[] = {
> .compatible = "atmel,sama5d3-pwm",
> .data = &atmel_pwm_data_v2,
> }, {
> + .compatible = "atmel,sama5d2-pwm",
> + .data = &atmel_pwm_data_v3,
> + }, {
> /* sentinel */
> },
> };
> --
> 2.7.4
>
--
Alexandre Belloni, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
More information about the linux-arm-kernel
mailing list