Skip to content

Commit aeabe6c

Browse files
mmahadevan108dleach02
authored andcommitted
driver: clock: Update MCUX Syscon clock control driver
1. Update to add support for Flexcomm8-13. 2. Fix the clock control driver, the enclosing #define was incorrect. 3. Identify HS_SPI port using the appropriate Register define Signed-off-by: Mahesh Mahadevan <[email protected]>
1 parent 83af6e6 commit aeabe6c

File tree

2 files changed

+40
-20
lines changed

2 files changed

+40
-20
lines changed

drivers/clock_control/clock_control_mcux_syscon.c

+26-13
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2020, NXP
2+
* Copyright (c) 2020-22, NXP
33
*
44
* SPDX-License-Identifier: Apache-2.0
55
*/
@@ -40,15 +40,10 @@ static int mcux_lpc_syscon_clock_control_get_subsys_rate(
4040
clock_control_subsys_t sub_system,
4141
uint32_t *rate)
4242
{
43-
#if defined(CONFIG_I2C_MCUX_FLEXCOMM) || \
44-
defined(CONFIG_SPI_MCUX_FLEXCOMM) || \
45-
defined(CONFIG_UART_MCUX_FLEXCOMM) || \
46-
defined(CONFIG_COUNTER_MCUX_CTIMER) || \
47-
defined(CONFIG_CAN_MCUX_MCAN)
48-
4943
uint32_t clock_name = (uint32_t) sub_system;
5044

5145
switch (clock_name) {
46+
5247
#if defined(CONFIG_I2C_MCUX_FLEXCOMM) || \
5348
defined(CONFIG_SPI_MCUX_FLEXCOMM) || \
5449
defined(CONFIG_UART_MCUX_FLEXCOMM)
@@ -76,18 +71,36 @@ static int mcux_lpc_syscon_clock_control_get_subsys_rate(
7671
case MCUX_FLEXCOMM7_CLK:
7772
*rate = CLOCK_GetFlexCommClkFreq(7);
7873
break;
74+
case MCUX_FLEXCOMM8_CLK:
75+
*rate = CLOCK_GetFlexCommClkFreq(8);
76+
break;
77+
case MCUX_FLEXCOMM9_CLK:
78+
*rate = CLOCK_GetFlexCommClkFreq(9);
79+
break;
80+
case MCUX_FLEXCOMM10_CLK:
81+
*rate = CLOCK_GetFlexCommClkFreq(10);
82+
break;
83+
case MCUX_FLEXCOMM11_CLK:
84+
*rate = CLOCK_GetFlexCommClkFreq(11);
85+
break;
86+
case MCUX_FLEXCOMM12_CLK:
87+
*rate = CLOCK_GetFlexCommClkFreq(12);
88+
break;
89+
case MCUX_FLEXCOMM13_CLK:
90+
*rate = CLOCK_GetFlexCommClkFreq(13);
91+
break;
7992
case MCUX_PMIC_I2C_CLK:
8093
*rate = CLOCK_GetFlexCommClkFreq(15);
8194
break;
8295
case MCUX_HS_SPI_CLK:
83-
#if defined(FSL_FEATURE_FLEXCOMM8_SPI_INDEX)
96+
#if defined(SYSCON_HSLSPICLKSEL_SEL_MASK)
8497
*rate = CLOCK_GetHsLspiClkFreq();
85-
#elif defined(FSL_FEATURE_FLEXCOMM14_SPI_INDEX)
86-
*rate = CLOCK_GetFlexCommClkFreq(14);
8798
#else
88-
LOG_ERR("Missing feature define for HS_SPI clock!");
99+
*rate = CLOCK_GetFlexCommClkFreq(14);
89100
#endif
90101
break;
102+
#endif
103+
91104
#if (defined(FSL_FEATURE_SOC_USDHC_COUNT) && FSL_FEATURE_SOC_USDHC_COUNT)
92105
case MCUX_USDHC1_CLK:
93106
*rate = CLOCK_GetSdioClkFreq(0);
@@ -96,11 +109,13 @@ static int mcux_lpc_syscon_clock_control_get_subsys_rate(
96109
*rate = CLOCK_GetSdioClkFreq(1);
97110
break;
98111
#endif
112+
99113
#if defined(CONFIG_CAN_MCUX_MCAN)
100114
case MCUX_MCAN_CLK:
101115
*rate = CLOCK_GetMCanClkFreq();
102116
break;
103117
#endif /* defined(CONFIG_CAN_MCUX_MCAN) */
118+
104119
#if defined(CONFIG_COUNTER_MCUX_CTIMER)
105120
case (MCUX_CTIMER0_CLK + MCUX_CTIMER_CLK_OFFSET):
106121
*rate = CLOCK_GetCTimerClkFreq(0);
@@ -119,8 +134,6 @@ static int mcux_lpc_syscon_clock_control_get_subsys_rate(
119134
break;
120135
#endif
121136
}
122-
#endif
123-
#endif
124137

125138
return 0;
126139
}

include/dt-bindings/clock/mcux_lpc_syscon_clock.h

+14-7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2020, NXP
2+
* Copyright (c) 2020-22, NXP
33
*
44
* SPDX-License-Identifier: Apache-2.0
55
*/
@@ -15,19 +15,26 @@
1515
#define MCUX_FLEXCOMM5_CLK 5
1616
#define MCUX_FLEXCOMM6_CLK 6
1717
#define MCUX_FLEXCOMM7_CLK 7
18-
#define MCUX_PMIC_I2C_CLK 16
19-
#define MCUX_HS_SPI_CLK 8
20-
#define MCUX_MCAN_CLK 9
21-
#define MCUX_USDHC1_CLK 9
22-
#define MCUX_USDHC2_CLK 10
18+
#define MCUX_FLEXCOMM8_CLK 8
19+
#define MCUX_FLEXCOMM9_CLK 9
20+
#define MCUX_FLEXCOMM10_CLK 10
21+
#define MCUX_FLEXCOMM11_CLK 11
22+
#define MCUX_FLEXCOMM12_CLK 12
23+
#define MCUX_FLEXCOMM13_CLK 13
24+
#define MCUX_HS_SPI_CLK 14
25+
#define MCUX_PMIC_I2C_CLK 15
2326

24-
#define MCUX_CTIMER_CLK_OFFSET 11
27+
#define MCUX_USDHC1_CLK 20
28+
#define MCUX_USDHC2_CLK 21
29+
30+
#define MCUX_CTIMER_CLK_OFFSET 22
2531

2632
#define MCUX_CTIMER0_CLK 0
2733
#define MCUX_CTIMER1_CLK 1
2834
#define MCUX_CTIMER2_CLK 2
2935
#define MCUX_CTIMER3_CLK 3
3036
#define MCUX_CTIMER4_CLK 4
3137

38+
#define MCUX_MCAN_CLK 23
3239

3340
#endif /* ZEPHYR_INCLUDE_DT_BINDINGS_CLOCK_MCUX_LPC_SYSCON_H_ */

0 commit comments

Comments
 (0)