@@ -18,6 +18,14 @@ LOG_MODULE_REGISTER(clock_control);
18
18
static int mcux_lpc_syscon_clock_control_on (const struct device * dev ,
19
19
clock_control_subsys_t sub_system )
20
20
{
21
+ #if defined(CONFIG_CAN_MCUX_MCAN )
22
+ uint32_t clock_name = (uint32_t )sub_system ;
23
+
24
+ if (clock_name == MCUX_MCAN_CLK ) {
25
+ CLOCK_EnableClock (kCLOCK_Mcan );
26
+ }
27
+ #endif /* defined(CONFIG_CAN_MCUX_MCAN) */
28
+
21
29
return 0 ;
22
30
}
23
31
@@ -35,11 +43,15 @@ static int mcux_lpc_syscon_clock_control_get_subsys_rate(
35
43
#if defined(CONFIG_I2C_MCUX_FLEXCOMM ) || \
36
44
defined(CONFIG_SPI_MCUX_FLEXCOMM ) || \
37
45
defined(CONFIG_UART_MCUX_FLEXCOMM ) || \
38
- defined(CONFIG_COUNTER_MCUX_CTIMER )
46
+ defined(CONFIG_COUNTER_MCUX_CTIMER ) || \
47
+ defined(CONFIG_CAN_MCUX_MCAN )
39
48
40
49
uint32_t clock_name = (uint32_t ) sub_system ;
41
50
42
51
switch (clock_name ) {
52
+ #if defined(CONFIG_I2C_MCUX_FLEXCOMM ) || \
53
+ defined(CONFIG_SPI_MCUX_FLEXCOMM ) || \
54
+ defined(CONFIG_UART_MCUX_FLEXCOMM )
43
55
case MCUX_FLEXCOMM0_CLK :
44
56
* rate = CLOCK_GetFlexCommClkFreq (0 );
45
57
break ;
@@ -84,6 +96,11 @@ static int mcux_lpc_syscon_clock_control_get_subsys_rate(
84
96
* rate = CLOCK_GetSdioClkFreq (1 );
85
97
break ;
86
98
#endif
99
+ #if defined(CONFIG_CAN_MCUX_MCAN )
100
+ case MCUX_MCAN_CLK :
101
+ * rate = CLOCK_GetMCanClkFreq ();
102
+ break ;
103
+ #endif /* defined(CONFIG_CAN_MCUX_MCAN) */
87
104
#if defined(CONFIG_COUNTER_MCUX_CTIMER )
88
105
case (MCUX_CTIMER0_CLK + MCUX_CTIMER_CLK_OFFSET ):
89
106
* rate = CLOCK_GetCTimerClkFreq (0 );
@@ -102,6 +119,7 @@ static int mcux_lpc_syscon_clock_control_get_subsys_rate(
102
119
break ;
103
120
#endif
104
121
}
122
+ #endif
105
123
#endif
106
124
107
125
return 0 ;
0 commit comments