mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-10-23 07:23:12 +02:00
Second set of Counter updates for 6.16
Adds compatible for STM32MP25 SoC and enables respective encoder capability for stm32-timer-cnt. Implements watch_validate callback for microchip-tcb-capture. -----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQSNN83d4NIlKPjon7a1SFbKvhIjKwUCaDBvtAAKCRC1SFbKvhIj K03PAP46u3SlttQbm2AqzEOMxNSX68a8Ll36BBGLniYsjgxnCgD9HvAlXt0IRE9V 4rmnq/Hdvlx2Ib7sts6/lVcq/Db7AQY= =9ov0 -----END PGP SIGNATURE----- Merge tag 'counter-updates-for-6.16b' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/wbg/counter into char-misc-next William writes: Second set of Counter updates for 6.16 Adds compatible for STM32MP25 SoC and enables respective encoder capability for stm32-timer-cnt. Implements watch_validate callback for microchip-tcb-capture. * tag 'counter-updates-for-6.16b' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/wbg/counter: counter: microchip-tcb-capture: Add watch validation support counter: stm32-timer-cnt: add support for stm32mp25
This commit is contained in:
commit
1b56e7d465
|
@ -337,6 +337,28 @@ static struct counter_comp mchp_tc_count_ext[] = {
|
|||
COUNTER_COMP_COMPARE(mchp_tc_count_compare_read, mchp_tc_count_compare_write),
|
||||
};
|
||||
|
||||
static int mchp_tc_watch_validate(struct counter_device *counter,
|
||||
const struct counter_watch *watch)
|
||||
{
|
||||
if (watch->channel == COUNTER_MCHP_EVCHN_CV || watch->channel == COUNTER_MCHP_EVCHN_RA)
|
||||
switch (watch->event) {
|
||||
case COUNTER_EVENT_CHANGE_OF_STATE:
|
||||
case COUNTER_EVENT_OVERFLOW:
|
||||
case COUNTER_EVENT_CAPTURE:
|
||||
return 0;
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (watch->channel == COUNTER_MCHP_EVCHN_RB && watch->event == COUNTER_EVENT_CAPTURE)
|
||||
return 0;
|
||||
|
||||
if (watch->channel == COUNTER_MCHP_EVCHN_RC && watch->event == COUNTER_EVENT_THRESHOLD)
|
||||
return 0;
|
||||
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
static struct counter_count mchp_tc_counts[] = {
|
||||
{
|
||||
.id = 0,
|
||||
|
@ -356,7 +378,8 @@ static const struct counter_ops mchp_tc_ops = {
|
|||
.function_read = mchp_tc_count_function_read,
|
||||
.function_write = mchp_tc_count_function_write,
|
||||
.action_read = mchp_tc_count_action_read,
|
||||
.action_write = mchp_tc_count_action_write
|
||||
.action_write = mchp_tc_count_action_write,
|
||||
.watch_validate = mchp_tc_watch_validate,
|
||||
};
|
||||
|
||||
static const struct atmel_tcb_config tcb_rm9200_config = {
|
||||
|
|
|
@ -669,12 +669,14 @@ static void stm32_timer_cnt_detect_channels(struct device *dev,
|
|||
dev_dbg(dev, "has %d cc channels\n", priv->nchannels);
|
||||
}
|
||||
|
||||
/* encoder supported on TIM1 TIM2 TIM3 TIM4 TIM5 TIM8 */
|
||||
#define STM32_TIM_ENCODER_SUPPORTED (BIT(0) | BIT(1) | BIT(2) | BIT(3) | BIT(4) | BIT(7))
|
||||
/* encoder supported on TIM1 TIM2 TIM3 TIM4 TIM5 TIM8 TIM20 */
|
||||
#define STM32_TIM_ENCODER_SUPPORTED (BIT(0) | BIT(1) | BIT(2) | BIT(3) | BIT(4) | BIT(7) | \
|
||||
BIT(19))
|
||||
|
||||
static const char * const stm32_timer_trigger_compat[] = {
|
||||
"st,stm32-timer-trigger",
|
||||
"st,stm32h7-timer-trigger",
|
||||
"st,stm32mp25-timer-trigger",
|
||||
};
|
||||
|
||||
static int stm32_timer_cnt_probe_encoder(struct device *dev,
|
||||
|
@ -846,6 +848,7 @@ static SIMPLE_DEV_PM_OPS(stm32_timer_cnt_pm_ops, stm32_timer_cnt_suspend,
|
|||
|
||||
static const struct of_device_id stm32_timer_cnt_of_match[] = {
|
||||
{ .compatible = "st,stm32-timer-counter", },
|
||||
{ .compatible = "st,stm32mp25-timer-counter", },
|
||||
{},
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, stm32_timer_cnt_of_match);
|
||||
|
|
Loading…
Reference in New Issue
Block a user