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>
This commit is contained in:
Claudiu Beznea 2019-02-25 16:44:45 +00:00 committed by Thierry Reding
parent 14101cafe9
commit 74d0c3b205

View file

@ -52,6 +52,8 @@
/* Only the LSB 16 bits are significant. */ /* Only the LSB 16 bits are significant. */
#define PWM_MAXV1_PRD 0xFFFF #define PWM_MAXV1_PRD 0xFFFF
/* All 32 bits are significant. */
#define PWM_MAXV2_PRD 0xFFFFFFFF
#define PRD_MAXV1_PRES 10 #define PRD_MAXV1_PRES 10
struct atmel_pwm_registers { 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[] = { static const struct platform_device_id atmel_pwm_devtypes[] = {
{ {
.name = "at91sam9rl-pwm", .name = "at91sam9rl-pwm",
@ -334,6 +350,9 @@ static const struct of_device_id atmel_pwm_dt_ids[] = {
}, { }, {
.compatible = "atmel,sama5d2-pwm", .compatible = "atmel,sama5d2-pwm",
.data = &atmel_sama5_pwm_data, .data = &atmel_sama5_pwm_data,
}, {
.compatible = "microchip,sam9x60-pwm",
.data = &mchp_sam9x60_pwm_data,
}, { }, {
/* sentinel */ /* sentinel */
}, },