zpc 41 drivers/pwm/pwm-zx.c static inline u32 zx_pwm_readl(struct zx_pwm_chip *zpc, unsigned int hwpwm, zpc 44 drivers/pwm/pwm-zx.c return readl(zpc->base + (hwpwm + 1) * 0x10 + offset); zpc 47 drivers/pwm/pwm-zx.c static inline void zx_pwm_writel(struct zx_pwm_chip *zpc, unsigned int hwpwm, zpc 50 drivers/pwm/pwm-zx.c writel(value, zpc->base + (hwpwm + 1) * 0x10 + offset); zpc 53 drivers/pwm/pwm-zx.c static void zx_pwm_set_mask(struct zx_pwm_chip *zpc, unsigned int hwpwm, zpc 58 drivers/pwm/pwm-zx.c data = zx_pwm_readl(zpc, hwpwm, offset); zpc 61 drivers/pwm/pwm-zx.c zx_pwm_writel(zpc, hwpwm, offset, data); zpc 67 drivers/pwm/pwm-zx.c struct zx_pwm_chip *zpc = to_zx_pwm_chip(chip); zpc 73 drivers/pwm/pwm-zx.c value = zx_pwm_readl(zpc, pwm->hwpwm, ZX_PWM_MODE); zpc 86 drivers/pwm/pwm-zx.c rate = clk_get_rate(zpc->wclk); zpc 88 drivers/pwm/pwm-zx.c tmp = zx_pwm_readl(zpc, pwm->hwpwm, ZX_PWM_PERIOD); zpc 92 drivers/pwm/pwm-zx.c tmp = zx_pwm_readl(zpc, pwm->hwpwm, ZX_PWM_DUTY); zpc 100 drivers/pwm/pwm-zx.c struct zx_pwm_chip *zpc = to_zx_pwm_chip(chip); zpc 107 drivers/pwm/pwm-zx.c rate = clk_get_rate(zpc->wclk); zpc 134 drivers/pwm/pwm-zx.c zx_pwm_set_mask(zpc, pwm->hwpwm, ZX_PWM_MODE, ZX_PWM_EN, 0); zpc 137 drivers/pwm/pwm-zx.c zx_pwm_set_mask(zpc, pwm->hwpwm, ZX_PWM_MODE, ZX_PWM_CLKDIV_MASK, zpc 139 drivers/pwm/pwm-zx.c zx_pwm_writel(zpc, pwm->hwpwm, ZX_PWM_PERIOD, period_cycles); zpc 140 drivers/pwm/pwm-zx.c zx_pwm_writel(zpc, pwm->hwpwm, ZX_PWM_DUTY, duty_cycles); zpc 144 drivers/pwm/pwm-zx.c zx_pwm_set_mask(zpc, pwm->hwpwm, ZX_PWM_MODE, zpc 153 drivers/pwm/pwm-zx.c struct zx_pwm_chip *zpc = to_zx_pwm_chip(chip); zpc 160 drivers/pwm/pwm-zx.c zx_pwm_set_mask(zpc, pwm->hwpwm, ZX_PWM_MODE, ZX_PWM_POLAR, zpc 174 drivers/pwm/pwm-zx.c ret = clk_prepare_enable(zpc->wclk); zpc 178 drivers/pwm/pwm-zx.c zx_pwm_set_mask(zpc, pwm->hwpwm, ZX_PWM_MODE, zpc 181 drivers/pwm/pwm-zx.c zx_pwm_set_mask(zpc, pwm->hwpwm, ZX_PWM_MODE, zpc 183 drivers/pwm/pwm-zx.c clk_disable_unprepare(zpc->wclk); zpc 198 drivers/pwm/pwm-zx.c struct zx_pwm_chip *zpc; zpc 203 drivers/pwm/pwm-zx.c zpc = devm_kzalloc(&pdev->dev, sizeof(*zpc), GFP_KERNEL); zpc 204 drivers/pwm/pwm-zx.c if (!zpc) zpc 208 drivers/pwm/pwm-zx.c zpc->base = devm_ioremap_resource(&pdev->dev, res); zpc 209 drivers/pwm/pwm-zx.c if (IS_ERR(zpc->base)) zpc 210 drivers/pwm/pwm-zx.c return PTR_ERR(zpc->base); zpc 212 drivers/pwm/pwm-zx.c zpc->pclk = devm_clk_get(&pdev->dev, "pclk"); zpc 213 drivers/pwm/pwm-zx.c if (IS_ERR(zpc->pclk)) zpc 214 drivers/pwm/pwm-zx.c return PTR_ERR(zpc->pclk); zpc 216 drivers/pwm/pwm-zx.c zpc->wclk = devm_clk_get(&pdev->dev, "wclk"); zpc 217 drivers/pwm/pwm-zx.c if (IS_ERR(zpc->wclk)) zpc 218 drivers/pwm/pwm-zx.c return PTR_ERR(zpc->wclk); zpc 220 drivers/pwm/pwm-zx.c ret = clk_prepare_enable(zpc->pclk); zpc 224 drivers/pwm/pwm-zx.c zpc->chip.dev = &pdev->dev; zpc 225 drivers/pwm/pwm-zx.c zpc->chip.ops = &zx_pwm_ops; zpc 226 drivers/pwm/pwm-zx.c zpc->chip.base = -1; zpc 227 drivers/pwm/pwm-zx.c zpc->chip.npwm = 4; zpc 228 drivers/pwm/pwm-zx.c zpc->chip.of_xlate = of_pwm_xlate_with_flags; zpc 229 drivers/pwm/pwm-zx.c zpc->chip.of_pwm_n_cells = 3; zpc 235 drivers/pwm/pwm-zx.c for (i = 0; i < zpc->chip.npwm; i++) zpc 236 drivers/pwm/pwm-zx.c zx_pwm_set_mask(zpc, i, ZX_PWM_MODE, ZX_PWM_EN, 0); zpc 238 drivers/pwm/pwm-zx.c ret = pwmchip_add(&zpc->chip); zpc 244 drivers/pwm/pwm-zx.c platform_set_drvdata(pdev, zpc); zpc 251 drivers/pwm/pwm-zx.c struct zx_pwm_chip *zpc = platform_get_drvdata(pdev); zpc 254 drivers/pwm/pwm-zx.c ret = pwmchip_remove(&zpc->chip); zpc 255 drivers/pwm/pwm-zx.c clk_disable_unprepare(zpc->pclk);