| /linux/drivers/pwm/ |
| H A D | pwm-omap-dmtimer.c | 1 // SPDX-License-Identifier: GPL-2.0-only 9 * Also based on pwm-samsung.c 13 * PWM driver / controller, using the OMAP's dual-mode timers 14 * with a timer counter that goes up. When it overflows it gets 15 * reloaded with the load value and the pwm output goes up. 20 * - When PWM is stopped, timer counter gets stopped immediately. This 21 * doesn't allow the current PWM period to complete and stops abruptly. 22 * - When PWM is running and changing both duty cycle and period, 25 * is updated while the pwm pin is high, current pwm period/duty_cycle 26 * can get updated as below based on the current timer counter: [all …]
|
| H A D | pwm-renesas-tpu.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * R-Mobile TPU PWM driver 17 #include <linux/pwm.h> 23 #define TPU_TSTR 0x00 /* Timer start register (shared) */ 25 #define TPU_TCRn 0x00 /* Timer control register */ 34 #define TPU_TMDRn 0x04 /* Timer mode register */ 40 #define TPU_TIORn 0x08 /* Timer I/O control register */ 49 #define TPU_TIERn 0x0c /* Timer interrupt enable register */ 50 #define TPU_TSRn 0x10 /* Timer status register */ 51 #define TPU_TCNTn 0x14 /* Timer counter */ [all …]
|
| H A D | pwm-dwc-core.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * DesignWare PWM Controller driver core 5 * Copyright (C) 2018-2020 Intel Corporation 20 #include <linux/pwm.h> 22 #include "pwm-dwc.h" 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 52 tmp = DIV_ROUND_CLOSEST_ULL(state->duty_cycle, dwc->clk_ns); in __dwc_pwm_configure_timer() [all …]
|
| H A D | pwm-xilinx.c | 1 // SPDX-License-Identifier: GPL-2.0+ 6 * - When changing both duty cycle and period, we may end up with one cycle 13 * - Cannot produce 100% duty cycle by configuring the TLRs. This might be 16 * - Only produces "normal" output. 17 * - Always produces low output if disabled. 20 #include <clocksource/timer-xilinx.h> 22 #include <linux/clk-provider.h> 27 #include <linux/pwm.h> 37 WARN_ON(cycles < 2 || cycles - 2 > priv->max); in xilinx_timer_tlr_cycles() 40 return cycles - 2; in xilinx_timer_tlr_cycles() [all …]
|
| H A D | pwm-stm32-lp.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * STM32 Low-Power Timer PWM driver 9 * Inspired by Gerald Baeza's pwm-stm32 driver 13 #include <linux/mfd/stm32-lptimer.h> 18 #include <linux/pwm.h> 31 /* STM32 Low-Power Timer is preceded by a configurable power-of-2 prescaler */ 40 /* Only one PWM on this LPTIMER: enable, prescaler and reload value can be changed */ in stm32_pwm_lp_update_allowed() 41 if (!priv->num_cc_chans) in stm32_pwm_lp_update_allowed() 44 ret = regmap_read(priv->regmap, STM32_LPTIM_CCMR1, &ccmr1); in stm32_pwm_lp_update_allowed() 71 if (!priv->num_cc_chans) in stm32_pwm_lp_compare_channel_apply() [all …]
|
| H A D | pwm-atmel-tcb.c | 1 // SPDX-License-Identifier: GPL-2.0-only 21 #include <linux/pwm.h> 36 unsigned div; /* PWM clock divider */ 37 unsigned duty; /* PWM duty expressed in clk cycles */ 38 unsigned period; /* PWM period expressed in clk cycles */ 69 struct pwm_device *pwm) in atmel_tcb_pwm_request() argument 72 struct atmel_tcb_pwm_device *tcbpwm = &tcbpwmc->pwms[pwm->hwpwm]; in atmel_tcb_pwm_request() 76 ret = clk_prepare_enable(tcbpwmc->clk); in atmel_tcb_pwm_request() 80 tcbpwm->duty = 0; in atmel_tcb_pwm_request() 81 tcbpwm->period = 0; in atmel_tcb_pwm_request() [all …]
|
| H A D | pwm-jz4740.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Copyright (C) 2010, Lars-Peter Clausen <lars@metafoo.de> 4 * JZ4740 platform PWM support 7 * - The .apply callback doesn't complete the currently running period before 15 #include <linux/mfd/ingenic-tcu.h> 20 #include <linux/pwm.h> 39 /* Enable all TCU channels for PWM use by default except channels 0/1 */ in jz4740_pwm_can_use_chn() 40 u32 pwm_channels_mask = GENMASK(chip->npwm - 1, 2); in jz4740_pwm_can_use_chn() 42 device_property_read_u32(pwmchip_parent(chip)->parent, in jz4740_pwm_can_use_chn() 43 "ingenic,pwm-channels-mask", in jz4740_pwm_can_use_chn() [all …]
|
| H A D | pwm-rzg2l-gpt.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Renesas RZ/G2L General PWM Timer (GPT) driver 8 …* https://www.renesas.com/eu/en/document/mah/rzg2l-group-rzg2lc-group-users-manual-hardware-0?lang… 11 * - Counter must be stopped before modifying Mode and Prescaler. 12 * - When PWM is disabled, the output is driven to inactive. 13 * - While the hardware supports both polarities, the driver (for now) 15 * - General PWM Timer (GPT) has 8 HW channels for PWM operations and 17 * - Each IO is modelled as an independent PWM channel. 18 * - When both channels are used, disabling the channel on one stops the 20 * - When both channels are used, the period of both IOs in the HW channel [all …]
|
| /linux/drivers/media/rc/ |
| H A D | pwm-ir-tx.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 8 #include <linux/pwm.h> 15 #include <media/rc-core.h> 17 #define DRIVER_NAME "pwm-ir-tx" 18 #define DEVICE_NAME "PWM IR Transmitter" 21 struct pwm_device *pwm; member 22 struct hrtimer timer; member 33 { .compatible = "pwm-ir-tx", }, 34 { .compatible = "nokia,n900-ir" }, 41 struct pwm_ir *pwm_ir = dev->priv; in pwm_ir_set_duty_cycle() [all …]
|
| /linux/Documentation/devicetree/bindings/pwm/ |
| H A D | ti,omap-dmtimer-pwm.yaml | 1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 3 --- 4 $id: http://devicetree.org/schemas/pwm/ti,omap-dmtimer-pwm.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: TI dual mode timer PWM controller 10 - Tony Lindgren <tony@atomide.com> 13 TI dual mode timer instances have an IO pin for PWM capability 16 - $ref: pwm.yaml# 20 const: ti,omap-dmtimer-pwm 22 "#pwm-cells": [all …]
|
| H A D | snps,dw-apb-timers-pwm2.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 4 --- 5 $id: http://devicetree.org/schemas/pwm/snps,dw-apb-timers-pwm2.yaml# 6 $schema: http://devicetree.org/meta-schemas/core.yaml# 8 title: Synopsys DW-APB timers PWM controller 11 - Ben Dooks <ben.dooks@sifive.com> 14 This describes the DesignWare APB timers module when used in the PWM 24 - $ref: pwm.yaml# 28 const: snps,dw-apb-timers-pwm2 33 "#pwm-cells": [all …]
|
| /linux/arch/arm/boot/dts/st/ |
| H A D | stm32f746.dtsi | 2 * Copyright 2015 - Maxime Coquelin <mcoquelin.stm32@gmail.com> 4 * This file is dual-licensed: you can use it either under the terms 43 #include "../armv7-m.dtsi" 44 #include <dt-bindings/clock/stm32fx-clock.h> 45 #include <dt-bindings/mfd/stm32f7-rcc.h> 46 #include <dt-bindings/interrupt-controller/irq.h> 49 #address-cells = <1>; 50 #size-cells = <1>; 53 clk_hse: clk-hse { 54 #clock-cells = <0>; [all …]
|
| H A D | stm32f429.dtsi | 2 * Copyright 2015 - Maxime Coquelin <mcoquelin.stm32@gmail.com> 4 * This file is dual-licensed: you can use it either under the terms 22 * MA 02110-1301 USA 48 #include "../armv7-m.dtsi" 49 #include <dt-bindings/clock/stm32fx-clock.h> 50 #include <dt-bindings/mfd/stm32f4-rcc.h> 53 #address-cells = <1>; 54 #size-cells = <1>; 57 clk_hse: clk-hse { 58 #clock-cells = <0>; [all …]
|
| /linux/Documentation/devicetree/bindings/mfd/ |
| H A D | st,stm32-lptimer.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/mfd/st,stm32-lptimer.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: STMicroelectronics STM32 Low-Power Timers 10 The STM32 Low-Power Timer (LPTIM) is a 16-bit timer that provides several 12 - PWM output (with programmable prescaler, configurable polarity) 13 - Trigger source for STM32 ADC/DAC (LPTIM_OUT) 14 - Several counter modes: 15 - quadrature encoder to detect angular position and direction of rotary [all …]
|
| /linux/Documentation/devicetree/bindings/timer/ |
| H A D | ingenic,tcu.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/timer/ingenic,tcu.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Ingenic SoCs Timer/Counter Unit (TCU) 11 Documentation/arch/mips/ingenic-tcu.rst. 14 - Paul Cercueil <paul@crapouillou.net> 21 - ingenic,jz4740-tcu 22 - ingenic,jz4725b-tcu 23 - ingenic,jz4760-tcu [all …]
|
| H A D | cdns,ttc.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/timer/cdns,ttc.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Cadence TTC - Triple Timer Counter 10 - Michal Simek <michal.simek@amd.com> 22 A list of 3 interrupts; one per timer channel. 27 power-domains: 30 timer-width: 33 Bit width of the timer, necessary if not 16. [all …]
|
| H A D | ti,timer-dm.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/timer/ti,timer-dm.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: TI dual-mode timer 10 - Tony Lindgren <tony@atomide.com> 13 The TI dual-mode timer is a general purpose timer with PWM capabilities. 18 - items: 19 - enum: 20 - ti,am335x-timer [all …]
|
| H A D | xlnx,xps-timer.yaml | 1 # SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause 3 --- 4 $id: http://devicetree.org/schemas/timer/xlnx,xps-timer.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Xilinx LogiCORE IP AXI Timer 10 - Sean Anderson <sean.anderson@seco.com> 15 const: xlnx,xps-timer-1.00.a 20 clock-names: 29 '#pwm-cells': true 31 xlnx,count-width: [all …]
|
| /linux/arch/arm/boot/dts/microchip/ |
| H A D | at91-kizbox.dts | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * at91-kizbox.dts - Device Tree file for Overkiz Kizbox board 5 * Copyright (C) 2012-2014 Boris BREZILLON <b.brezillon@overkiz.com> 6 * 2014-2015 Gaël PORTAY <g.portay@overkiz.com> 8 /dts-v1/; 10 #include <dt-bindings/pwm/pwm.h> 18 stdout-path = &dbgu; 27 clock-frequency = <18432000>; 31 gpio-keys { 32 compatible = "gpio-keys"; [all …]
|
| /linux/drivers/clocksource/ |
| H A D | samsung_pwm_timer.c | 1 // SPDX-License-Identifier: GPL-2.0-only 6 * samsung - Common hr-timer support (s3c and s5p) 79 static struct samsung_pwm_clocksource pwm; variable 92 reg = readl(pwm.base + REG_TCFG0); in samsung_timer_set_prescale() 94 reg |= (prescale - 1) << shift; in samsung_timer_set_prescale() 95 writel(reg, pwm.base + REG_TCFG0); in samsung_timer_set_prescale() 107 bits = (fls(divisor) - 1) - pwm.variant.div_base; in samsung_timer_set_divisor() 111 reg = readl(pwm.base + REG_TCFG1); in samsung_timer_set_divisor() 114 writel(reg, pwm.base + REG_TCFG1); in samsung_timer_set_divisor() 129 tcon = readl_relaxed(pwm.base + REG_TCON); in samsung_time_stop() [all …]
|
| /linux/Documentation/arch/mips/ |
| H A D | ingenic-tcu.rst | 1 .. SPDX-License-Identifier: GPL-2.0 4 Ingenic JZ47xx SoCs Timer/Counter Unit hardware 7 The Timer/Counter Unit (TCU) in Ingenic JZ47xx SoCs is a multi-function 9 counters, timers, or PWM. 11 - JZ4725B, JZ4750, JZ4755 only have six TCU channels. The other SoCs all 14 - JZ4725B introduced a separate channel, called Operating System Timer 15 (OST). It is a 32-bit programmable timer. On JZ4760B and above, it is 16 64-bit. 18 - Each one of the TCU channels has its own clock, which can be reparented to three 21 - The watchdog and OST hardware blocks also feature a TCSR register with the same [all …]
|
| /linux/arch/arm/boot/dts/intel/pxa/ |
| H A D | pxa25x.dtsi | 1 // SPDX-License-Identifier: GPL-2.0-or-later 6 #include "dt-bindings/clock/pxa-clock.h" 17 #address-cells = <1>; 18 #size-cells = <1>; 22 compatible = "marvell,pxa250-core-clocks"; 23 #clock-cells = <1>; 27 /* timer oscillator */ 29 compatible = "fixed-clock"; 30 #clock-cells = <0>; 31 clock-frequency = <3686400>; [all …]
|
| /linux/arch/arm64/boot/dts/ti/ |
| H A D | k3-am64-mcu.dtsi | 1 // SPDX-License-Identifier: GPL-2.0-only OR MIT 5 * Copyright (C) 2020-2024 Texas Instruments Incorporated - https://www.ti.com/ 10 * The MCU domain timer interrupts are routed only to the ESM module, 14 mcu_timer0: timer@4800000 { 15 compatible = "ti,am654-timer"; 18 clock-names = "fck"; 19 power-domains = <&k3_pds 35 TI_SCI_PD_EXCLUSIVE>; 20 ti,timer-pwm; 24 mcu_timer1: timer@4810000 { 25 compatible = "ti,am654-timer"; [all …]
|
| H A D | k3-am62-mcu.dtsi | 1 // SPDX-License-Identifier: GPL-2.0-only OR MIT 5 * Copyright (C) 2020-2024 Texas Instruments Incorporated - https://www.ti.com/ 10 bootph-all; 11 compatible = "pinctrl-single"; 13 #pinctrl-cells = <1>; 14 pinctrl-single,register-width = <32>; 15 pinctrl-single,function-mask = <0xffffffff>; 19 bootph-pre-ram; 20 compatible = "ti,j721e-esm"; 23 ti,esm-pins = <0>, <1>, <2>, <85>; [all …]
|
| /linux/arch/arm/boot/dts/rockchip/ |
| H A D | rv1126.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 6 #include <dt-bindings/clock/rockchip,rv1126-cru.h> 7 #include <dt-bindings/gpio/gpio.h> 8 #include <dt-bindings/interrupt-controller/arm-gic.h> 9 #include <dt-bindings/interrupt-controller/irq.h> 10 #include <dt-bindings/pinctrl/rockchip.h> 11 #include <dt-bindings/power/rockchip,rv1126-power.h> 12 #include <dt-bindings/soc/rockchip,boot-mode.h> 15 #address-cells = <1>; 16 #size-cells = <1>; [all …]
|