Home
last modified time | relevance | path

Searched refs:pwm (Results 1 – 25 of 646) sorted by relevance

12345678910>>...26

/linux/drivers/pwm/
H A Dpwm-vt8500.c27 #define REG_CTRL(pwm) (((pwm) << 4) + 0x00) argument
28 #define REG_SCALAR(pwm) (((pwm) << 4) + 0x04) argument
29 #define REG_PERIOD(pwm) (((pwm) << 4) + 0x08) argument
30 #define REG_DUTY(pwm) (((pwm) << 4) + 0x0C) argument
71 static int vt8500_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm, in vt8500_pwm_config() argument
107 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()
[all …]
H A Dpwm-dwc-core.c24 static void __dwc_pwm_set_enable(struct dwc_pwm *dwc, int pwm, int enabled) in __dwc_pwm_set_enable() argument
28 reg = dwc_pwm_readl(dwc, DWC_TIM_CTRL(pwm)); in __dwc_pwm_set_enable()
35 dwc_pwm_writel(dwc, reg, DWC_TIM_CTRL(pwm)); in __dwc_pwm_set_enable()
39 struct pwm_device *pwm, in __dwc_pwm_configure_timer() argument
70 __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()
98 static int dwc_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm, in dwc_pwm_apply() argument
[all …]
H A Dpwm-berlin.c74 static int berlin_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm, in berlin_pwm_config() argument
99 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()
113 struct pwm_device *pwm, in berlin_pwm_set_polarity() argument
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()
131 static int berlin_pwm_enable(struct pwm_chip *chip, struct pwm_device *pwm) in berlin_pwm_enable() argument
136 value = berlin_pwm_readl(bpc, pwm->hwpwm, BERLIN_PWM_EN); in berlin_pwm_enable()
[all …]
H A Dpwm-lpc18xx-sct.c124 struct pwm_device *pwm, in lpc18xx_pwm_set_conflict_res() argument
135 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()
163 struct pwm_device *pwm, u64 duty_ns) in lpc18xx_pwm_config_duty() argument
166 struct lpc18xx_pwm_data *lpc18xx_data = &lpc18xx_pwm->channeldata[pwm->hwpwm]; in lpc18xx_pwm_config_duty()
184 static int lpc18xx_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm, in lpc18xx_pwm_config() argument
207 pwm->hwpwm); in lpc18xx_pwm_config()
217 lpc18xx_pwm_config_duty(chip, pwm, duty_ns); in lpc18xx_pwm_config()
222 static int lpc18xx_pwm_enable(struct pwm_chip *chip, struct pwm_device *pwm, enum pwm_polarity pola… in lpc18xx_pwm_enable() argument
225 struct lpc18xx_pwm_data *lpc18xx_data = &lpc18xx_pwm->channeldata[pwm->hwpwm]; in lpc18xx_pwm_enable()
[all …]
H A Dpwm-microchip-core.c68 static void mchp_core_pwm_enable(struct pwm_chip *chip, struct pwm_device *pwm, in mchp_core_pwm_enable() argument
79 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()
148 static void mchp_core_pwm_apply_duty(struct pwm_chip *chip, struct pwm_device *pwm, in mchp_core_pwm_apply_duty() argument
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()
271 static int mchp_core_pwm_apply_locked(struct pwm_chip *chip, struct pwm_device *pwm, in mchp_core_pwm_apply_locked() argument
[all …]
H A Dpwm-sprd.c70 static int sprd_pwm_get_state(struct pwm_chip *chip, struct pwm_device *pwm, in sprd_pwm_get_state() argument
74 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()
122 static int sprd_pwm_config(struct sprd_pwm_chip *spc, struct pwm_device *pwm, in sprd_pwm_config() argument
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()
[all …]
H A Dpwm-spear.c75 static int spear_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm, in spear_pwm_config() argument
126 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()
135 static int spear_pwm_enable(struct pwm_chip *chip, struct pwm_device *pwm) in spear_pwm_enable() argument
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()
152 static void spear_pwm_disable(struct pwm_chip *chip, struct pwm_device *pwm) in spear_pwm_disable() argument
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()
[all …]
H A Dpwm-sunplus.c54 static int sunplus_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm, in sunplus_pwm_apply() argument
61 if (state->polarity != pwm->state.polarity) in sunplus_pwm_apply()
67 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()
[all …]
H A Dpwm-rzg2l-gpt.c135 static int rzg2l_gpt_request(struct pwm_chip *chip, struct pwm_device *pwm) in rzg2l_gpt_request() argument
138 u32 ch = RZG2L_GET_CH(pwm->hwpwm); in rzg2l_gpt_request()
146 static void rzg2l_gpt_free(struct pwm_chip *chip, struct pwm_device *pwm) in rzg2l_gpt_free() argument
149 u32 ch = RZG2L_GET_CH(pwm->hwpwm); in rzg2l_gpt_free()
171 struct pwm_device *pwm) in rzg2l_gpt_enable() argument
173 u8 sub_ch = rzg2l_gpt_subchannel(pwm->hwpwm); in rzg2l_gpt_enable()
175 u8 ch = RZG2L_GET_CH(pwm->hwpwm); in rzg2l_gpt_enable()
189 struct pwm_device *pwm) in rzg2l_gpt_disable() argument
191 u8 sub_ch = rzg2l_gpt_subchannel(pwm->hwpwm); in rzg2l_gpt_disable()
192 u8 ch = RZG2L_GET_CH(pwm->hwpwm); in rzg2l_gpt_disable()
[all …]
/linux/Documentation/devicetree/bindings/pwm/
H A Dpwm.txt8 with a property containing a 'pwm-list':
10 pwm-list ::= <single-pwm> [pwm-list]
11 single-pwm ::= <pwm-phandle> <pwm-specifier>
12 pwm-phandle : phandle to PWM controller node
13 pwm-specifier : array of #pwm-cells specifying the given PWM
18 An optional property "pwm-names" may contain a list of strings to label
19 each of the PWM devices listed in the "pwms" property. If no "pwm-names"
23 "pwm-names" property to map the name of the PWM device requested by the
29 pwm: pwm {
30 #pwm-cells = <2>;
[all …]
H A Dpwm-hibvt.txt6 "hisilicon,hi3516cv300-pwm"
7 "hisilicon,hi3519v100-pwm"
8 "hisilicon,hi3559v100-shub-pwm"
9 "hisilicon,hi3559v100-pwm
13 - #pwm-cells: Should be 3. See pwm.yaml in this directory for a description of
17 pwm: pwm@12130000 {
18 compatible = "hisilicon,hi3516cv300-pwm";
22 #pwm-cells = <3>;
H A Dimg-pwm.txt4 - compatible: Should be "img,pistachio-pwm"
5 - reg: Should contain physical base address and length of pwm registers.
9 - pwm: PWM operating clock.
11 - #pwm-cells: Should be 2. See pwm.yaml in this directory for the
17 pwm: pwm@18101300 {
18 compatible = "img,pistachio-pwm";
21 clock-names = "pwm", "sys";
22 #pwm-cells = <2>;
H A Dspear-pwm.txt5 - "st,spear320-pwm"
6 - "st,spear1340-pwm"
8 - #pwm-cells: should be 2. See pwm.yaml in this directory for a description of
13 pwm: pwm@a8000000 {
14 compatible ="st,spear320-pwm";
16 #pwm-cells = <2>;
H A Dcirrus,clps711x-pwm.txt4 - compatible: Shall contain "cirrus,ep7209-pwm".
7 - #pwm-cells: Should be 1. The cell specifies the index of the channel.
10 pwm: pwm@80000400 {
11 compatible = "cirrus,ep7312-pwm", "cirrus,ep7209-pwm";
14 #pwm-cells = <1>;
/linux/drivers/input/keyboard/
H A Dlm8323.c148 struct lm8323_pwm pwm[LM8323_NUM_PWMS]; member
352 static void pwm_done(struct lm8323_pwm *pwm) in pwm_done() argument
354 guard(mutex)(&pwm->lock); in pwm_done()
356 pwm->running = false; in pwm_done()
357 if (pwm->desired_brightness != pwm->brightness) in pwm_done()
358 schedule_work(&pwm->work); in pwm_done()
393 pwm_done(&lm->pwm[i]); in lm8323_irq()
415 static void lm8323_write_pwm_one(struct lm8323_pwm *pwm, int pos, u16 cmd) in lm8323_write_pwm_one() argument
417 lm8323_write(pwm->chip, 4, LM8323_CMD_PWM_WRITE, (pos << 2) | pwm->id, in lm8323_write_pwm_one()
427 static void lm8323_write_pwm(struct lm8323_pwm *pwm, int kill, in lm8323_write_pwm() argument
[all …]
/linux/arch/loongarch/boot/dts/
H A Dloongson-2k0500.dtsi185 pwm@1ff5c000 {
186 compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
191 #pwm-cells = <3>;
195 pwm@1ff5c010 {
196 compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
201 #pwm-cells = <3>;
205 pwm@1ff5c020 {
206 compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
211 #pwm-cells = <3>;
215 pwm@1ff5c030 {
[all …]
/linux/arch/arm/boot/dts/microchip/
H A Dat91-kizbox.dts10 #include <dt-bindings/pwm/pwm.h>
50 compatible = "pwm-leds";
53 label = "pwm:green:network";
60 label = "pwm:red:network";
67 label = "pwm:green:user";
74 label = "pwm:red:user";
95 tcb1_pwm0: pwm@0 {
96 compatible = "atmel,tcb-pwm";
98 #pwm-cells = <3>;
103 tcb1_pwm1: pwm@1 {
[all …]
/linux/arch/arm64/boot/dts/amlogic/
H A Damlogic-t7.dtsi389 pwm_a_pins: pwm-a {
397 pwm_ao_a_pins: pwm-ao-a {
405 pwm_ao_b_pins: pwm-ao-b {
413 pwm_ao_c_d_pins: pwm-ao-c-d {
421 pwm_ao_c_e_pins: pwm-ao-c-e {
429 pwm_ao_c_hiz_pins: pwm-ao-c-hiz {
437 pwm_ao_d_pins: pwm-ao-d {
445 pwm_ao_e_pins: pwm-ao-e {
453 pwm_ao_f_pins: pwm-ao-f {
461 pwm_ao_g_d11_pins: pwm-ao-g-d11 {
[all …]
/linux/include/trace/events/
H A Dpwm.h3 #define TRACE_SYSTEM pwm
12 TP_PROTO(struct pwm_device *pwm, args)
15 TP_ARGS(pwm, args)
25 __entry->chipid = pwm->chip->id; \
26 __entry->hwpwm = pwm->hwpwm; \
133 DECLARE_EVENT_CLASS(pwm,
135 TP_PROTO(struct pwm_device *pwm, const struct pwm_state *state, int err),
137 TP_ARGS(pwm, state, err),
161 DEFINE_EVENT(pwm, pwm_apply,
163 TP_PROTO(struct pwm_device *pwm, const struct pwm_state *state, int err),
[all …]
/linux/drivers/media/rc/
H A Dpwm-ir-tx.c21 struct pwm_device *pwm; member
64 struct pwm_device *pwm = pwm_ir->pwm; in pwm_ir_tx_sleep() local
70 pwm_init_state(pwm, &state); in pwm_ir_tx_sleep()
79 pwm_apply_might_sleep(pwm, &state); in pwm_ir_tx_sleep()
88 pwm_apply_might_sleep(pwm, &state); in pwm_ir_tx_sleep()
97 struct pwm_device *pwm = pwm_ir->pwm; in pwm_ir_tx_atomic() local
100 pwm_init_state(pwm, &state); in pwm_ir_tx_atomic()
129 pwm_apply_atomic(pwm_ir->pwm, pwm_ir->state); in pwm_ir_timer()
156 pwm_ir->pwm = devm_pwm_get(&pdev->dev, NULL); in pwm_ir_probe()
157 if (IS_ERR(pwm_ir->pwm)) in pwm_ir_probe()
[all …]
/linux/arch/arm/boot/dts/intel/pxa/
H A Dpxa27x.dtsi49 pwm0: pwm@40b00000 {
50 compatible = "marvell,pxa270-pwm", "marvell,pxa250-pwm";
52 #pwm-cells = <1>;
56 pwm1: pwm@40b00010 {
57 compatible = "marvell,pxa270-pwm", "marvell,pxa250-pwm";
59 #pwm-cells = <1>;
63 pwm2: pwm@40c00000 {
64 compatible = "marvell,pxa270-pwm", "marvell,pxa250-pwm";
66 #pwm-cells = <1>;
70 pwm3: pwm@40c00010 {
[all …]
/linux/Documentation/hwmon/
H A Dpwm-fan.rst1 Kernel driver pwm-fan
27 0 -> disable pwm and regulator
28 1 -> enable pwm; if pwm==0, disable pwm, keep regulator enabled
29 2 -> enable pwm; if pwm==0, keep pwm and regulator enabled
30 3 -> enable pwm; if pwm==0, disable pwm and regulator
/linux/Documentation/ABI/testing/
H A Dsysfs-class-pwm1 What: /sys/class/pwm/
6 The pwm/ class sub-directory belongs to the Generic PWM
10 What: /sys/class/pwm/pwmchip<N>/
15 A /sys/class/pwm/pwmchipN directory is created for each
19 What: /sys/class/pwm/pwmchip<N>/npwm
26 What: /sys/class/pwm/pwmchip<N>/export
32 Value is between 0 and /sys/class/pwm/pwmchipN/npwm - 1.
34 What: /sys/class/pwm/pwmchip<N>/unexport
41 What: /sys/class/pwm/pwmchip<N>/pwmX
46 A /sys/class/pwm/pwmchipN/pwmX directory is created for
[all …]
/linux/arch/arm64/boot/dts/renesas/
H A Dr8a779g3-sparrow-hawk-fan-argon40.dtso12 * r8a779g3-sparrow-hawk$ ls -1 /sys/devices/platform/pwm-fan-ext/hwmon/hwmon?/pwm?_enable
13 * /sys/devices/platform/pwm-fan-ext/hwmon/hwmon0/pwm1_enable
16 * # For details, see Linux Documentation/hwmon/pwm-fan.rst
17 * r8a779g3-sparrow-hawk$ echo 2 > /sys/devices/platform/pwm-fan-ext/hwmon/hwmon0/pwm1_enable
21 * r8a779g3-sparrow-hawk$ echo 101 > /sys/devices/platform/pwm-fan-ext/hwmon/hwmon0/pwm1
28 pwm-fan-ext {
29 compatible = "pwm-fan";
46 pwmhat: pwm@1a {
49 #pwm-cells = <3>;
/linux/drivers/spi/
H A Dspi-offload-trigger-pwm.c23 struct pwm_device *pwm; member
55 ret = pwm_round_waveform_might_sleep(st->pwm, &wf); in spi_offload_trigger_pwm_validate()
83 return pwm_set_waveform_might_sleep(st->pwm, &wf, false); in spi_offload_trigger_pwm_enable()
92 ret = pwm_get_waveform_might_sleep(st->pwm, &wf); in spi_offload_trigger_pwm_disable()
100 ret = pwm_set_waveform_might_sleep(st->pwm, &wf, false); in spi_offload_trigger_pwm_disable()
135 st->pwm = devm_pwm_get(dev, NULL); in spi_offload_trigger_pwm_probe()
136 if (IS_ERR(st->pwm)) in spi_offload_trigger_pwm_probe()
137 return dev_err_probe(dev, PTR_ERR(st->pwm), "failed to get PWM\n"); in spi_offload_trigger_pwm_probe()
140 pwm_init_state(st->pwm, &state); in spi_offload_trigger_pwm_probe()
143 ret = pwm_apply_might_sleep(st->pwm, &state); in spi_offload_trigger_pwm_probe()
[all …]

12345678910>>...26