Skip to content

Commit 5a5b255

Browse files
committed
variants: reduce PIN_MAP size
1 parent 22388ff commit 5a5b255

4 files changed

Lines changed: 20 additions & 4 deletions

File tree

variants/sipeed-longan-nano/pins_arduino.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ const gd32v_pin_info_t PIN_MAP[VARIANT_GPIO_NUM] = {
154154
{&gpioc, 0, 0, 0, 14, 0, 0}, /* PC14 */
155155
{&gpioc, 0, 0, 0, 15, 0, 0}, /* PC15 */
156156

157+
#if VARIANT_GPIO_NUM > 48
157158
{&gpiod, 0, 0, 0, 0, 0, 0}, /* PD0 */
158159
{&gpiod, 0, 0, 0, 1, 0, 0}, /* PD1 */
159160
{&gpiod, 0, 0, 0, 2, 0, 0}, /* PD2 */
@@ -170,7 +171,9 @@ const gd32v_pin_info_t PIN_MAP[VARIANT_GPIO_NUM] = {
170171
{&gpiod, 0, 0, 0, 13, 0, 0}, /* PD13 */
171172
{&gpiod, 0, 0, 0, 14, 0, 0}, /* PD14 */
172173
{&gpiod, 0, 0, 0, 15, 0, 0}, /* PD15 */
174+
#endif
173175

176+
#if VARIANT_GPIO_NUM > 64
174177
{&gpioe, 0, 0, 0, 0, 0, 0}, /* PE0 */
175178
{&gpioe, 0, 0, 0, 1, 0, 0}, /* PE1 */
176179
{&gpioe, 0, 0, 0, 2, 0, 0}, /* PE2 */
@@ -187,6 +190,7 @@ const gd32v_pin_info_t PIN_MAP[VARIANT_GPIO_NUM] = {
187190
{&gpioe, 0, 0, 0, 13, 0, 0}, /* PE13 */
188191
{&gpioe, 0, 0, 0, 14, 0, 0}, /* PE14 */
189192
{&gpioe, 0, 0, 0, 15, 0, 0}, /* PE15 */
193+
#endif
190194
};
191195

192196

variants/sipeed-longan-nano/pins_arduino.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,15 +82,21 @@
8282
extern "C" {
8383
#endif
8484

85+
#define VARIANT_GPIO_NUM (48)
86+
8587
/* Pin aliases: these give the GPIO port/bit for each pin as an
8688
* enum. These are optional, but recommended. They make it easier to
8789
* write code using low-level GPIO functionality. */
8890
enum {
8991
PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,
9092
PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,
9193
PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,
94+
#if VARIANT_GPIO_NUM > 48
9295
PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15,
96+
#endif
97+
#if VARIANT_GPIO_NUM > 64
9398
PE0,PE1,PE2,PE3,PE4,PE5,PE6,PE7,PE8,PE9,PE10,PE11,PE12,PE13,PE14,PE15,
99+
#endif
94100
};
95101

96102
typedef struct _gpio_dev_t
@@ -128,8 +134,6 @@ typedef struct _gd32v_pin_info_t
128134
uint8_t adc_channel;
129135
} gd32v_pin_info_t;
130136

131-
#define VARIANT_GPIO_NUM (80)
132-
133137
extern const gd32v_pin_info_t PIN_MAP[VARIANT_GPIO_NUM];
134138

135139
#define digitalPinToPort(p) ((PIN_MAP[p].gpio_device)->gpio_port)

variants/wio_lite_risc-v/pins_arduino.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ const gd32v_pin_info_t PIN_MAP[VARIANT_GPIO_NUM] = {
154154
{&gpioc, 0, 0, 0, 14, 0, 0}, /* PC14 */
155155
{&gpioc, 0, 0, 0, 15, 0, 0}, /* PC15 */
156156

157+
#if VARIANT_GPIO_NUM > 48
157158
{&gpiod, 0, 0, 0, 0, 0, 0}, /* PD0 */
158159
{&gpiod, 0, 0, 0, 1, 0, 0}, /* PD1 */
159160
{&gpiod, 0, 0, 0, 2, 0, 0}, /* PD2 */
@@ -170,7 +171,9 @@ const gd32v_pin_info_t PIN_MAP[VARIANT_GPIO_NUM] = {
170171
{&gpiod, 0, 0, 0, 13, 0, 0}, /* PD13 */
171172
{&gpiod, 0, 0, 0, 14, 0, 0}, /* PD14 */
172173
{&gpiod, 0, 0, 0, 15, 0, 0}, /* PD15 */
174+
#endif
173175

176+
#if VARIANT_GPIO_NUM > 64
174177
{&gpioe, 0, 0, 0, 0, 0, 0}, /* PE0 */
175178
{&gpioe, 0, 0, 0, 1, 0, 0}, /* PE1 */
176179
{&gpioe, 0, 0, 0, 2, 0, 0}, /* PE2 */
@@ -187,6 +190,7 @@ const gd32v_pin_info_t PIN_MAP[VARIANT_GPIO_NUM] = {
187190
{&gpioe, 0, 0, 0, 13, 0, 0}, /* PE13 */
188191
{&gpioe, 0, 0, 0, 14, 0, 0}, /* PE14 */
189192
{&gpioe, 0, 0, 0, 15, 0, 0}, /* PE15 */
193+
#endif
190194
};
191195

192196

variants/wio_lite_risc-v/pins_arduino.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,21 @@
2626
extern "C" {
2727
#endif
2828

29+
#define VARIANT_GPIO_NUM (48)
30+
2931
/* Pin aliases: these give the GPIO port/bit for each pin as an
3032
* enum. These are optional, but recommended. They make it easier to
3133
* write code using low-level GPIO functionality. */
3234
enum {
3335
PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PA8,PA9,PA10,PA11,PA12,PA13,PA14,PA15,
3436
PB0,PB1,PB2,PB3,PB4,PB5,PB6,PB7,PB8,PB9,PB10,PB11,PB12,PB13,PB14,PB15,
3537
PC0,PC1,PC2,PC3,PC4,PC5,PC6,PC7,PC8,PC9,PC10,PC11,PC12,PC13,PC14,PC15,
38+
#if VARIANT_GPIO_NUM > 48
3639
PD0,PD1,PD2,PD3,PD4,PD5,PD6,PD7,PD8,PD9,PD10,PD11,PD12,PD13,PD14,PD15,
40+
#endif
41+
#if VARIANT_GPIO_NUM > 64
3742
PE0,PE1,PE2,PE3,PE4,PE5,PE6,PE7,PE8,PE9,PE10,PE11,PE12,PE13,PE14,PE15,
43+
#endif
3844
};
3945

4046
typedef struct _gpio_dev_t
@@ -72,8 +78,6 @@ typedef struct _gd32v_pin_info_t
7278
uint8_t adc_channel;
7379
} gd32v_pin_info_t;
7480

75-
#define VARIANT_GPIO_NUM (80)
76-
7781
extern const gd32v_pin_info_t PIN_MAP[VARIANT_GPIO_NUM];
7882

7983
#define digitalPinToPort(p) ((PIN_MAP[p].gpio_device)->gpio_port)

0 commit comments

Comments
 (0)