Lines Matching +full:stm32 +full:- +full:timer

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()
59 trig = devm_iio_trigger_alloc(priv->dev, "%s", priv->trg); in stm32_lptim_setup_trig()
61 return -ENOMEM; in stm32_lptim_setup_trig()
63 trig->dev.parent = priv->dev->parent; in stm32_lptim_setup_trig()
64 trig->ops = &stm32_lptim_trigger_ops; in stm32_lptim_setup_trig()
67 return devm_iio_trigger_register(priv->dev, trig); in stm32_lptim_setup_trig()
76 priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); in stm32_lptim_trigger_probe()
78 return -ENOMEM; in stm32_lptim_trigger_probe()
80 if (of_property_read_u32(pdev->dev.of_node, "reg", &index)) in stm32_lptim_trigger_probe()
81 return -EINVAL; in stm32_lptim_trigger_probe()
84 return -EINVAL; in stm32_lptim_trigger_probe()
86 priv->dev = &pdev->dev; in stm32_lptim_trigger_probe()
87 priv->trg = stm32_lptim_triggers[index]; in stm32_lptim_trigger_probe()
99 { .compatible = "st,stm32-lptimer-trigger", },
107 .name = "stm32-lptimer-trigger",
114 MODULE_ALIAS("platform:stm32-lptimer-trigger");
115 MODULE_DESCRIPTION("STMicroelectronics STM32 LPTIM trigger driver");