pwm: atmel: Add support for SAM9X60's PWM controller
authorClaudiu Beznea <claudiu.beznea@microchip.com>
Mon, 25 Feb 2019 16:44:45 +0000 (16:44 +0000)
committerThierry Reding <thierry.reding@gmail.com>
Mon, 4 Mar 2019 10:57:44 +0000 (11:57 +0100)
Add support for SAM9X60's PWM controller.

Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
drivers/pwm/pwm-atmel.c

index 4ac899d..b1473ed 100644 (file)
@@ -52,6 +52,8 @@
 
 /* Only the LSB 16 bits are significant. */
 #define PWM_MAXV1_PRD          0xFFFF
+/* All 32 bits are significant. */
+#define PWM_MAXV2_PRD          0xFFFFFFFF
 #define PRD_MAXV1_PRES         10
 
 struct atmel_pwm_registers {
@@ -311,6 +313,20 @@ static const struct atmel_pwm_data atmel_sama5_pwm_data = {
        },
 };
 
+static const struct atmel_pwm_data mchp_sam9x60_pwm_data = {
+       .regs = {
+               .period         = PWMV1_CPRD,
+               .period_upd     = PWMV1_CUPD,
+               .duty           = PWMV1_CDTY,
+               .duty_upd       = PWMV1_CUPD,
+       },
+       .cfg = {
+               /* 32 bits to keep period and duty. */
+               .max_period     = PWM_MAXV2_PRD,
+               .max_pres       = PRD_MAXV1_PRES,
+       },
+};
+
 static const struct platform_device_id atmel_pwm_devtypes[] = {
        {
                .name = "at91sam9rl-pwm",
@@ -335,6 +351,9 @@ static const struct of_device_id atmel_pwm_dt_ids[] = {
                .compatible = "atmel,sama5d2-pwm",
                .data = &atmel_sama5_pwm_data,
        }, {
+               .compatible = "microchip,sam9x60-pwm",
+               .data = &mchp_sam9x60_pwm_data,
+       }, {
                /* sentinel */
        },
 };