Skip to content

Commit ab98884

Browse files
Adrian Negreanumbrossard
authored andcommitted
lpc4322 (gpio): use the gpio helpers instead of LPC_GPIO_PORT
Signed-off-by: Adrian Negreanu <[email protected]>
1 parent f4e0774 commit ab98884

File tree

2 files changed

+35
-27
lines changed

2 files changed

+35
-27
lines changed

source/hic_hal/nxp/lpc4322/IO_Config.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,10 @@ COMPILER_ASSERT(DAPLINK_HIC_ID == DAPLINK_HIC_ID_LPC4322);
6262
#define PIN_RESET_TXE_IN_BIT 6
6363
#define PIN_RESET_TXE (1<<PIN_RESET_TXE_IN_BIT)
6464

65-
// ISP Control Pin P2_11: GPIO1[11]
66-
#define ISPCTRL_PORT 1
67-
#define ISPCTRL_BIT 11
65+
// ISP Control Pin P2_11: GPIO1[11]
66+
#define PORT_ISPCTRL 1
67+
#define PIN_ISPCTRL_IN_BIT 11
68+
#define PIN_ISPCTRL (1<<PIN_ISPCTRL_IN_BIT)
6869

6970
#define X_SET(str) LPC_GPIO_PORT->SET[PORT_##str] = PIN_##str
7071
#define X_CLR(str) LPC_GPIO_PORT->CLR[PORT_##str] = PIN_##str

source/hic_hal/nxp/lpc4322/gpio.c

Lines changed: 31 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -57,27 +57,34 @@ void gpio_init(void)
5757

5858
/* Configure I/O pins: function number, input buffer enabled, */
5959
/* no pull-up/down */
60-
scu_pinmux(1, 1, GPIO_NOPULL, FUNC0); /* LED: GPIO0[8] */
61-
scu_pinmux(2, 11, GPIO_NOPULL, FUNC0); /* ISPCTRL: GPIO1[11] */
62-
scu_pinmux(2, 5, GPIO_PUP, FUNC4); /* nRESET: GPIO5[5] */
63-
scu_pinmux(2, 6, GPIO_NOPULL, FUNC4); /* nRESET_OE: GPIO5[6] */
64-
/* Configure: LED as output (turned off) */
65-
LPC_GPIO_PORT->CLR[LED_CONNECTED_PORT] = (1 << LED_CONNECTED_BIT);
66-
LPC_GPIO_PORT->DIR[LED_CONNECTED_PORT] |= (1 << LED_CONNECTED_BIT);
67-
/* Configure: ISPCTRL as output and high */
68-
LPC_GPIO_PORT->SET[ISPCTRL_PORT] = (1 << ISPCTRL_BIT);
69-
LPC_GPIO_PORT->DIR[ISPCTRL_PORT] |= (1 << ISPCTRL_BIT);
70-
/* configure Reset Button as input, Reset Output Enable as output LOW */
71-
LPC_GPIO_PORT->DIR[PORT_nRESET] &= ~(1 << PIN_nRESET_IN_BIT);
72-
LPC_GPIO_PORT->CLR[PORT_RESET_TXE] = (1 << PIN_RESET_TXE_IN_BIT);
73-
LPC_GPIO_PORT->DIR[PORT_RESET_TXE] |= (1 << PIN_RESET_TXE_IN_BIT);
60+
scu_pinmux(1, 1, GPIO_NOPULL, FUNC0); /* P1_1 LED: GPIO0[8] */
61+
scu_pinmux(2, 11, GPIO_NOPULL, FUNC0); /* P2_11 ISPCTRL: GPIO1[11] */
62+
scu_pinmux(2, 5, GPIO_PUP, FUNC4); /* P2_5 nRESET: GPIO5[5] */
63+
scu_pinmux(2, 6, GPIO_NOPULL, FUNC4); /* P2_6 nRESET_OE: GPIO5[6] */
64+
65+
/* Configure: LED as output LOW (turned off)*/
66+
X_DIR_OUT(LED_CONNECTED);
67+
X_CLR(LED_CONNECTED);
68+
69+
/* Configure: ISPCTRL as output HIGH */
70+
X_DIR_OUT(ISPCTRL);
71+
X_SET(ISPCTRL);
72+
73+
/* Configure: Reset Button */
74+
X_DIR_IN(nRESET);
75+
X_CLR(nRESET);
76+
77+
/* Reset Output Enable as output LOW */
78+
X_DIR_OUT(RESET_TXE);
79+
X_CLR(RESET_TXE);
80+
7481
/* Use Pin Interrupt 0 */
7582
LPC_SCU->PINTSEL0 &= ~0xff;
7683
LPC_SCU->PINTSEL0 |= (PORT_nRESET << 5) | (PIN_nRESET_IN_BIT);
7784

7885
#if (SWO_UART != 0)
7986
/* Configure: SWO as input */
80-
LPC_GPIO_PORT->DIR[PORT_SWO] &= ~(1 << PIN_SWO_IN_BIT);
87+
X_DIR_IN(SWO);
8188
#endif
8289

8390
busy_wait(10000);
@@ -86,42 +93,42 @@ void gpio_init(void)
8693
void gpio_set_hid_led(gpio_led_state_t state)
8794
{
8895
if (state) {
89-
LPC_GPIO_PORT->SET[LED_CONNECTED_PORT] = (1 << LED_CONNECTED_BIT);
96+
X_SET(LED_CONNECTED);
9097
} else {
91-
LPC_GPIO_PORT->CLR[LED_CONNECTED_PORT] = (1 << LED_CONNECTED_BIT);
98+
X_CLR(LED_CONNECTED);
9299
}
93100
}
94101

95102
void gpio_set_cdc_led(gpio_led_state_t state)
96103
{
97104
if (state) {
98-
LPC_GPIO_PORT->SET[LED_CONNECTED_PORT] = (1 << LED_CONNECTED_BIT);
105+
X_SET(LED_CONNECTED);
99106
} else {
100-
LPC_GPIO_PORT->CLR[LED_CONNECTED_PORT] = (1 << LED_CONNECTED_BIT);
107+
X_CLR(LED_CONNECTED);
101108
}
102109
}
103110

104111
void gpio_set_msc_led(gpio_led_state_t state)
105112
{
106113
if (state) {
107-
LPC_GPIO_PORT->SET[LED_CONNECTED_PORT] = (1 << LED_CONNECTED_BIT);
114+
X_SET(LED_CONNECTED);
108115
} else {
109-
LPC_GPIO_PORT->CLR[LED_CONNECTED_PORT] = (1 << LED_CONNECTED_BIT);
116+
X_CLR(LED_CONNECTED);
110117
}
111118
}
112119

113120
void gpio_set_isp_pin(uint8_t state)
114121
{
115122
if (state) {
116-
LPC_GPIO_PORT->SET[ISPCTRL_PORT] = (1 << ISPCTRL_BIT);
123+
X_SET(ISPCTRL);
117124
} else {
118-
LPC_GPIO_PORT->CLR[ISPCTRL_PORT] = (1 << ISPCTRL_BIT);
125+
X_CLR(ISPCTRL);
119126
}
120127
}
121128

122129
uint8_t gpio_get_reset_btn_no_fwrd(void)
123130
{
124-
return LPC_GPIO_PORT->W[PORT_nRESET * 32 + PIN_nRESET_IN_BIT] ? 0 : 1;
131+
return X_WORD(nRESET) ? 0 : 1;
125132
}
126133

127134
uint8_t gpio_get_reset_btn_fwrd(void)

0 commit comments

Comments
 (0)