atmel_pwm 116 drivers/pwm/pwm-atmel.c struct atmel_pwm_chip *atmel_pwm = to_atmel_pwm_chip(chip); atmel_pwm 120 drivers/pwm/pwm-atmel.c cycles *= clk_get_rate(atmel_pwm->clk); atmel_pwm 123 drivers/pwm/pwm-atmel.c for (*pres = 0; cycles > atmel_pwm->data->cfg.max_period; cycles >>= 1) atmel_pwm 126 drivers/pwm/pwm-atmel.c if (*pres > atmel_pwm->data->cfg.max_pres) { atmel_pwm 149 drivers/pwm/pwm-atmel.c struct atmel_pwm_chip *atmel_pwm = to_atmel_pwm_chip(chip); atmel_pwm 152 drivers/pwm/pwm-atmel.c if (atmel_pwm->data->regs.duty_upd == atmel_pwm 153 drivers/pwm/pwm-atmel.c atmel_pwm->data->regs.period_upd) { atmel_pwm 154 drivers/pwm/pwm-atmel.c val = atmel_pwm_ch_readl(atmel_pwm, pwm->hwpwm, PWM_CMR); atmel_pwm 156 drivers/pwm/pwm-atmel.c atmel_pwm_ch_writel(atmel_pwm, pwm->hwpwm, PWM_CMR, val); atmel_pwm 159 drivers/pwm/pwm-atmel.c atmel_pwm_ch_writel(atmel_pwm, pwm->hwpwm, atmel_pwm 160 drivers/pwm/pwm-atmel.c atmel_pwm->data->regs.duty_upd, cdty); atmel_pwm 167 drivers/pwm/pwm-atmel.c struct atmel_pwm_chip *atmel_pwm = to_atmel_pwm_chip(chip); atmel_pwm 169 drivers/pwm/pwm-atmel.c atmel_pwm_ch_writel(atmel_pwm, pwm->hwpwm, atmel_pwm 170 drivers/pwm/pwm-atmel.c atmel_pwm->data->regs.duty, cdty); atmel_pwm 171 drivers/pwm/pwm-atmel.c atmel_pwm_ch_writel(atmel_pwm, pwm->hwpwm, atmel_pwm 172 drivers/pwm/pwm-atmel.c atmel_pwm->data->regs.period, cprd); atmel_pwm 178 drivers/pwm/pwm-atmel.c struct atmel_pwm_chip *atmel_pwm = to_atmel_pwm_chip(chip); atmel_pwm 185 drivers/pwm/pwm-atmel.c mutex_lock(&atmel_pwm->isr_lock); atmel_pwm 186 drivers/pwm/pwm-atmel.c atmel_pwm->updated_pwms |= atmel_pwm_readl(atmel_pwm, PWM_ISR); atmel_pwm 188 drivers/pwm/pwm-atmel.c while (!(atmel_pwm->updated_pwms & (1 << pwm->hwpwm)) && atmel_pwm 191 drivers/pwm/pwm-atmel.c atmel_pwm->updated_pwms |= atmel_pwm_readl(atmel_pwm, PWM_ISR); atmel_pwm 194 drivers/pwm/pwm-atmel.c mutex_unlock(&atmel_pwm->isr_lock); atmel_pwm 195 drivers/pwm/pwm-atmel.c atmel_pwm_writel(atmel_pwm, PWM_DIS, 1 << pwm->hwpwm); atmel_pwm 203 drivers/pwm/pwm-atmel.c while ((atmel_pwm_readl(atmel_pwm, PWM_SR) & (1 << pwm->hwpwm)) && atmel_pwm 208 drivers/pwm/pwm-atmel.c clk_disable(atmel_pwm->clk); atmel_pwm 214 drivers/pwm/pwm-atmel.c struct atmel_pwm_chip *atmel_pwm = to_atmel_pwm_chip(chip); atmel_pwm 226 drivers/pwm/pwm-atmel.c cprd = atmel_pwm_ch_readl(atmel_pwm, pwm->hwpwm, atmel_pwm 227 drivers/pwm/pwm-atmel.c atmel_pwm->data->regs.period); atmel_pwm 246 drivers/pwm/pwm-atmel.c ret = clk_enable(atmel_pwm->clk); atmel_pwm 254 drivers/pwm/pwm-atmel.c val = atmel_pwm_ch_readl(atmel_pwm, pwm->hwpwm, PWM_CMR); atmel_pwm 260 drivers/pwm/pwm-atmel.c atmel_pwm_ch_writel(atmel_pwm, pwm->hwpwm, PWM_CMR, val); atmel_pwm 262 drivers/pwm/pwm-atmel.c mutex_lock(&atmel_pwm->isr_lock); atmel_pwm 263 drivers/pwm/pwm-atmel.c atmel_pwm->updated_pwms |= atmel_pwm_readl(atmel_pwm, PWM_ISR); atmel_pwm 264 drivers/pwm/pwm-atmel.c atmel_pwm->updated_pwms &= ~(1 << pwm->hwpwm); atmel_pwm 265 drivers/pwm/pwm-atmel.c mutex_unlock(&atmel_pwm->isr_lock); atmel_pwm 266 drivers/pwm/pwm-atmel.c atmel_pwm_writel(atmel_pwm, PWM_ENA, 1 << pwm->hwpwm); atmel_pwm 342 drivers/pwm/pwm-atmel.c struct atmel_pwm_chip *atmel_pwm; atmel_pwm 346 drivers/pwm/pwm-atmel.c atmel_pwm = devm_kzalloc(&pdev->dev, sizeof(*atmel_pwm), GFP_KERNEL); atmel_pwm 347 drivers/pwm/pwm-atmel.c if (!atmel_pwm) atmel_pwm 350 drivers/pwm/pwm-atmel.c mutex_init(&atmel_pwm->isr_lock); atmel_pwm 351 drivers/pwm/pwm-atmel.c atmel_pwm->data = of_device_get_match_data(&pdev->dev); atmel_pwm 352 drivers/pwm/pwm-atmel.c atmel_pwm->updated_pwms = 0; atmel_pwm 355 drivers/pwm/pwm-atmel.c atmel_pwm->base = devm_ioremap_resource(&pdev->dev, res); atmel_pwm 356 drivers/pwm/pwm-atmel.c if (IS_ERR(atmel_pwm->base)) atmel_pwm 357 drivers/pwm/pwm-atmel.c return PTR_ERR(atmel_pwm->base); atmel_pwm 359 drivers/pwm/pwm-atmel.c atmel_pwm->clk = devm_clk_get(&pdev->dev, NULL); atmel_pwm 360 drivers/pwm/pwm-atmel.c if (IS_ERR(atmel_pwm->clk)) atmel_pwm 361 drivers/pwm/pwm-atmel.c return PTR_ERR(atmel_pwm->clk); atmel_pwm 363 drivers/pwm/pwm-atmel.c ret = clk_prepare(atmel_pwm->clk); atmel_pwm 369 drivers/pwm/pwm-atmel.c atmel_pwm->chip.dev = &pdev->dev; atmel_pwm 370 drivers/pwm/pwm-atmel.c atmel_pwm->chip.ops = &atmel_pwm_ops; atmel_pwm 371 drivers/pwm/pwm-atmel.c atmel_pwm->chip.of_xlate = of_pwm_xlate_with_flags; atmel_pwm 372 drivers/pwm/pwm-atmel.c atmel_pwm->chip.of_pwm_n_cells = 3; atmel_pwm 373 drivers/pwm/pwm-atmel.c atmel_pwm->chip.base = -1; atmel_pwm 374 drivers/pwm/pwm-atmel.c atmel_pwm->chip.npwm = 4; atmel_pwm 376 drivers/pwm/pwm-atmel.c ret = pwmchip_add(&atmel_pwm->chip); atmel_pwm 382 drivers/pwm/pwm-atmel.c platform_set_drvdata(pdev, atmel_pwm); atmel_pwm 387 drivers/pwm/pwm-atmel.c clk_unprepare(atmel_pwm->clk); atmel_pwm 393 drivers/pwm/pwm-atmel.c struct atmel_pwm_chip *atmel_pwm = platform_get_drvdata(pdev); atmel_pwm 395 drivers/pwm/pwm-atmel.c clk_unprepare(atmel_pwm->clk); atmel_pwm 396 drivers/pwm/pwm-atmel.c mutex_destroy(&atmel_pwm->isr_lock); atmel_pwm 398 drivers/pwm/pwm-atmel.c return pwmchip_remove(&atmel_pwm->chip);