|
29 | 29 | #define PWM45DWIDTH_FIXUP 0x30
|
30 | 30 | #define PWMTHRES 0x30
|
31 | 31 | #define PWM45THRES_FIXUP 0x34
|
| 32 | +#define PWM_CK_26M_SEL_V3 0x74 |
32 | 33 | #define PWM_CK_26M_SEL 0x210
|
33 | 34 |
|
34 | 35 | #define PWM_CLK_DIV_MAX 7
|
@@ -64,6 +65,11 @@ static const unsigned int mtk_pwm_reg_offset_v2[] = {
|
64 | 65 | 0x0080, 0x00c0, 0x0100, 0x0140, 0x0180, 0x01c0, 0x0200, 0x0240
|
65 | 66 | };
|
66 | 67 |
|
| 68 | +/* PWM IP Version 3.0.2 */ |
| 69 | +static const unsigned int mtk_pwm_reg_offset_v3[] = { |
| 70 | + 0x0100, 0x0200, 0x0300, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800 |
| 71 | +}; |
| 72 | + |
67 | 73 | static inline struct pwm_mediatek_chip *
|
68 | 74 | to_pwm_mediatek_chip(struct pwm_chip *chip)
|
69 | 75 | {
|
@@ -369,9 +375,17 @@ static const struct pwm_mediatek_of_data mt8516_pwm_data = {
|
369 | 375 | .reg_offset = mtk_pwm_reg_offset_v1,
|
370 | 376 | };
|
371 | 377 |
|
| 378 | +static const struct pwm_mediatek_of_data mt6991_pwm_data = { |
| 379 | + .num_pwms = 4, |
| 380 | + .pwm45_fixup = false, |
| 381 | + .pwm_ck_26m_sel_reg = PWM_CK_26M_SEL_V3, |
| 382 | + .reg_offset = mtk_pwm_reg_offset_v3, |
| 383 | +}; |
| 384 | + |
372 | 385 | static const struct of_device_id pwm_mediatek_of_match[] = {
|
373 | 386 | { .compatible = "mediatek,mt2712-pwm", .data = &mt2712_pwm_data },
|
374 | 387 | { .compatible = "mediatek,mt6795-pwm", .data = &mt6795_pwm_data },
|
| 388 | + { .compatible = "mediatek,mt6991-pwm", .data = &mt6991_pwm_data }, |
375 | 389 | { .compatible = "mediatek,mt7622-pwm", .data = &mt7622_pwm_data },
|
376 | 390 | { .compatible = "mediatek,mt7623-pwm", .data = &mt7623_pwm_data },
|
377 | 391 | { .compatible = "mediatek,mt7628-pwm", .data = &mt7628_pwm_data },
|
|
0 commit comments