1 /*
2 * Copyright 2023 NXP
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6 #include "hal_config.h"
7 #include "hal_pinctrl.h"
8 #if SM_PINCTRL
9 #include "sm_pinctrl.h"
10 #elif IOMUXC_PINCTRL
11 #include "fsl_iomuxc.h"
12 #endif
13
14 #if SM_PINCTRL && IOMUXC_PINCTRL
15 #error "Pls not define them as 1 at the same time in hal_config.h!!!"
16 #endif
17
18 #if SM_PINCTRL
HAL_PinctrlSetPinMux(uint32_t muxRegister,uint32_t muxMode,uint32_t inputRegister,uint32_t inputDaisy,uint32_t configRegister,uint32_t inputOnfield)19 void HAL_PinctrlSetPinMux(uint32_t muxRegister,
20 uint32_t muxMode,
21 uint32_t inputRegister,
22 uint32_t inputDaisy,
23 uint32_t configRegister,
24 uint32_t inputOnfield)
25 {
26 sm_pinctrl_t sm_pinctrl = {0};
27
28 sm_pinctrl.channel = SM_PLATFORM_A2P;
29 sm_pinctrl.mux_register = muxRegister;
30 sm_pinctrl.mux_mode = muxMode;
31 sm_pinctrl.input_register = inputRegister;
32 sm_pinctrl.input_daisy = inputDaisy;
33 sm_pinctrl.config_register = configRegister;
34 sm_pinctrl.config_value = 0U;
35 sm_pinctrl.input_on_field = inputOnfield;
36
37 SM_PINCTRL_SetPinMux(&sm_pinctrl);
38 }
39
HAL_PinctrlSetPinCfg(uint32_t muxRegister,uint32_t muxMode,uint32_t inputRegister,uint32_t inputDaisy,uint32_t configRegister,uint32_t configValue)40 void HAL_PinctrlSetPinCfg(uint32_t muxRegister,
41 uint32_t muxMode,
42 uint32_t inputRegister,
43 uint32_t inputDaisy,
44 uint32_t configRegister,
45 uint32_t configValue)
46 {
47 sm_pinctrl_t sm_pinctrl = {0};
48
49 sm_pinctrl.channel = SM_PLATFORM_A2P;
50 sm_pinctrl.mux_register = muxRegister;
51 sm_pinctrl.mux_mode = muxMode;
52 sm_pinctrl.input_register = inputRegister;
53 sm_pinctrl.input_daisy = inputDaisy;
54 sm_pinctrl.config_register = configRegister;
55 sm_pinctrl.config_value = configValue;
56 sm_pinctrl.input_on_field = 0U;
57
58 SM_PINCTRL_SetPinCfg(&sm_pinctrl);
59 }
60
61
HAL_PinctrlSetMiscCfg(hal_pinctrl_t * hal_pinctrl)62 void HAL_PinctrlSetMiscCfg(hal_pinctrl_t *hal_pinctrl)
63 {
64
65 }
66
67 #elif IOMUXC_PINCTRL
HAL_PinctrlSetPinMux(uint32_t muxRegister,uint32_t muxMode,uint32_t inputRegister,uint32_t inputDaisy,uint32_t configRegister,uint32_t inputOnfield)68 void HAL_PinctrlSetPinMux(uint32_t muxRegister,
69 uint32_t muxMode,
70 uint32_t inputRegister,
71 uint32_t inputDaisy,
72 uint32_t configRegister,
73 uint32_t inputOnfield)
74 {
75 IOMUXC_SetPinMux(muxRegister, muxMode, inputRegister, inputDaisy, configRegister, inputOnfield);
76 }
77
HAL_PinctrlSetPinCfg(uint32_t muxRegister,uint32_t muxMode,uint32_t inputRegister,uint32_t inputDaisy,uint32_t configRegister,uint32_t configValue)78 void HAL_PinctrlSetPinCfg(uint32_t muxRegister,
79 uint32_t muxMode,
80 uint32_t inputRegister,
81 uint32_t inputDaisy,
82 uint32_t configRegister,
83 uint32_t configValue)
84 {
85 IOMUXC_SetPinConfig(muxRegister, muxMode, inputRegister, inputDaisy, configRegister, configValue);
86 }
87
HAL_PinctrlSetMiscCfg(hal_pinctrl_t * hal_pinctrl)88 void HAL_PinctrlSetMiscCfg(hal_pinctrl_t *hal_pinctrl)
89 {
90 if ((hal_pinctrl != NULL) && (hal_pinctrl->set_gpr == true))
91 {
92 IOMUXC_SetGpr(hal_pinctrl->gpr_instance, hal_pinctrl->gpr_val);
93 }
94 }
95 #else
96 #error "Pls define macro SM_PINCTRL or IOMUXC_PINCTRL in hal_config.h.!!!"
97 #endif
98