| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/mfd/ |
| 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 bindings 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 …]
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/mfd/ |
| 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 …]
|
| /kernel/linux/linux-6.6/drivers/iio/trigger/ |
| D | stm32-lptimer-trigger.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * STM32 Low-Power Timer Trigger driver 9 * Inspired by Benjamin Gaignard's stm32-timer-trigger driver 12 #include <linux/iio/timer/stm32-lptim-trigger.h> 13 #include <linux/mfd/stm32-lptimer.h> 19 /* List Low-Power Timer triggers */ 34 if (indio_dev->modes & INDIO_HARDWARE_TRIGGERED) in stm32_lptim_validate_device() 37 return -EINVAL; in stm32_lptim_validate_device() 48 * return true if the trigger is a valid STM32 IIO Low-Power Timer Trigger 53 return (trig->ops == &stm32_lptim_trigger_ops); in is_stm32_lptim_trigger() [all …]
|
| D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 7 menu "Triggers - standalone" 10 tristate "High resolution timer trigger" 17 module will be called iio-trig-hrtimer. 26 module will be called iio-trig-interrupt. 29 tristate "STM32 Low-Power Timer Trigger" 32 Select this option to enable STM32 Low-Power Timer Trigger. 33 This can be used as trigger source for STM32 internal ADC 37 module will be called stm32-lptimer-trigger. 40 tristate "STM32 Timer Trigger" [all …]
|
| D | Makefile | 1 # SPDX-License-Identifier: GPL-2.0 3 # Makefile for triggers not associated with iio-devices 8 obj-$(CONFIG_IIO_HRTIMER_TRIGGER) += iio-trig-hrtimer.o 9 obj-$(CONFIG_IIO_INTERRUPT_TRIGGER) += iio-trig-interrupt.o 10 obj-$(CONFIG_IIO_STM32_LPTIMER_TRIGGER) += stm32-lptimer-trigger.o 11 obj-$(CONFIG_IIO_STM32_TIMER_TRIGGER) += stm32-timer-trigger.o 12 obj-$(CONFIG_IIO_SYSFS_TRIGGER) += iio-trig-sysfs.o 13 obj-$(CONFIG_IIO_TIGHTLOOP_TRIGGER) += iio-trig-loop.o
|
| /kernel/linux/linux-5.10/drivers/iio/trigger/ |
| D | stm32-lptimer-trigger.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * STM32 Low-Power Timer Trigger driver 9 * Inspired by Benjamin Gaignard's stm32-timer-trigger driver 12 #include <linux/iio/timer/stm32-lptim-trigger.h> 13 #include <linux/mfd/stm32-lptimer.h> 17 /* List Low-Power Timer triggers */ 32 if (indio_dev->modes & INDIO_HARDWARE_TRIGGERED) in stm32_lptim_validate_device() 35 return -EINVAL; in stm32_lptim_validate_device() 46 * return true if the trigger is a valid STM32 IIO Low-Power Timer Trigger 51 return (trig->ops == &stm32_lptim_trigger_ops); in is_stm32_lptim_trigger() [all …]
|
| D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 7 menu "Triggers - standalone" 10 tristate "High resolution timer trigger" 17 module will be called iio-trig-hrtimer. 26 module will be called iio-trig-interrupt. 29 tristate "STM32 Low-Power Timer Trigger" 32 Select this option to enable STM32 Low-Power Timer Trigger. 33 This can be used as trigger source for STM32 internal ADC 37 module will be called stm32-lptimer-trigger. 40 tristate "STM32 Timer Trigger" [all …]
|
| D | Makefile | 1 # SPDX-License-Identifier: GPL-2.0 3 # Makefile for triggers not associated with iio-devices 8 obj-$(CONFIG_IIO_HRTIMER_TRIGGER) += iio-trig-hrtimer.o 9 obj-$(CONFIG_IIO_INTERRUPT_TRIGGER) += iio-trig-interrupt.o 10 obj-$(CONFIG_IIO_STM32_LPTIMER_TRIGGER) += stm32-lptimer-trigger.o 11 obj-$(CONFIG_IIO_STM32_TIMER_TRIGGER) += stm32-timer-trigger.o 12 obj-$(CONFIG_IIO_SYSFS_TRIGGER) += iio-trig-sysfs.o 13 obj-$(CONFIG_IIO_TIGHTLOOP_TRIGGER) += iio-trig-loop.o
|
| /kernel/linux/linux-6.6/drivers/mfd/ |
| D | stm32-lptimer.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * STM32 Low-Power Timer parent driver. 6 * Inspired by Benjamin Gaignard's stm32-timers driver 9 #include <linux/mfd/stm32-lptimer.h> 31 * Low-Power Timer supports it. in stm32_lptimer_detect_encoder() 33 ret = regmap_update_bits(ddata->regmap, STM32_LPTIM_CFGR, in stm32_lptimer_detect_encoder() 38 ret = regmap_read(ddata->regmap, STM32_LPTIM_CFGR, &val); in stm32_lptimer_detect_encoder() 42 ret = regmap_update_bits(ddata->regmap, STM32_LPTIM_CFGR, in stm32_lptimer_detect_encoder() 47 ddata->has_encoder = !!(val & STM32_LPTIM_ENC); in stm32_lptimer_detect_encoder() 54 struct device *dev = &pdev->dev; in stm32_lptimer_probe() [all …]
|
| /kernel/linux/linux-5.10/drivers/mfd/ |
| D | stm32-lptimer.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * STM32 Low-Power Timer parent driver. 6 * Inspired by Benjamin Gaignard's stm32-timers driver 9 #include <linux/mfd/stm32-lptimer.h> 30 * Low-Power Timer supports it. in stm32_lptimer_detect_encoder() 32 ret = regmap_update_bits(ddata->regmap, STM32_LPTIM_CFGR, in stm32_lptimer_detect_encoder() 37 ret = regmap_read(ddata->regmap, STM32_LPTIM_CFGR, &val); in stm32_lptimer_detect_encoder() 41 ret = regmap_update_bits(ddata->regmap, STM32_LPTIM_CFGR, in stm32_lptimer_detect_encoder() 46 ddata->has_encoder = !!(val & STM32_LPTIM_ENC); in stm32_lptimer_detect_encoder() 53 struct device *dev = &pdev->dev; in stm32_lptimer_probe() [all …]
|
| /kernel/linux/linux-5.10/arch/arm/boot/dts/ |
| D | stm32h743.dtsi | 2 * Copyright 2017 - Alexandre Torgue <alexandre.torgue@st.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/stm32h7-clks.h> 45 #include <dt-bindings/mfd/stm32h7-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 …]
|
| D | stm32mp151.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 3 * Copyright (C) STMicroelectronics 2017 - All Rights Reserved 6 #include <dt-bindings/interrupt-controller/arm-gic.h> 7 #include <dt-bindings/clock/stm32mp1-clks.h> 8 #include <dt-bindings/reset/stm32mp1-resets.h> 11 #address-cells = <1>; 12 #size-cells = <1>; 15 #address-cells = <1>; 16 #size-cells = <0>; 19 compatible = "arm,cortex-a7"; [all …]
|
| /kernel/linux/linux-6.6/arch/arm/boot/dts/st/ |
| D | stm32mp131.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 3 * Copyright (C) STMicroelectronics 2021 - All Rights Reserved 6 #include <dt-bindings/interrupt-controller/arm-gic.h> 7 #include <dt-bindings/clock/stm32mp13-clks.h> 8 #include <dt-bindings/reset/stm32mp13-resets.h> 11 #address-cells = <1>; 12 #size-cells = <1>; 15 #address-cells = <1>; 16 #size-cells = <0>; 19 compatible = "arm,cortex-a7"; [all …]
|
| D | stm32h743.dtsi | 2 * Copyright 2017 - Alexandre Torgue <alexandre.torgue@st.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/stm32h7-clks.h> 45 #include <dt-bindings/mfd/stm32h7-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 …]
|
| D | stm32mp151.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 3 * Copyright (C) STMicroelectronics 2017 - All Rights Reserved 6 #include <dt-bindings/interrupt-controller/arm-gic.h> 7 #include <dt-bindings/clock/stm32mp1-clks.h> 8 #include <dt-bindings/reset/stm32mp1-resets.h> 11 #address-cells = <1>; 12 #size-cells = <1>; 15 #address-cells = <1>; 16 #size-cells = <0>; 19 compatible = "arm,cortex-a7"; [all …]
|
| /kernel/linux/linux-5.10/drivers/clocksource/ |
| D | timer-stm32-lp.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Copyright (C) STMicroelectronics 2019 - All Rights Reserved 11 #include <linux/mfd/stm32-lptimer.h> 40 regmap_write(priv->reg, STM32_LPTIM_CR, 0); in stm32_clkevent_lp_shutdown() 41 regmap_write(priv->reg, STM32_LPTIM_IER, 0); in stm32_clkevent_lp_shutdown() 43 regmap_write(priv->reg, STM32_LPTIM_ICR, STM32_LPTIM_ARRMCF); in stm32_clkevent_lp_shutdown() 54 /* disable LPTIMER to be able to write into IER register*/ in stm32_clkevent_lp_set_timer() 55 regmap_write(priv->reg, STM32_LPTIM_CR, 0); in stm32_clkevent_lp_set_timer() 57 regmap_write(priv->reg, STM32_LPTIM_IER, STM32_LPTIM_ARRMIE); in stm32_clkevent_lp_set_timer() 58 /* enable LPTIMER to be able to write into ARR register */ in stm32_clkevent_lp_set_timer() [all …]
|
| /kernel/linux/linux-6.6/drivers/clocksource/ |
| D | timer-stm32-lp.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Copyright (C) STMicroelectronics 2019 - All Rights Reserved 11 #include <linux/mfd/stm32-lptimer.h> 40 regmap_write(priv->reg, STM32_LPTIM_CR, 0); in stm32_clkevent_lp_shutdown() 41 regmap_write(priv->reg, STM32_LPTIM_IER, 0); in stm32_clkevent_lp_shutdown() 43 regmap_write(priv->reg, STM32_LPTIM_ICR, STM32_LPTIM_ARRMCF); in stm32_clkevent_lp_shutdown() 54 /* disable LPTIMER to be able to write into IER register*/ in stm32_clkevent_lp_set_timer() 55 regmap_write(priv->reg, STM32_LPTIM_CR, 0); in stm32_clkevent_lp_set_timer() 57 regmap_write(priv->reg, STM32_LPTIM_IER, STM32_LPTIM_ARRMIE); in stm32_clkevent_lp_set_timer() 58 /* enable LPTIMER to be able to write into ARR register */ in stm32_clkevent_lp_set_timer() [all …]
|
| /kernel/linux/linux-5.10/drivers/counter/ |
| D | stm32-lptimer-cnt.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * STM32 Low-Power Timer Encoder and Counter driver 9 * Inspired by 104-quad-8 and stm32-timer-trigger drivers. 15 #include <linux/mfd/stm32-lptimer.h> 37 ret = regmap_read(priv->regmap, STM32_LPTIM_CR, &val); in stm32_lptim_is_enabled() 51 ret = regmap_write(priv->regmap, STM32_LPTIM_CR, val); in stm32_lptim_set_enable_state() 56 clk_disable(priv->clk); in stm32_lptim_set_enable_state() 57 priv->enabled = false; in stm32_lptim_set_enable_state() 61 /* LP timer must be enabled before writing CMP & ARR */ in stm32_lptim_set_enable_state() 62 ret = regmap_write(priv->regmap, STM32_LPTIM_ARR, priv->ceiling); in stm32_lptim_set_enable_state() [all …]
|
| D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 16 tristate "ACCES 104-QUAD-8 driver" 20 Say yes here to build support for the ACCES 104-QUAD-8 quadrature 21 encoder counter/interface device family (104-QUAD-8, 104-QUAD-4). 25 104-QUAD-8 counters have a 25-bit range, only the lower 24 bits may be 33 tristate "STM32 Timer encoder counter driver" 36 Select this option to enable STM32 Timer quadrature encoder 40 module will be called stm32-timer-cnt. 43 tristate "STM32 LP Timer encoder counter driver" 46 Select this option to enable STM32 Low-Power Timer quadrature encoder [all …]
|
| D | Makefile | 1 # SPDX-License-Identifier: GPL-2.0-only 6 obj-$(CONFIG_COUNTER) += counter.o 8 obj-$(CONFIG_104_QUAD_8) += 104-quad-8.o 9 obj-$(CONFIG_STM32_TIMER_CNT) += stm32-timer-cnt.o 10 obj-$(CONFIG_STM32_LPTIMER_CNT) += stm32-lptimer-cnt.o 11 obj-$(CONFIG_TI_EQEP) += ti-eqep.o 12 obj-$(CONFIG_FTM_QUADDEC) += ftm-quaddec.o 13 obj-$(CONFIG_MICROCHIP_TCB_CAPTURE) += microchip-tcb-capture.o
|
| /kernel/linux/linux-6.6/drivers/counter/ |
| D | stm32-lptimer-cnt.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * STM32 Low-Power Timer Encoder and Counter driver 9 * Inspired by 104-quad-8 and stm32-timer-trigger drivers. 15 #include <linux/mfd/stm32-lptimer.h> 37 ret = regmap_read(priv->regmap, STM32_LPTIM_CR, &val); in stm32_lptim_is_enabled() 51 ret = regmap_write(priv->regmap, STM32_LPTIM_CR, val); in stm32_lptim_set_enable_state() 56 clk_disable(priv->clk); in stm32_lptim_set_enable_state() 57 priv->enabled = false; in stm32_lptim_set_enable_state() 61 ret = clk_enable(priv->clk); in stm32_lptim_set_enable_state() 65 /* LP timer must be enabled before writing CMP & ARR */ in stm32_lptim_set_enable_state() [all …]
|
| D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 14 Interval Timer (PIT). The Intel 825x family of chips was first 31 tristate "ACCES 104-QUAD-8 driver" 37 Say yes here to build support for the ACCES 104-QUAD-8 quadrature 38 encoder counter/interface device family (104-QUAD-8, 104-QUAD-4). 41 operation on the respective count value attribute. The 104-QUAD-8 50 tristate "Flex Timer Module Quadrature decoder driver" 54 Select this option to enable the Flex Timer Quadrature decoder 58 module will be called ftm-quaddec. 69 will be called intel-qep. [all …]
|
| D | Makefile | 1 # SPDX-License-Identifier: GPL-2.0-only 6 obj-$(CONFIG_COUNTER) += counter.o 7 counter-y := counter-core.o counter-sysfs.o counter-chrdev.o 9 obj-$(CONFIG_I8254) += i8254.o 10 obj-$(CONFIG_104_QUAD_8) += 104-quad-8.o 11 obj-$(CONFIG_INTERRUPT_CNT) += interrupt-cnt.o 12 obj-$(CONFIG_RZ_MTU3_CNT) += rz-mtu3-cnt.o 13 obj-$(CONFIG_STM32_TIMER_CNT) += stm32-timer-cnt.o 14 obj-$(CONFIG_STM32_LPTIMER_CNT) += stm32-lptimer-cnt.o 15 obj-$(CONFIG_TI_EQEP) += ti-eqep.o [all …]
|
| /kernel/linux/linux-5.10/drivers/pwm/ |
| 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> 31 /* STM32 Low-Power Timer is preceded by a configurable power-of-2 prescaler */ 47 if (!state->enabled) { in stm32_pwm_lp_apply() 49 /* Disable LP timer */ in stm32_pwm_lp_apply() 50 ret = regmap_write(priv->regmap, STM32_LPTIM_CR, 0); in stm32_pwm_lp_apply() 54 clk_disable(priv->clk); in stm32_pwm_lp_apply() 60 div = (unsigned long long)clk_get_rate(priv->clk) * state->period; in stm32_pwm_lp_apply() [all …]
|
| /kernel/linux/linux-6.6/drivers/pwm/ |
| 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> 31 /* STM32 Low-Power Timer is preceded by a configurable power-of-2 prescaler */ 47 if (!state->enabled) { in stm32_pwm_lp_apply() 49 /* Disable LP timer */ in stm32_pwm_lp_apply() 50 ret = regmap_write(priv->regmap, STM32_LPTIM_CR, 0); in stm32_pwm_lp_apply() 54 clk_disable(priv->clk); in stm32_pwm_lp_apply() 60 div = (unsigned long long)clk_get_rate(priv->clk) * state->period; in stm32_pwm_lp_apply() [all …]
|