Skip to content

Commit ad79ea5

Browse files
committed
cpu/rp2350_common: change register calculation functions to pointers
1 parent b6da093 commit ad79ea5

File tree

3 files changed

+7
-7
lines changed

3 files changed

+7
-7
lines changed

cpu/rp2350_common/include/periph_cpu.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ static inline uint32_t* calculate_gpio_pad_register_addr(gpio_t pin)
106106
*/
107107
static uint32_t calculate_gpio_io_status_register_addr(gpio_t pin) {
108108
/* Each status register is followed by a ctrl register */
109-
return IO_BANK0_BASE + 8 * pin;
109+
return IO_BANK0_BASE + (8 * pin);
110110
}
111111

112112
/**
@@ -115,11 +115,11 @@ static uint32_t calculate_gpio_io_status_register_addr(gpio_t pin) {
115115
* @param pin The GPIO pin number
116116
* @return The address of the GPIO IO control register for the given pin
117117
*/
118-
static inline uint32_t calculate_gpio_io_ctrl_register_addr(gpio_t pin) {
118+
static inline uint32_t* calculate_gpio_io_ctrl_register_addr(gpio_t pin) {
119119
/* Each pin has a 8 byte register (4 Bytes of Status, 4 Bytes of CTRL),
120120
* so we can calculate the address by adding 8 bytes for each pin,
121121
* starting at the base address of IO_BANK0 */
122-
return calculate_gpio_io_status_register_addr(pin) + 4;
122+
return (uint32_t*) (calculate_gpio_io_status_register_addr(pin) + 4);
123123
}
124124

125125
#ifdef __cplusplus

cpu/rp2350_common/periph/gpio.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@ int gpio_init(gpio_t pin, gpio_mode_t mode) {
3636

3737
switch (mode) {
3838
case GPIO_OUT:
39-
*(uint32_t*)calculate_gpio_io_ctrl_register_addr(pin) =
39+
*calculate_gpio_io_ctrl_register_addr(pin) =
4040
FUNCTION_SELECT_SIO;
4141

4242
volatile uint32_t* pad_reg =
43-
(uint32_t*)calculate_gpio_pad_register_addr(pin);
43+
calculate_gpio_pad_register_addr(pin);
4444

4545
/* We clear all bits except the drive strength bit.
4646
* We set that to the highest one possible (12mA)

cpu/rp2350_common/periph/uart.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,8 @@ void uart_init_pins(uart_t uart)
132132
UART0_Type *dev = uart_config[uart].dev;
133133

134134
/* Set the UART pins to the correct function */
135-
*(uint32_t *)calculate_gpio_io_ctrl_register_addr(uart_config[uart].tx_pin) = FUNCTION_SELECT_UART;
136-
*(uint32_t *)calculate_gpio_io_ctrl_register_addr(uart_config[uart].rx_pin) = FUNCTION_SELECT_UART;
135+
*calculate_gpio_io_ctrl_register_addr(uart_config[uart].tx_pin) = FUNCTION_SELECT_UART;
136+
*calculate_gpio_io_ctrl_register_addr(uart_config[uart].rx_pin) = FUNCTION_SELECT_UART;
137137
/* Clear the ISO bits */
138138
atomic_clear(
139139
calculate_gpio_pad_register_addr(uart_config[uart].tx_pin),

0 commit comments

Comments
 (0)