mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-11-01 06:01:35 +08:00
Driver: Refactor MCP23009 GPIO expander into uORB driver
This commit is contained in:
@@ -17,6 +17,7 @@ CONFIG_DRIVERS_CAMERA_TRIGGER=y
|
||||
CONFIG_COMMON_DIFFERENTIAL_PRESSURE=y
|
||||
CONFIG_COMMON_DISTANCE_SENSOR=y
|
||||
CONFIG_DRIVERS_DSHOT=y
|
||||
CONFIG_DRIVERS_GPIO_MCP23009=y
|
||||
CONFIG_DRIVERS_GPS=y
|
||||
CONFIG_DRIVERS_HEATER=y
|
||||
CONFIG_DRIVERS_IMU_ANALOG_DEVICES_ADIS16448=y
|
||||
|
||||
@@ -19,3 +19,14 @@ param set-default SENS_EN_INA226 1
|
||||
param set-default SYS_USE_IO 1
|
||||
|
||||
safety_button start
|
||||
|
||||
# GPIO Expander driver on external I2C3
|
||||
if ver hwtypecmp V5X009000 V5X009001
|
||||
then
|
||||
# No USB
|
||||
mcp23009 start -b 3 -X -D 0xf0 -O 0xf0 -P 0x0f -U 10
|
||||
fi
|
||||
if ver hwtypecmp V5X00a000 V5X00a001 V5X008000 V5X008001
|
||||
then
|
||||
mcp23009 start -b 3 -X -D 0xf1 -O 0xf0 -P 0x0f -U 10
|
||||
fi
|
||||
|
||||
@@ -250,8 +250,8 @@
|
||||
#define GPIO_VDD_3V3_SD_CARD_EN /* PC13 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTC|GPIO_PIN13)
|
||||
|
||||
/* MCP23009 GPIO expander */
|
||||
#define BOARD_GPIO_VDD_5V_COMP_VALID "/dev/gpin4"
|
||||
#define BOARD_GPIO_VDD_5V_CAN1_GPS1_VALID "/dev/gpin5"
|
||||
#define BOARD_GPIO_VDD_5V_COMP_VALID "/dev/gpio4"
|
||||
#define BOARD_GPIO_VDD_5V_CAN1_GPS1_VALID "/dev/gpio5"
|
||||
|
||||
/* Spare GPIO */
|
||||
|
||||
|
||||
@@ -264,8 +264,9 @@ __EXPORT int board_app_initialize(uintptr_t arg)
|
||||
led_on(LED_RED);
|
||||
}
|
||||
|
||||
int ret;
|
||||
#ifdef CONFIG_MMCSD
|
||||
int ret = stm32_sdio_initialize();
|
||||
ret = stm32_sdio_initialize();
|
||||
|
||||
if (ret != OK) {
|
||||
led_on(LED_RED);
|
||||
@@ -274,30 +275,11 @@ __EXPORT int board_app_initialize(uintptr_t arg)
|
||||
|
||||
#endif /* CONFIG_MMCSD */
|
||||
|
||||
int hw_version = board_get_hw_version();
|
||||
ret = mcp23009_register_gpios(3, 0x25);
|
||||
|
||||
if (hw_version == 0x9 || hw_version == 0xa) {
|
||||
static MCP23009 mcp23009{3, 0x25};
|
||||
|
||||
// No USB
|
||||
if (hw_version == 0x9) {
|
||||
// < P8
|
||||
ret = mcp23009.init(0xf0, 0xf0, 0x0f);
|
||||
// >= P8
|
||||
//ret = mcp23009.init(0xf1, 0xf0, 0x0f);
|
||||
}
|
||||
|
||||
if (hw_version == 0xa) {
|
||||
// < P6
|
||||
//ret = mcp23009.init(0xf0, 0xf0, 0x0f);
|
||||
// >= P6
|
||||
ret = mcp23009.init(0xf1, 0xf0, 0x0f);
|
||||
}
|
||||
|
||||
if (ret != OK) {
|
||||
led_on(LED_RED);
|
||||
return ret;
|
||||
}
|
||||
if (ret != OK) {
|
||||
led_on(LED_RED);
|
||||
return ret;
|
||||
}
|
||||
|
||||
return OK;
|
||||
|
||||
Reference in New Issue
Block a user