Lines Matching refs:mvpwm

120 	struct mvebu_pwm  *mvpwm;
285 static void __iomem *mvebu_pwmreg_blink_on_duration(struct mvebu_pwm *mvpwm)
287 return mvpwm->membase + PWM_BLINK_ON_DURATION_OFF;
290 static void __iomem *mvebu_pwmreg_blink_off_duration(struct mvebu_pwm *mvpwm)
292 return mvpwm->membase + PWM_BLINK_OFF_DURATION_OFF;
613 struct mvebu_pwm *mvpwm = to_mvebu_pwm(chip);
614 struct mvebu_gpio_chip *mvchip = mvpwm->mvchip;
619 spin_lock_irqsave(&mvpwm->lock, flags);
621 if (mvpwm->gpiod) {
633 mvpwm->gpiod = desc;
636 spin_unlock_irqrestore(&mvpwm->lock, flags);
642 struct mvebu_pwm *mvpwm = to_mvebu_pwm(chip);
645 spin_lock_irqsave(&mvpwm->lock, flags);
646 gpiochip_free_own_desc(mvpwm->gpiod);
647 mvpwm->gpiod = NULL;
648 spin_unlock_irqrestore(&mvpwm->lock, flags);
655 struct mvebu_pwm *mvpwm = to_mvebu_pwm(chip);
656 struct mvebu_gpio_chip *mvchip = mvpwm->mvchip;
661 spin_lock_irqsave(&mvpwm->lock, flags);
663 u = readl_relaxed(mvebu_pwmreg_blink_on_duration(mvpwm));
665 do_div(val, mvpwm->clk_rate);
675 val += readl_relaxed(mvebu_pwmreg_blink_off_duration(mvpwm));
677 do_div(val, mvpwm->clk_rate);
691 spin_unlock_irqrestore(&mvpwm->lock, flags);
697 struct mvebu_pwm *mvpwm = to_mvebu_pwm(chip);
698 struct mvebu_gpio_chip *mvchip = mvpwm->mvchip;
706 val = (unsigned long long) mvpwm->clk_rate * state->duty_cycle;
715 val = (unsigned long long) mvpwm->clk_rate *
725 spin_lock_irqsave(&mvpwm->lock, flags);
727 writel_relaxed(on, mvebu_pwmreg_blink_on_duration(mvpwm));
728 writel_relaxed(off, mvebu_pwmreg_blink_off_duration(mvpwm));
734 spin_unlock_irqrestore(&mvpwm->lock, flags);
749 struct mvebu_pwm *mvpwm = mvchip->mvpwm;
752 &mvpwm->blink_select);
753 mvpwm->blink_on_duration =
754 readl_relaxed(mvebu_pwmreg_blink_on_duration(mvpwm));
755 mvpwm->blink_off_duration =
756 readl_relaxed(mvebu_pwmreg_blink_off_duration(mvpwm));
761 struct mvebu_pwm *mvpwm = mvchip->mvpwm;
764 mvpwm->blink_select);
765 writel_relaxed(mvpwm->blink_on_duration,
766 mvebu_pwmreg_blink_on_duration(mvpwm));
767 writel_relaxed(mvpwm->blink_off_duration,
768 mvebu_pwmreg_blink_off_duration(mvpwm));
776 struct mvebu_pwm *mvpwm;
808 mvpwm = devm_kzalloc(dev, sizeof(struct mvebu_pwm), GFP_KERNEL);
809 if (!mvpwm)
811 mvchip->mvpwm = mvpwm;
812 mvpwm->mvchip = mvchip;
814 mvpwm->membase = devm_platform_ioremap_resource_byname(pdev, "pwm");
815 if (IS_ERR(mvpwm->membase))
816 return PTR_ERR(mvpwm->membase);
818 mvpwm->clk_rate = clk_get_rate(mvchip->clk);
819 if (!mvpwm->clk_rate) {
824 mvpwm->chip.dev = dev;
825 mvpwm->chip.ops = &mvebu_pwm_ops;
826 mvpwm->chip.npwm = mvchip->chip.ngpio;
829 * mvpwm->chip.base to a fixed point like mvchip->chip.base.
833 mvpwm->chip.base = -1;
835 spin_lock_init(&mvpwm->lock);
837 return pwmchip_add(&mvpwm->chip);
1268 pwmchip_remove(&mvchip->mvpwm->chip);