From e85bc74b307365e9a7b4adab51d646638db12fbd Mon Sep 17 00:00:00 2001 From: Aidan MacDonald Date: Sat, 5 Jun 2021 00:12:01 +0100 Subject: x1000: GPIO refactor The GPIO API was pretty clunky and pin settings were decentralized, making it hard to see what was happening and making GPIO stuff look like a mess, frankly. Instead of passing clunky (port, pin) pairs everywhere, GPIOs are now identified with a single int. The extra overhead should be minimal as GPIO configuration is generally not on a performance-critical path. Pin assignments are now mostly consolidated in gpio-target.h and put in various tables so gpio_init() can assign most pins at boot time. Most drivers no longer need to touch GPIOs and basic pin I/O stuff can happen without config since pins are put into the right state. IRQ pins still need to be configured manually before use. Change-Id: Ic5326284b0b2a2f613e9e76a41cb50e24af3aa47 --- firmware/target/mips/ingenic_x1000/sd-x1000.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'firmware/target/mips/ingenic_x1000/sd-x1000.c') diff --git a/firmware/target/mips/ingenic_x1000/sd-x1000.c b/firmware/target/mips/ingenic_x1000/sd-x1000.c index 7fba617ce3..679a25a222 100644 --- a/firmware/target/mips/ingenic_x1000/sd-x1000.c +++ b/firmware/target/mips/ingenic_x1000/sd-x1000.c @@ -23,6 +23,7 @@ #include "sdmmc.h" #include "sd.h" #include "msc-x1000.h" +#include "gpio-x1000.h" #include /* #define LOGF_ENABLE */ @@ -201,7 +202,7 @@ bool sd_removable(IF_MD_NONVOID(int drive)) if(drive < 0) return false; - return sd_to_msc[IF_MD_DRV(drive)]->config->cd_gpio.pin != 0; + return sd_to_msc[IF_MD_DRV(drive)]->config->cd_gpio != GPIO_NONE; } #ifndef CONFIG_STORAGE_MULTI -- cgit v1.2.3