diff options
| author | Claudiu Beznea <claudiu.beznea@microchip.com> | 2019-02-25 11:44:45 -0500 |
|---|---|---|
| committer | Thierry Reding <thierry.reding@gmail.com> | 2019-03-04 05:57:44 -0500 |
| commit | 74d0c3b2050927f364e3320091f234c108bd845d (patch) | |
| tree | b66ab061712ec8b2907cc36ffdcfb141421df2f5 /drivers/pwm/pwm-atmel.c | |
| parent | 14101cafe96666f7b2f22712887a405694594cd8 (diff) | |
pwm: atmel: Add support for SAM9X60's PWM controller
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>
Diffstat (limited to 'drivers/pwm/pwm-atmel.c')
| -rw-r--r-- | drivers/pwm/pwm-atmel.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/pwm/pwm-atmel.c b/drivers/pwm/pwm-atmel.c index 4ac899d8008c..b1473ed55110 100644 --- a/drivers/pwm/pwm-atmel.c +++ b/drivers/pwm/pwm-atmel.c | |||
| @@ -52,6 +52,8 @@ | |||
| 52 | 52 | ||
| 53 | /* Only the LSB 16 bits are significant. */ | 53 | /* Only the LSB 16 bits are significant. */ |
| 54 | #define PWM_MAXV1_PRD 0xFFFF | 54 | #define PWM_MAXV1_PRD 0xFFFF |
| 55 | /* All 32 bits are significant. */ | ||
| 56 | #define PWM_MAXV2_PRD 0xFFFFFFFF | ||
| 55 | #define PRD_MAXV1_PRES 10 | 57 | #define PRD_MAXV1_PRES 10 |
| 56 | 58 | ||
| 57 | struct atmel_pwm_registers { | 59 | struct atmel_pwm_registers { |
| @@ -311,6 +313,20 @@ static const struct atmel_pwm_data atmel_sama5_pwm_data = { | |||
| 311 | }, | 313 | }, |
| 312 | }; | 314 | }; |
| 313 | 315 | ||
| 316 | static const struct atmel_pwm_data mchp_sam9x60_pwm_data = { | ||
| 317 | .regs = { | ||
| 318 | .period = PWMV1_CPRD, | ||
| 319 | .period_upd = PWMV1_CUPD, | ||
| 320 | .duty = PWMV1_CDTY, | ||
| 321 | .duty_upd = PWMV1_CUPD, | ||
| 322 | }, | ||
| 323 | .cfg = { | ||
| 324 | /* 32 bits to keep period and duty. */ | ||
| 325 | .max_period = PWM_MAXV2_PRD, | ||
| 326 | .max_pres = PRD_MAXV1_PRES, | ||
| 327 | }, | ||
| 328 | }; | ||
| 329 | |||
| 314 | static const struct platform_device_id atmel_pwm_devtypes[] = { | 330 | static const struct platform_device_id atmel_pwm_devtypes[] = { |
| 315 | { | 331 | { |
| 316 | .name = "at91sam9rl-pwm", | 332 | .name = "at91sam9rl-pwm", |
| @@ -335,6 +351,9 @@ static const struct of_device_id atmel_pwm_dt_ids[] = { | |||
| 335 | .compatible = "atmel,sama5d2-pwm", | 351 | .compatible = "atmel,sama5d2-pwm", |
| 336 | .data = &atmel_sama5_pwm_data, | 352 | .data = &atmel_sama5_pwm_data, |
| 337 | }, { | 353 | }, { |
| 354 | .compatible = "microchip,sam9x60-pwm", | ||
| 355 | .data = &mchp_sam9x60_pwm_data, | ||
| 356 | }, { | ||
| 338 | /* sentinel */ | 357 | /* sentinel */ |
| 339 | }, | 358 | }, |
| 340 | }; | 359 | }; |
