/Linux-v5.10/arch/arm/boot/dts/ |
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> 48 #address-cells = <1>; 49 #size-cells = <1>; 52 clk_hse: clk-hse { 53 #clock-cells = <0>; 54 compatible = "fixed-clock"; [all …]
|
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 …]
|
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 …]
|
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 …]
|
/Linux-v5.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 …]
|
D | st,stm32-timers.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/mfd/st,stm32-timers.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: STMicroelectronics STM32 Timers bindings 10 This hardware block provides 3 types of timer along with PWM functionality: 11 - advanced-control timers consist of a 16-bit auto-reload counter driven 14 - general-purpose timers consist of a 16-bit or 32-bit auto-reload counter 16 - basic timers consist of a 16-bit auto-reload counter driven by a 20 - Benjamin Gaignard <benjamin.gaignard@st.com> [all …]
|
/Linux-v5.10/drivers/iio/trigger/ |
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 | 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 | stm32-timer-trigger.c | 1 // SPDX-License-Identifier: GPL-2.0 11 #include <linux/iio/timer/stm32-timer-trigger.h> 13 #include <linux/mfd/stm32-timers.h> 21 /* List the triggers created by each timer */ 42 /* List the triggers accepted by each timer */ 49 { }, /* timer 6 */ 50 { }, /* timer 7 */ 53 { }, /* timer 10 */ 54 { }, /* timer 11 */ 64 { }, /* timer 6 */ [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
|
/Linux-v5.10/drivers/counter/ |
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 | stm32-timer-cnt.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * STM32 Timer Encoder and Counter driver 11 #include <linux/mfd/stm32-timers.h> 40 * enum stm32_count_function - enumerates stm32 timer counter encoder modes 47 STM32_COUNT_SLAVE_MODE_DISABLED = -1, 62 struct stm32_timer_cnt *const priv = counter->priv; in stm32_count_read() 65 regmap_read(priv->regmap, TIM_CNT, &cnt); in stm32_count_read() 75 struct stm32_timer_cnt *const priv = counter->priv; in stm32_count_write() 77 if (val > priv->ceiling) in stm32_count_write() 78 return -EINVAL; in stm32_count_write() [all …]
|
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. 16 #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 | 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
|
/Linux-v5.10/Documentation/devicetree/bindings/timer/ |
D | st,stm32-timer.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/timer/st,stm32-timer.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: STMicroelectronics STM32 general-purpose 16 and 32 bits timers bindings 10 - Benjamin Gaignard <benjamin.gaignard@st.com> 14 const: st,stm32-timer 29 - compatible 30 - reg 31 - interrupts [all …]
|
/Linux-v5.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 …]
|
D | stm32-timers.c | 1 // SPDX-License-Identifier: GPL-2.0 8 #include <linux/mfd/stm32-timers.h> 32 status = dmaengine_tx_status(dma->chan, dma->chan->cookie, &state); in stm32_timers_dma_done() 34 complete(&dma->completion); in stm32_timers_dma_done() 38 * stm32_timers_dma_burst_read - Read from timers registers using DMA. 40 * Read from STM32 timers registers using DMA on a single event. 56 struct regmap *regmap = ddata->regmap; in stm32_timers_dma_burst_read() 57 struct stm32_timers_dma *dma = &ddata->dma; in stm32_timers_dma_burst_read() 69 return -EINVAL; in stm32_timers_dma_burst_read() 73 return -EINVAL; in stm32_timers_dma_burst_read() [all …]
|
/Linux-v5.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 …]
|
D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 3 bool "Pulse-Width Modulation (PWM) Support" 5 Generic Pulse-Width Modulation (PWM) support. 7 In Pulse-Width Modulation, a variation of the width of pulses 52 will be called pwm-ab8500. 62 will be called pwm-atmel. 70 (Atmel High-end LCD Controller). This PWM output is mainly used 74 will be called pwm-atmel-hlcdc. 80 Generic PWM framework driver for Atmel Timer Counter Block. 82 A Timer Counter Block provides 6 PWM devices grouped by 2. [all …]
|
/Linux-v5.10/drivers/clocksource/ |
D | timer-stm32.c | 1 // SPDX-License-Identifier: GPL-2.0-only 4 * Author: Maxime Coquelin <mcoquelin.stm32@gmail.com> 6 * Inspired by time-efm32.c from Uwe Kleine-Koenig 23 #include "timer-of.h" 54 * stm32_timer_of_bits_set - set accessor helper 58 * Accessor helper to set the number of bits in the timer-of private 64 struct stm32_timer_private *pd = to->private_data; in stm32_timer_of_bits_set() 66 pd->bits = bits; in stm32_timer_of_bits_set() 70 * stm32_timer_of_bits_get - get accessor helper 73 * Accessor helper to get the number of bits in the timer-of private [all …]
|
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() 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() 59 regmap_write(priv->reg, STM32_LPTIM_CR, STM32_LPTIM_ENABLE); in stm32_clkevent_lp_set_timer() 61 regmap_write(priv->reg, STM32_LPTIM_ARR, evt); in stm32_clkevent_lp_set_timer() [all …]
|
D | Makefile | 1 # SPDX-License-Identifier: GPL-2.0 2 obj-$(CONFIG_TIMER_OF) += timer-of.o 3 obj-$(CONFIG_TIMER_PROBE) += timer-probe.o 4 obj-$(CONFIG_ATMEL_PIT) += timer-atmel-pit.o 5 obj-$(CONFIG_ATMEL_ST) += timer-atmel-st.o 6 obj-$(CONFIG_ATMEL_TCB_CLKSRC) += timer-atmel-tcb.o 7 obj-$(CONFIG_X86_PM_TIMER) += acpi_pm.o 8 obj-$(CONFIG_SCx200HR_TIMER) += scx200_hrt.o 9 obj-$(CONFIG_CS5535_CLOCK_EVENT_SRC) += timer-cs5535.o 10 obj-$(CONFIG_CLKSRC_JCORE_PIT) += jcore-pit.o [all …]
|
/Linux-v5.10/include/linux/mfd/ |
D | stm32-lptimer.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 3 * STM32 Low-Power Timer parent driver. 6 * Inspired by Benjamin Gaignard's stm32-timers driver 24 /* STM32_LPTIM_ISR - bit fields */ 29 /* STM32_LPTIM_ICR - bit fields */ 33 /* STM32_LPTIM_IER - bit flieds */ 36 /* STM32_LPTIM_CR - bit fields */ 41 /* STM32_LPTIM_CFGR - bit fields */ 52 * struct stm32_lptimer - STM32 Low-Power Timer data assigned by parent device 55 * @has_encoder: indicates this Low-Power Timer supports encoder mode
|
/Linux-v5.10/Documentation/devicetree/bindings/clock/ |
D | st,stm32h7-rcc.txt | 6 Please refer to clock-bindings.txt for common clock controller binding usage. 10 - compatible: Should be: 11 "st,stm32h743-rcc" 13 - reg: should be register base and length as documented in the 16 - #reset-cells: 1, see below 18 - #clock-cells : from common clock binding; shall be set to 1 20 - clocks: External oscillator clock phandle 21 - high speed external clock signal (HSE) 22 - low speed external clock signal (LSE) 23 - external I2S clock (I2S_CKIN) [all …]
|
/Linux-v5.10/drivers/mmc/host/ |
D | mmci.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 3 * linux/drivers/mmc/host/mmci.h - ARM PrimeCell MMCI PL180/1 driver 24 * The STM32 sdmmc does not have PWR_UP/OD/ROD 58 /* Modified on STM32 sdmmc */ 93 /* Command register in STM32 sdmmc versions */ 131 /* Control register extensions in STM32 versions */ 165 /* Extended status bits for the STM32 variants */ 186 /* Extended clear bits for the STM32 variants */ 217 /* Extended status bits for the STM32 variants */ 224 /* STM32 sdmmc registers for IDMA (Internal DMA) */ [all …]
|