Lines Matching defs:dwc

60 static inline u32 dwc_pwm_readl(struct dwc_pwm *dwc, u32 offset)
62 return readl(dwc->base + offset);
65 static inline void dwc_pwm_writel(struct dwc_pwm *dwc, u32 value, u32 offset)
67 writel(value, dwc->base + offset);
70 static void __dwc_pwm_set_enable(struct dwc_pwm *dwc, int pwm, int enabled)
74 reg = dwc_pwm_readl(dwc, DWC_TIM_CTRL(pwm));
81 dwc_pwm_writel(dwc, reg, DWC_TIM_CTRL(pwm));
84 static int __dwc_pwm_configure_timer(struct dwc_pwm *dwc,
116 __dwc_pwm_set_enable(dwc, pwm->hwpwm, false);
124 dwc_pwm_writel(dwc, low, DWC_TIM_LD_CNT(pwm->hwpwm));
125 dwc_pwm_writel(dwc, high, DWC_TIM_LD_CNT2(pwm->hwpwm));
134 dwc_pwm_writel(dwc, ctrl, DWC_TIM_CTRL(pwm->hwpwm));
139 __dwc_pwm_set_enable(dwc, pwm->hwpwm, state->enabled);
147 struct dwc_pwm *dwc = to_dwc_pwm(chip);
155 return __dwc_pwm_configure_timer(dwc, pwm, state);
158 __dwc_pwm_set_enable(dwc, pwm->hwpwm, false);
169 struct dwc_pwm *dwc = to_dwc_pwm(chip);
174 state->enabled = !!(dwc_pwm_readl(dwc,
177 duty = dwc_pwm_readl(dwc, DWC_TIM_LD_CNT(pwm->hwpwm));
182 period = dwc_pwm_readl(dwc, DWC_TIM_LD_CNT2(pwm->hwpwm));
203 struct dwc_pwm *dwc;
205 dwc = devm_kzalloc(dev, sizeof(*dwc), GFP_KERNEL);
206 if (!dwc)
209 dwc->chip.dev = dev;
210 dwc->chip.ops = &dwc_pwm_ops;
211 dwc->chip.npwm = DWC_TIMERS_TOTAL;
213 dev_set_drvdata(dev, dwc);
214 return dwc;
220 struct dwc_pwm *dwc;
223 dwc = dwc_pwm_alloc(dev);
224 if (!dwc)
241 dwc->base = pcim_iomap_table(pci)[0];
242 if (!dwc->base) {
247 ret = devm_pwmchip_add(dev, &dwc->chip);
267 struct dwc_pwm *dwc = pci_get_drvdata(pdev);
271 if (dwc->chip.pwms[i].state.enabled) {
273 i, dwc->chip.pwms[i].label);
276 dwc->ctx[i].cnt = dwc_pwm_readl(dwc, DWC_TIM_LD_CNT(i));
277 dwc->ctx[i].cnt2 = dwc_pwm_readl(dwc, DWC_TIM_LD_CNT2(i));
278 dwc->ctx[i].ctrl = dwc_pwm_readl(dwc, DWC_TIM_CTRL(i));
287 struct dwc_pwm *dwc = pci_get_drvdata(pdev);
291 dwc_pwm_writel(dwc, dwc->ctx[i].cnt, DWC_TIM_LD_CNT(i));
292 dwc_pwm_writel(dwc, dwc->ctx[i].cnt2, DWC_TIM_LD_CNT2(i));
293 dwc_pwm_writel(dwc, dwc->ctx[i].ctrl, DWC_TIM_CTRL(i));
309 .name = "pwm-dwc",