Move code of rtl837x_pins.c to BANK2 due to BANK0 overflow

This commit is contained in:
feelfree69
2026-04-21 21:37:25 +02:00
parent da8ec8fe88
commit 812bf3bb67
2 changed files with 14 additions and 11 deletions
+10 -7
View File
@@ -2,7 +2,10 @@
#include "rtl837x_common.h" #include "rtl837x_common.h"
#include "rtl837x_regs.h" #include "rtl837x_regs.h"
uint8_t i2c_bus_from_sda_pin(uint8_t sda_pin) { #pragma codeseg BANK2
#pragma constseg BANK2
uint8_t i2c_bus_from_sda_pin(uint8_t sda_pin) __banked {
switch (sda_pin) { switch (sda_pin) {
case GPIO47_I2C_SDA0: case GPIO47_I2C_SDA0:
return 0; return 0;
@@ -19,7 +22,7 @@ uint8_t i2c_bus_from_sda_pin(uint8_t sda_pin) {
} }
} }
uint8_t i2c_bus_from_scl_pin(uint8_t scl_pin) { uint8_t i2c_bus_from_scl_pin(uint8_t scl_pin) __banked{
switch (scl_pin) { switch (scl_pin) {
case GPIO46_I2C_SCL0: case GPIO46_I2C_SCL0:
return 0; return 0;
@@ -35,18 +38,18 @@ uint8_t i2c_bus_from_scl_pin(uint8_t scl_pin) {
} }
/* Returns RTL837X_REG_GPIO_XX_OUTPUT register address */ /* Returns RTL837X_REG_GPIO_XX_OUTPUT register address */
static uint16_t gpio_output_reg(uint8_t pin) { static uint16_t gpio_output_reg(uint8_t pin) __banked{
return pin < 32 ? RTL837X_REG_GPIO_00_31_OUTPUT : RTL837X_REG_GPIO_32_63_OUTPUT; return pin < 32 ? RTL837X_REG_GPIO_00_31_OUTPUT : RTL837X_REG_GPIO_32_63_OUTPUT;
} }
/* Returns RTL837X_REG_GPIO_XX_DIRECTION register address */ /* Returns RTL837X_REG_GPIO_XX_DIRECTION register address */
static uint16_t gpio_direction_reg(uint8_t pin) { static uint16_t gpio_direction_reg(uint8_t pin) __banked {
return pin < 32 ? RTL837X_REG_GPIO_00_31_DIRECTION : RTL837X_REG_GPIO_32_63_DIRECTION; return pin < 32 ? RTL837X_REG_GPIO_00_31_DIRECTION : RTL837X_REG_GPIO_32_63_DIRECTION;
} }
/* Enable GPIO functions for pin */ /* Enable GPIO functions for pin */
static void gpio_mux_setup(uint8_t pin) static void gpio_mux_setup(uint8_t pin) __banked
{ {
// Some GPIOs require setting MUX registers to enable GPIO // Some GPIOs require setting MUX registers to enable GPIO
switch (pin) { switch (pin) {
@@ -94,7 +97,7 @@ static void gpio_mux_setup(uint8_t pin)
} }
} }
void gpio_input_setup(uint8_t pin) { void gpio_input_setup(uint8_t pin) __banked {
if (pin == GPIO_NA) { if (pin == GPIO_NA) {
return; return;
} }
@@ -103,7 +106,7 @@ void gpio_input_setup(uint8_t pin) {
reg_bit_clear(gpio_direction_reg(pin), (pin % 32)); reg_bit_clear(gpio_direction_reg(pin), (pin % 32));
} }
void gpio_output_setup(uint8_t pin, __xdata uint8_t initial_val) { void gpio_output_setup(uint8_t pin, __xdata uint8_t initial_val) __banked{
if (pin == GPIO_NA) { if (pin == GPIO_NA) {
return; return;
} }
+4 -4
View File
@@ -72,22 +72,22 @@
#define GPIO_NA 0xFF #define GPIO_NA 0xFF
/* Convert SDA PIN GPIO to I2C bus number */ /* Convert SDA PIN GPIO to I2C bus number */
uint8_t i2c_bus_from_sda_pin(uint8_t sda_pin); uint8_t i2c_bus_from_sda_pin(uint8_t sda_pin) __banked;
/* Convert SCL PIN GPIO to I2C bus number */ /* Convert SCL PIN GPIO to I2C bus number */
uint8_t i2c_bus_from_scl_pin(uint8_t scl_pin); uint8_t i2c_bus_from_scl_pin(uint8_t scl_pin) __banked;
/* /*
* Setup a GPIO pin as input * Setup a GPIO pin as input
* pin: GPIO pin number 0-63 * pin: GPIO pin number 0-63
*/ */
void gpio_input_setup(uint8_t pin); void gpio_input_setup(uint8_t pin) __banked;
/* /*
* Setup a GPIO pin as output * Setup a GPIO pin as output
* pin: GPIO pin number 0-63 * pin: GPIO pin number 0-63
* initial_val: 1 for bit set in RTL837X_REG_GPIO_xx_OUTPUT, 0 for bit not set * initial_val: 1 for bit set in RTL837X_REG_GPIO_xx_OUTPUT, 0 for bit not set
*/ */
void gpio_output_setup(uint8_t pin, __xdata uint8_t initial_val); void gpio_output_setup(uint8_t pin, __xdata uint8_t initial_val) __banked;
#endif #endif