Lines Matching +full:imx1 +full:- +full:clock

1 // SPDX-License-Identifier: GPL-2.0
43 ret = clk_prepare_enable(imx->clk_ipg); in pwm_imx1_clk_prepare_enable()
47 ret = clk_prepare_enable(imx->clk_per); in pwm_imx1_clk_prepare_enable()
49 clk_disable_unprepare(imx->clk_ipg); in pwm_imx1_clk_prepare_enable()
60 clk_disable_unprepare(imx->clk_per); in pwm_imx1_clk_disable_unprepare()
61 clk_disable_unprepare(imx->clk_ipg); in pwm_imx1_clk_disable_unprepare()
75 * Bootloader (u-boot or WinCE+haret) has programmed the PWM in pwm_imx1_config()
87 max = readl(imx->mmio_base + MX1_PWMP); in pwm_imx1_config()
90 writel(max - p, imx->mmio_base + MX1_PWMS); in pwm_imx1_config()
105 value = readl(imx->mmio_base + MX1_PWMC); in pwm_imx1_enable()
107 writel(value, imx->mmio_base + MX1_PWMC); in pwm_imx1_enable()
117 value = readl(imx->mmio_base + MX1_PWMC); in pwm_imx1_disable()
119 writel(value, imx->mmio_base + MX1_PWMC); in pwm_imx1_disable()
129 if (state->polarity != PWM_POLARITY_NORMAL) in pwm_imx1_apply()
130 return -EINVAL; in pwm_imx1_apply()
132 if (!state->enabled) { in pwm_imx1_apply()
133 if (pwm->state.enabled) in pwm_imx1_apply()
139 err = pwm_imx1_config(chip, pwm, state->duty_cycle, state->period); in pwm_imx1_apply()
143 if (!pwm->state.enabled) in pwm_imx1_apply()
154 { .compatible = "fsl,imx1-pwm", },
164 chip = devm_pwmchip_alloc(&pdev->dev, 1, sizeof(*imx)); in pwm_imx1_probe()
169 imx->clk_ipg = devm_clk_get(&pdev->dev, "ipg"); in pwm_imx1_probe()
170 if (IS_ERR(imx->clk_ipg)) in pwm_imx1_probe()
171 return dev_err_probe(&pdev->dev, PTR_ERR(imx->clk_ipg), in pwm_imx1_probe()
172 "getting ipg clock failed\n"); in pwm_imx1_probe()
174 imx->clk_per = devm_clk_get(&pdev->dev, "per"); in pwm_imx1_probe()
175 if (IS_ERR(imx->clk_per)) in pwm_imx1_probe()
176 return dev_err_probe(&pdev->dev, PTR_ERR(imx->clk_per), in pwm_imx1_probe()
177 "failed to get peripheral clock\n"); in pwm_imx1_probe()
179 chip->ops = &pwm_imx1_ops; in pwm_imx1_probe()
181 imx->mmio_base = devm_platform_ioremap_resource(pdev, 0); in pwm_imx1_probe()
182 if (IS_ERR(imx->mmio_base)) in pwm_imx1_probe()
183 return PTR_ERR(imx->mmio_base); in pwm_imx1_probe()
185 return devm_pwmchip_add(&pdev->dev, chip); in pwm_imx1_probe()
190 .name = "pwm-imx1",