Skip to content

Commit d4f1e7a

Browse files
AngeloGioacchino Del RegnoUwe Kleine-König
authored andcommitted
pwm: pwm-mediatek: Pass PWM_CK_26M_SEL from platform data
In preparation for adding support for new SoCs, remove variable has_ck_26m_sel from pwm_mediatek_of_data and replace it with a u16 pwm_ck_26m_sel_reg, meant to hold the register offset for PWM_CK_26M_SEL. Also, since the reg offset is guaranteed to never be zero, the logic to check for "has_ck_26m_sel" is changed to check if the register offset in pwm_ck_26m_sel_reg is more than zero. Analogously, when writing, use the register offset from platform data instead of using the PWM_CK_26M_SEL definition. Signed-off-by: AngeloGioacchino Del Regno <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Uwe Kleine-König <[email protected]>
1 parent 3bb9948 commit d4f1e7a

File tree

1 file changed

+9
-15
lines changed

1 file changed

+9
-15
lines changed

drivers/pwm/pwm-mediatek.c

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
struct pwm_mediatek_of_data {
3737
unsigned int num_pwms;
3838
bool pwm45_fixup;
39-
bool has_ck_26m_sel;
39+
u16 pwm_ck_26m_sel_reg;
4040
const unsigned int *reg_offset;
4141
};
4242

@@ -136,8 +136,8 @@ static int pwm_mediatek_config(struct pwm_chip *chip, struct pwm_device *pwm,
136136
}
137137

138138
/* Make sure we use the bus clock and not the 26MHz clock */
139-
if (pc->soc->has_ck_26m_sel)
140-
writel(0, pc->regs + PWM_CK_26M_SEL);
139+
if (pc->soc->pwm_ck_26m_sel_reg)
140+
writel(0, pc->regs + pc->soc->pwm_ck_26m_sel_reg);
141141

142142
/* Using resolution in picosecond gets accuracy higher */
143143
resolution = (u64)NSEC_PER_SEC * 1000;
@@ -294,84 +294,78 @@ static int pwm_mediatek_probe(struct platform_device *pdev)
294294
static const struct pwm_mediatek_of_data mt2712_pwm_data = {
295295
.num_pwms = 8,
296296
.pwm45_fixup = false,
297-
.has_ck_26m_sel = false,
298297
.reg_offset = mtk_pwm_reg_offset_v1,
299298
};
300299

301300
static const struct pwm_mediatek_of_data mt6795_pwm_data = {
302301
.num_pwms = 7,
303302
.pwm45_fixup = false,
304-
.has_ck_26m_sel = false,
305303
.reg_offset = mtk_pwm_reg_offset_v1,
306304
};
307305

308306
static const struct pwm_mediatek_of_data mt7622_pwm_data = {
309307
.num_pwms = 6,
310308
.pwm45_fixup = false,
311-
.has_ck_26m_sel = true,
309+
.pwm_ck_26m_sel_reg = PWM_CK_26M_SEL,
312310
.reg_offset = mtk_pwm_reg_offset_v1,
313311
};
314312

315313
static const struct pwm_mediatek_of_data mt7623_pwm_data = {
316314
.num_pwms = 5,
317315
.pwm45_fixup = true,
318-
.has_ck_26m_sel = false,
319316
.reg_offset = mtk_pwm_reg_offset_v1,
320317
};
321318

322319
static const struct pwm_mediatek_of_data mt7628_pwm_data = {
323320
.num_pwms = 4,
324321
.pwm45_fixup = true,
325-
.has_ck_26m_sel = false,
326322
.reg_offset = mtk_pwm_reg_offset_v1,
327323
};
328324

329325
static const struct pwm_mediatek_of_data mt7629_pwm_data = {
330326
.num_pwms = 1,
331327
.pwm45_fixup = false,
332-
.has_ck_26m_sel = false,
333328
.reg_offset = mtk_pwm_reg_offset_v1,
334329
};
335330

336331
static const struct pwm_mediatek_of_data mt7981_pwm_data = {
337332
.num_pwms = 3,
338333
.pwm45_fixup = false,
339-
.has_ck_26m_sel = true,
334+
.pwm_ck_26m_sel_reg = PWM_CK_26M_SEL,
340335
.reg_offset = mtk_pwm_reg_offset_v2,
341336
};
342337

343338
static const struct pwm_mediatek_of_data mt7986_pwm_data = {
344339
.num_pwms = 2,
345340
.pwm45_fixup = false,
346-
.has_ck_26m_sel = true,
341+
.pwm_ck_26m_sel_reg = PWM_CK_26M_SEL,
347342
.reg_offset = mtk_pwm_reg_offset_v1,
348343
};
349344

350345
static const struct pwm_mediatek_of_data mt7988_pwm_data = {
351346
.num_pwms = 8,
352347
.pwm45_fixup = false,
353-
.has_ck_26m_sel = false,
354348
.reg_offset = mtk_pwm_reg_offset_v2,
355349
};
356350

357351
static const struct pwm_mediatek_of_data mt8183_pwm_data = {
358352
.num_pwms = 4,
359353
.pwm45_fixup = false,
360-
.has_ck_26m_sel = true,
354+
.pwm_ck_26m_sel_reg = PWM_CK_26M_SEL,
361355
.reg_offset = mtk_pwm_reg_offset_v1,
362356
};
363357

364358
static const struct pwm_mediatek_of_data mt8365_pwm_data = {
365359
.num_pwms = 3,
366360
.pwm45_fixup = false,
367-
.has_ck_26m_sel = true,
361+
.pwm_ck_26m_sel_reg = PWM_CK_26M_SEL,
368362
.reg_offset = mtk_pwm_reg_offset_v1,
369363
};
370364

371365
static const struct pwm_mediatek_of_data mt8516_pwm_data = {
372366
.num_pwms = 5,
373367
.pwm45_fixup = false,
374-
.has_ck_26m_sel = true,
368+
.pwm_ck_26m_sel_reg = PWM_CK_26M_SEL,
375369
.reg_offset = mtk_pwm_reg_offset_v1,
376370
};
377371

0 commit comments

Comments
 (0)