summaryrefslogtreecommitdiffstats
path: root/drivers/pwm/pwm-mediatek.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pwm/pwm-mediatek.c')
-rw-r--r--drivers/pwm/pwm-mediatek.c14
1 files changed, 1 insertions, 13 deletions
diff --git a/drivers/pwm/pwm-mediatek.c b/drivers/pwm/pwm-mediatek.c
index 459b2ccd0b75..9394735b0762 100644
--- a/drivers/pwm/pwm-mediatek.c
+++ b/drivers/pwm/pwm-mediatek.c
@@ -57,7 +57,6 @@ static const char * const mtk_pwm_clk_name[MTK_CLK_MAX] = {
57struct mtk_pwm_platform_data { 57struct mtk_pwm_platform_data {
58 unsigned int num_pwms; 58 unsigned int num_pwms;
59 bool pwm45_fixup; 59 bool pwm45_fixup;
60 bool has_clks;
61}; 60};
62 61
63/** 62/**
@@ -87,9 +86,6 @@ static int mtk_pwm_clk_enable(struct pwm_chip *chip, struct pwm_device *pwm)
87 struct mtk_pwm_chip *pc = to_mtk_pwm_chip(chip); 86 struct mtk_pwm_chip *pc = to_mtk_pwm_chip(chip);
88 int ret; 87 int ret;
89 88
90 if (!pc->soc->has_clks)
91 return 0;
92
93 ret = clk_prepare_enable(pc->clks[MTK_CLK_TOP]); 89 ret = clk_prepare_enable(pc->clks[MTK_CLK_TOP]);
94 if (ret < 0) 90 if (ret < 0)
95 return ret; 91 return ret;
@@ -116,9 +112,6 @@ static void mtk_pwm_clk_disable(struct pwm_chip *chip, struct pwm_device *pwm)
116{ 112{
117 struct mtk_pwm_chip *pc = to_mtk_pwm_chip(chip); 113 struct mtk_pwm_chip *pc = to_mtk_pwm_chip(chip);
118 114
119 if (!pc->soc->has_clks)
120 return;
121
122 clk_disable_unprepare(pc->clks[MTK_CLK_PWM1 + pwm->hwpwm]); 115 clk_disable_unprepare(pc->clks[MTK_CLK_PWM1 + pwm->hwpwm]);
123 clk_disable_unprepare(pc->clks[MTK_CLK_MAIN]); 116 clk_disable_unprepare(pc->clks[MTK_CLK_MAIN]);
124 clk_disable_unprepare(pc->clks[MTK_CLK_TOP]); 117 clk_disable_unprepare(pc->clks[MTK_CLK_TOP]);
@@ -242,7 +235,7 @@ static int mtk_pwm_probe(struct platform_device *pdev)
242 if (IS_ERR(pc->regs)) 235 if (IS_ERR(pc->regs))
243 return PTR_ERR(pc->regs); 236 return PTR_ERR(pc->regs);
244 237
245 for (i = 0; i < pc->soc->num_pwms + 2 && pc->soc->has_clks; i++) { 238 for (i = 0; i < pc->soc->num_pwms + 2; i++) {
246 pc->clks[i] = devm_clk_get(&pdev->dev, mtk_pwm_clk_name[i]); 239 pc->clks[i] = devm_clk_get(&pdev->dev, mtk_pwm_clk_name[i]);
247 if (IS_ERR(pc->clks[i])) { 240 if (IS_ERR(pc->clks[i])) {
248 dev_err(&pdev->dev, "clock: %s fail: %ld\n", 241 dev_err(&pdev->dev, "clock: %s fail: %ld\n",
@@ -277,31 +270,26 @@ static int mtk_pwm_remove(struct platform_device *pdev)
277static const struct mtk_pwm_platform_data mt2712_pwm_data = { 270static const struct mtk_pwm_platform_data mt2712_pwm_data = {
278 .num_pwms = 8, 271 .num_pwms = 8,
279 .pwm45_fixup = false, 272 .pwm45_fixup = false,
280 .has_clks = true,
281}; 273};
282 274
283static const struct mtk_pwm_platform_data mt7622_pwm_data = { 275static const struct mtk_pwm_platform_data mt7622_pwm_data = {
284 .num_pwms = 6, 276 .num_pwms = 6,
285 .pwm45_fixup = false, 277 .pwm45_fixup = false,
286 .has_clks = true,
287}; 278};
288 279
289static const struct mtk_pwm_platform_data mt7623_pwm_data = { 280static const struct mtk_pwm_platform_data mt7623_pwm_data = {
290 .num_pwms = 5, 281 .num_pwms = 5,
291 .pwm45_fixup = true, 282 .pwm45_fixup = true,
292 .has_clks = true,
293}; 283};
294 284
295static const struct mtk_pwm_platform_data mt7628_pwm_data = { 285static const struct mtk_pwm_platform_data mt7628_pwm_data = {
296 .num_pwms = 4, 286 .num_pwms = 4,
297 .pwm45_fixup = true, 287 .pwm45_fixup = true,
298 .has_clks = false,
299}; 288};
300 289
301static const struct mtk_pwm_platform_data mt8516_pwm_data = { 290static const struct mtk_pwm_platform_data mt8516_pwm_data = {
302 .num_pwms = 5, 291 .num_pwms = 5,
303 .pwm45_fixup = false, 292 .pwm45_fixup = false,
304 .has_clks = true,
305}; 293};
306 294
307static const struct of_device_id mtk_pwm_of_match[] = { 295static const struct of_device_id mtk_pwm_of_match[] = {