It is abstracted, for example see this file. > > https://github.com/apache/incubator-nuttx/blob/cdd111a1faec9b40b707797e00c4afae4956fb3f/boards/arm/stm32/nucleo-f4x1re/src/stm32_spi.c#L140 >
You mean GPIO_MCP2515_CS? I don't quite understand its definition #define GPIO_MCP2515_CS (GPIO_OUTPUT|GPIO_OTYPER_PP(0)|GPIO_SPEED_2MHz|\ GPIO_OUTPUT_SET|GPIO_PORTA|GPIO_PIN4) I guess it's a way to combine different configuration bits with pin 4. Problem is it's only defined for pin 4 and only in a handful of STM32 boards. What happens if I want to use that driver with a PIC32MX board and I'm not a kernel developer? What happens if pin 4 is already used and I *need* to use pin 5 and again I'm not a kernel developer? My idea is to bring that level of configuration ability into menuconfig Are those GPIO_* macros work across architectures so they can be brought to menuconfig and combined there in a newbie-friendly way? It seems GPIO_OUTPUT exists in all architectures but I don't know it if works the same way everywhere