Home
last modified time | relevance | path

Searched refs:hwpwm (Results 1 – 22 of 22) sorted by relevance

/linux/drivers/pwm/
H A Dpwm-vt8500.c107 writel(prescale, vt8500->base + REG_SCALAR(pwm->hwpwm)); in vt8500_pwm_config()
108 vt8500_pwm_busy_wait(chip, pwm->hwpwm, STATUS_SCALAR_UPDATE); in vt8500_pwm_config()
110 writel(pv, vt8500->base + REG_PERIOD(pwm->hwpwm)); in vt8500_pwm_config()
111 vt8500_pwm_busy_wait(chip, pwm->hwpwm, STATUS_PERIOD_UPDATE); in vt8500_pwm_config()
113 writel(dc, vt8500->base + REG_DUTY(pwm->hwpwm)); in vt8500_pwm_config()
114 vt8500_pwm_busy_wait(chip, pwm->hwpwm, STATUS_DUTY_UPDATE); in vt8500_pwm_config()
116 val = readl(vt8500->base + REG_CTRL(pwm->hwpwm)); in vt8500_pwm_config()
118 writel(val, vt8500->base + REG_CTRL(pwm->hwpwm)); in vt8500_pwm_config()
119 vt8500_pwm_busy_wait(chip, pwm->hwpwm, STATUS_CTRL_UPDATE); in vt8500_pwm_config()
137 val = readl(vt8500->base + REG_CTRL(pwm->hwpwm)); in vt8500_pwm_enable()
[all …]
H A Dpwm-airoha.c109 static void airoha_pwm_get_flash_map_addr_and_shift(unsigned int hwpwm, in airoha_pwm_get_flash_map_addr_and_shift() argument
114 if (hwpwm >= AIROHA_PWM_NUM_GPIO) { in airoha_pwm_get_flash_map_addr_and_shift()
115 unsigned int sipohwpwm = hwpwm - AIROHA_PWM_NUM_GPIO; in airoha_pwm_get_flash_map_addr_and_shift()
124 offset = hwpwm / AIROHA_PWM_PINS_PER_FLASH_MAP; in airoha_pwm_get_flash_map_addr_and_shift()
125 hwpwm_bit = hwpwm % AIROHA_PWM_PINS_PER_FLASH_MAP; in airoha_pwm_get_flash_map_addr_and_shift()
268 unsigned int hwpwm) in airoha_pwm_release_bucket_config() argument
273 if (!test_bit(hwpwm, pc->initialized)) in airoha_pwm_release_bucket_config()
276 bucket = pc->channel_bucket[hwpwm]; in airoha_pwm_release_bucket_config()
320 unsigned int hwpwm) in airoha_pwm_consume_generator() argument
335 airoha_pwm_release_bucket_config(pc, hwpwm); in airoha_pwm_consume_generator()
[all …]
H A Dpwm-rzg2l-gpt.c36 #define RZG2L_GET_CH(hwpwm) ((hwpwm) / 2) argument
94 static inline unsigned int rzg2l_gpt_subchannel(unsigned int hwpwm) in rzg2l_gpt_subchannel() argument
96 return hwpwm & 0x1; in rzg2l_gpt_subchannel()
99 static inline unsigned int rzg2l_gpt_sibling(unsigned int hwpwm) in rzg2l_gpt_sibling() argument
101 return hwpwm ^ 0x1; in rzg2l_gpt_sibling()
138 u32 ch = RZG2L_GET_CH(pwm->hwpwm); in rzg2l_gpt_request()
149 u32 ch = RZG2L_GET_CH(pwm->hwpwm); in rzg2l_gpt_free()
155 static bool rzg2l_gpt_is_ch_enabled(struct rzg2l_gpt_chip *rzg2l_gpt, u8 hwpwm) in rzg2l_gpt_is_ch_enabled() argument
157 u8 ch = RZG2L_GET_CH(hwpwm); in rzg2l_gpt_is_ch_enabled()
166 return val & RZG2L_GTIOR_OxE(rzg2l_gpt_subchannel(hwpwm)); in rzg2l_gpt_is_ch_enabled()
[all …]
H A Dpwm-sunplus.c67 mode0 &= ~SP7021_PWM_MODE0_PWMEN(pwm->hwpwm); in sunplus_pwm_apply()
71 mode1 &= ~SP7021_PWM_MODE1_CNT_EN(pwm->hwpwm); in sunplus_pwm_apply()
99 writel(dd_freq, priv->base + SP7021_PWM_FREQ(pwm->hwpwm)); in sunplus_pwm_apply()
103 mode0 |= SP7021_PWM_MODE0_PWMEN(pwm->hwpwm); in sunplus_pwm_apply()
105 mode1 |= SP7021_PWM_MODE1_CNT_EN(pwm->hwpwm); in sunplus_pwm_apply()
108 mode0 |= SP7021_PWM_MODE0_BYPASS(pwm->hwpwm); in sunplus_pwm_apply()
109 duty = SP7021_PWM_DUTY_DD_SEL(pwm->hwpwm) | SP7021_PWM_DUTY_MAX; in sunplus_pwm_apply()
111 mode0 &= ~SP7021_PWM_MODE0_BYPASS(pwm->hwpwm); in sunplus_pwm_apply()
117 duty = SP7021_PWM_DUTY_DD_SEL(pwm->hwpwm) | duty; in sunplus_pwm_apply()
119 writel(duty, priv->base + SP7021_PWM_DUTY(pwm->hwpwm)); in sunplus_pwm_apply()
[all …]
H A Dpwm-sprd.c74 struct sprd_pwm_chn *chn = &spc->chn[pwm->hwpwm]; in sprd_pwm_get_state()
86 pwm->hwpwm); in sprd_pwm_get_state()
90 val = sprd_pwm_read(spc, pwm->hwpwm, SPRD_PWM_ENABLE); in sprd_pwm_get_state()
104 val = sprd_pwm_read(spc, pwm->hwpwm, SPRD_PWM_PRESCALE); in sprd_pwm_get_state()
109 val = sprd_pwm_read(spc, pwm->hwpwm, SPRD_PWM_DUTY); in sprd_pwm_get_state()
125 struct sprd_pwm_chn *chn = &spc->chn[pwm->hwpwm]; in sprd_pwm_config()
155 sprd_pwm_write(spc, pwm->hwpwm, SPRD_PWM_PRESCALE, prescale); in sprd_pwm_config()
156 sprd_pwm_write(spc, pwm->hwpwm, SPRD_PWM_MOD, SPRD_PWM_MOD_MAX); in sprd_pwm_config()
157 sprd_pwm_write(spc, pwm->hwpwm, SPRD_PWM_DUTY, duty); in sprd_pwm_config()
166 struct sprd_pwm_chn *chn = &spc->chn[pwm->hwpwm]; in sprd_pwm_apply()
[all …]
H A Dpwm-dwc-core.c70 __dwc_pwm_set_enable(dwc, pwm->hwpwm, false); in __dwc_pwm_configure_timer()
78 dwc_pwm_writel(dwc, low, DWC_TIM_LD_CNT(pwm->hwpwm)); in __dwc_pwm_configure_timer()
79 dwc_pwm_writel(dwc, high, DWC_TIM_LD_CNT2(pwm->hwpwm)); in __dwc_pwm_configure_timer()
88 dwc_pwm_writel(dwc, ctrl, DWC_TIM_CTRL(pwm->hwpwm)); in __dwc_pwm_configure_timer()
93 __dwc_pwm_set_enable(dwc, pwm->hwpwm, state->enabled); in __dwc_pwm_configure_timer()
112 __dwc_pwm_set_enable(dwc, pwm->hwpwm, false); in dwc_pwm_apply()
129 ctrl = dwc_pwm_readl(dwc, DWC_TIM_CTRL(pwm->hwpwm)); in dwc_pwm_get_state()
130 ld = dwc_pwm_readl(dwc, DWC_TIM_LD_CNT(pwm->hwpwm)); in dwc_pwm_get_state()
131 ld2 = dwc_pwm_readl(dwc, DWC_TIM_LD_CNT2(pwm->hwpwm)); in dwc_pwm_get_state()
H A Dpwm-microchip-core.c79 reg_offset = MCHPCOREPWM_EN(pwm->hwpwm >> 3); in mchp_core_pwm_enable()
80 shift = pwm->hwpwm & 7; in mchp_core_pwm_enable()
87 mchp_core_pwm->channel_enabled &= ~BIT(pwm->hwpwm); in mchp_core_pwm_enable()
88 mchp_core_pwm->channel_enabled |= enable << pwm->hwpwm; in mchp_core_pwm_enable()
95 if (mchp_core_pwm->sync_update_mask & (1 << pwm->hwpwm)) in mchp_core_pwm_enable()
178 writel_relaxed(posedge, mchp_core_pwm->base + MCHPCOREPWM_POSEDGE(pwm->hwpwm)); in mchp_core_pwm_apply_duty()
179 writel_relaxed(negedge, mchp_core_pwm->base + MCHPCOREPWM_NEGEDGE(pwm->hwpwm)); in mchp_core_pwm_apply_duty()
308 period_locked = mchp_core_pwm->channel_enabled & ~(1 << pwm->hwpwm); in mchp_core_pwm_apply_locked()
362 mchp_core_pwm_wait_for_sync_update(mchp_core_pwm, pwm->hwpwm); in mchp_core_pwm_apply()
375 mchp_core_pwm_wait_for_sync_update(mchp_core_pwm, pwm->hwpwm); in mchp_core_pwm_get_state()
[all …]
H A Dpwm-berlin.c99 value = berlin_pwm_readl(bpc, pwm->hwpwm, BERLIN_PWM_CONTROL); in berlin_pwm_config()
104 berlin_pwm_writel(bpc, pwm->hwpwm, value, BERLIN_PWM_CONTROL); in berlin_pwm_config()
106 berlin_pwm_writel(bpc, pwm->hwpwm, duty, BERLIN_PWM_DUTY); in berlin_pwm_config()
107 berlin_pwm_writel(bpc, pwm->hwpwm, period, BERLIN_PWM_TCNT); in berlin_pwm_config()
119 value = berlin_pwm_readl(bpc, pwm->hwpwm, BERLIN_PWM_CONTROL); in berlin_pwm_set_polarity()
126 berlin_pwm_writel(bpc, pwm->hwpwm, value, BERLIN_PWM_CONTROL); in berlin_pwm_set_polarity()
136 value = berlin_pwm_readl(bpc, pwm->hwpwm, BERLIN_PWM_EN); in berlin_pwm_enable()
138 berlin_pwm_writel(bpc, pwm->hwpwm, value, BERLIN_PWM_EN); in berlin_pwm_enable()
149 value = berlin_pwm_readl(bpc, pwm->hwpwm, BERLIN_PWM_EN); in berlin_pwm_disable()
151 berlin_pwm_writel(bpc, pwm->hwpwm, value, BERLIN_PWM_EN); in berlin_pwm_disable()
H A Dpwm-rz-mtu3.c132 rz_mtu3_get_channel(struct rz_mtu3_pwm_chip *rz_mtu3_pwm, u32 hwpwm) in rz_mtu3_get_channel() argument
138 if (priv->map->base_pwm_number + priv->map->num_channel_ios > hwpwm) in rz_mtu3_get_channel()
146 u32 hwpwm) in rz_mtu3_pwm_is_ch_enabled() argument
152 priv = rz_mtu3_get_channel(rz_mtu3_pwm, hwpwm); in rz_mtu3_pwm_is_ch_enabled()
157 if (priv->map->base_pwm_number == hwpwm) in rz_mtu3_pwm_is_ch_enabled()
172 priv = rz_mtu3_get_channel(rz_mtu3_pwm, pwm->hwpwm); in rz_mtu3_pwm_request()
201 priv = rz_mtu3_get_channel(rz_mtu3_pwm, pwm->hwpwm); in rz_mtu3_pwm_free()
224 priv = rz_mtu3_get_channel(rz_mtu3_pwm, pwm->hwpwm); in rz_mtu3_pwm_enable()
229 if (priv->map->base_pwm_number == pwm->hwpwm) in rz_mtu3_pwm_enable()
250 priv = rz_mtu3_get_channel(rz_mtu3_pwm, pwm->hwpwm); in rz_mtu3_pwm_disable()
[all …]
H A Dpwm-lpc18xx-sct.c135 val &= ~LPC18XX_PWM_RES_MASK(pwm->hwpwm); in lpc18xx_pwm_set_conflict_res()
136 val |= LPC18XX_PWM_RES(pwm->hwpwm, action); in lpc18xx_pwm_set_conflict_res()
166 struct lpc18xx_pwm_data *lpc18xx_data = &lpc18xx_pwm->channeldata[pwm->hwpwm]; in lpc18xx_pwm_config_duty()
207 pwm->hwpwm); in lpc18xx_pwm_config()
225 struct lpc18xx_pwm_data *lpc18xx_data = &lpc18xx_pwm->channeldata[pwm->hwpwm]; in lpc18xx_pwm_enable()
248 lpc18xx_pwm_writel(lpc18xx_pwm, LPC18XX_PWM_OUTPUTSET(pwm->hwpwm), in lpc18xx_pwm_enable()
250 lpc18xx_pwm_writel(lpc18xx_pwm, LPC18XX_PWM_OUTPUTCL(pwm->hwpwm), in lpc18xx_pwm_enable()
260 struct lpc18xx_pwm_data *lpc18xx_data = &lpc18xx_pwm->channeldata[pwm->hwpwm]; in lpc18xx_pwm_disable()
264 lpc18xx_pwm_writel(lpc18xx_pwm, LPC18XX_PWM_OUTPUTSET(pwm->hwpwm), 0); in lpc18xx_pwm_disable()
265 lpc18xx_pwm_writel(lpc18xx_pwm, LPC18XX_PWM_OUTPUTCL(pwm->hwpwm), 0); in lpc18xx_pwm_disable()
[all …]
H A Dpwm-max7360.c51 return regmap_write_bits(regmap, MAX7360_REG_PWMCFG(pwm->hwpwm), in max7360_pwm_request()
117 ret = regmap_write(regmap, MAX7360_REG_PWM(pwm->hwpwm), wfhw->duty_steps); in max7360_pwm_write_waveform()
122 val = wfhw->enabled ? BIT(pwm->hwpwm) : 0; in max7360_pwm_write_waveform()
123 return regmap_write_bits(regmap, MAX7360_REG_GPIOCTRL, BIT(pwm->hwpwm), val); in max7360_pwm_write_waveform()
139 if (val & BIT(pwm->hwpwm)) { in max7360_pwm_read_waveform()
141 ret = regmap_read(regmap, MAX7360_REG_PWM(pwm->hwpwm), &val); in max7360_pwm_read_waveform()
H A Dpwm-spear.c126 spear_pwm_writel(pc, pwm->hwpwm, PWMCR, in spear_pwm_config()
128 spear_pwm_writel(pc, pwm->hwpwm, PWMDCR, dc); in spear_pwm_config()
129 spear_pwm_writel(pc, pwm->hwpwm, PWMPCR, pv); in spear_pwm_config()
145 val = spear_pwm_readl(pc, pwm->hwpwm, PWMCR); in spear_pwm_enable()
147 spear_pwm_writel(pc, pwm->hwpwm, PWMCR, val); in spear_pwm_enable()
157 val = spear_pwm_readl(pc, pwm->hwpwm, PWMCR); in spear_pwm_disable()
159 spear_pwm_writel(pc, pwm->hwpwm, PWMCR, val); in spear_pwm_disable()
H A Dpwm-keembay.c101 highlow = readl(priv->base + KMB_PWM_LEADIN_OFFSET(pwm->hwpwm)); in keembay_pwm_get_state()
108 highlow = readl(priv->base + KMB_PWM_HIGHLOW_OFFSET(pwm->hwpwm)); in keembay_pwm_get_state()
136 KMB_PWM_LEADIN_OFFSET(pwm->hwpwm)); in keembay_pwm_apply()
142 keembay_pwm_disable(priv, pwm->hwpwm); in keembay_pwm_apply()
170 writel(pwm_count, priv->base + KMB_PWM_HIGHLOW_OFFSET(pwm->hwpwm)); in keembay_pwm_apply()
173 keembay_pwm_enable(priv, pwm->hwpwm); in keembay_pwm_apply()
H A Dpwm-img.c133 val &= ~(PWM_CTRL_CFG_DIV_MASK << PWM_CTRL_CFG_DIV_SHIFT(pwm->hwpwm)); in img_pwm_config()
135 PWM_CTRL_CFG_DIV_SHIFT(pwm->hwpwm); in img_pwm_config()
140 img_pwm_writel(imgchip, PWM_CH_CFG(pwm->hwpwm), val); in img_pwm_config()
158 val |= BIT(pwm->hwpwm); in img_pwm_enable()
163 PERIP_PWM_PDM_CONTROL_CH_SHIFT(pwm->hwpwm)); in img_pwm_enable()
174 val &= ~BIT(pwm->hwpwm); in img_pwm_disable()
H A Dpwm-axi-pwmgen.c115 pwm->hwpwm, wf->duty_length_ns, wf->period_length_ns, wf->duty_offset_ns, in axi_pwmgen_round_waveform_tohw()
146 unsigned int ch = pwm->hwpwm; in axi_pwmgen_write_waveform()
171 unsigned int ch = pwm->hwpwm; in axi_pwmgen_read_waveform()
H A Dpwm-sifive.c131 inactive = readl(ddata->regs + PWM_SIFIVE_PWMCMP(pwm->hwpwm)); in pwm_sifive_get_state()
218 writel(inactive, ddata->regs + PWM_SIFIVE_PWMCMP(pwm->hwpwm)); in pwm_sifive_apply()
H A Dpwm-pxa.c75 offset = pwm->hwpwm ? 0x10 : 0; in pxa_pwm_config()
/linux/drivers/hwmon/
H A Daspeed-g6-pwm-tach.c153 u32 hwpwm = pwm->hwpwm; in aspeed_pwm_get_state() local
158 val = readl(priv->base + PWM_ASPEED_CTRL(hwpwm)); in aspeed_pwm_get_state()
164 val = readl(priv->base + PWM_ASPEED_DUTY_CYCLE(hwpwm)); in aspeed_pwm_get_state()
191 u32 hwpwm = pwm->hwpwm, duty_pt, val; in aspeed_pwm_apply() local
233 val = readl(priv->base + PWM_ASPEED_DUTY_CYCLE(hwpwm)); in aspeed_pwm_apply()
237 writel(val, priv->base + PWM_ASPEED_DUTY_CYCLE(hwpwm)); in aspeed_pwm_apply()
246 val = readl(priv->base + PWM_ASPEED_DUTY_CYCLE(hwpwm)); in aspeed_pwm_apply()
250 writel(val, priv->base + PWM_ASPEED_DUTY_CYCLE(hwpwm)); in aspeed_pwm_apply()
253 val = readl(priv->base + PWM_ASPEED_CTRL(hwpwm)); in aspeed_pwm_apply()
262 writel(val, priv->base + PWM_ASPEED_CTRL(hwpwm)); in aspeed_pwm_apply()
H A Dadt7470.c969 wfhw->val = data->pwm[pwm->hwpwm]; in adt7470_pwm_read_waveform()
983 if (pwm->hwpwm % 2) in adt7470_pwm_write_waveform()
990 if (data->pwm[pwm->hwpwm] == wfhw->val && in adt7470_pwm_write_waveform()
991 data->pwm_automatic[pwm->hwpwm] == 0) in adt7470_pwm_write_waveform()
996 ADT7470_REG_PWM_CFG(pwm->hwpwm), in adt7470_pwm_write_waveform()
1001 data->pwm_automatic[pwm->hwpwm] = 0; in adt7470_pwm_write_waveform()
1004 ADT7470_REG_PWM(pwm->hwpwm), wfhw->val); in adt7470_pwm_write_waveform()
1008 data->pwm[pwm->hwpwm] = wfhw->val; in adt7470_pwm_write_waveform()
/linux/include/trace/events/
H A Dpwm.h20 __field(unsigned int, hwpwm) \
26 __entry->hwpwm = pwm->hwpwm; \
30 TP_printk("pwmchip%u.%u: " fmt, __entry->chipid, __entry->hwpwm, args)
/linux/include/uapi/linux/
H A Dpwm.h19 __u32 hwpwm; member
/linux/drivers/gpio/
H A Dgpio-mvebu.c657 pwm->hwpwm, "mvebu-pwm", in mvebu_pwm_request()
768 mvebu_gpio_blink(&mvchip->chip, pwm->hwpwm, 1); in mvebu_pwm_apply()
770 mvebu_gpio_blink(&mvchip->chip, pwm->hwpwm, 0); in mvebu_pwm_apply()