| /linux/drivers/pwm/ |
| H A D | pwm-vt8500.c | 27 #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 D | pwm-dwc-core.c | 24 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 D | pwm-berlin.c | 74 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 D | pwm-lpc18xx-sct.c | 124 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 D | pwm-microchip-core.c | 68 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 D | pwm-sprd.c | 70 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 D | pwm-spear.c | 75 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 D | pwm-sunplus.c | 54 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 D | pwm-rzg2l-gpt.c | 135 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 D | pwm.txt | 8 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 D | pwm-hibvt.txt | 6 "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 D | img-pwm.txt | 4 - 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 D | spear-pwm.txt | 5 - "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 D | cirrus,clps711x-pwm.txt | 4 - 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 D | lm8323.c | 148 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 D | loongson-2k0500.dtsi | 185 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 D | at91-kizbox.dts | 10 #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 D | amlogic-t7.dtsi | 389 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 D | pwm.h | 3 #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 D | pwm-ir-tx.c | 21 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 D | pxa27x.dtsi | 49 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 D | pwm-fan.rst | 1 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 D | sysfs-class-pwm | 1 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 D | r8a779g3-sparrow-hawk-fan-argon40.dtso | 12 * 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 D | spi-offload-trigger-pwm.c | 23 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 …]
|