static int stmp3xxxmmc_hw_init_ssp1(void) { int ret; ret = stmp3xxx_request_pin_group(&mmc_pins, "mmc"); if (ret) goto out; /* Configure write protect GPIO pin */ ret = gpio_request(PINID_PWM4, "mmc wp"); if (ret) goto out_wp; gpio_direction_input(PINID_PWM4); /* Configure POWER pin as gpio to drive power to MMC slot */ ret = gpio_request(PINID_PWM3, "mmc power"); if (ret) goto out_power; gpio_direction_output(PINID_PWM3, 0); mdelay(100); return 0; out_power: gpio_free(PINID_PWM4); out_wp: stmp3xxx_release_pin_group(&mmc_pins, "mmc"); out: return ret; }
static void dbguart_pinmux(int req, int id) { if (req) stmp3xxx_request_pin_group(&dbguart_pins[id], "dbguart"); else stmp3xxx_release_pin_group(&dbguart_pins[id], "dbguart"); }
static int stmp3xxxmmc_hw_init_ssp1(void) { int ret; ret = stmp3xxx_request_pin_group(&mmc_pins, "mmc"); if (ret) goto out; ret = gpio_request(PINID_PWM4, "mmc wp"); if (ret) goto out_wp; gpio_direction_input(PINID_PWM4); ret = gpio_request(PINID_PWM3, "mmc power"); if (ret) goto out_power; gpio_direction_output(PINID_PWM3, 0); mdelay(100); return 0; out_power: gpio_free(PINID_PWM4); out_wp: stmp3xxx_release_pin_group(&mmc_pins, "mmc"); out: return ret; }
int spdif_pinmux(int req) { if (req) return stmp3xxx_request_pin_group(&spdif_pins, "spdif"); else stmp3xxx_release_pin_group(&spdif_pins, "spdif"); return 0; }
static int gpmi_pinmux_handler(bool request) { if (request) return stmp3xxx_request_pin_group(&gpmi_pins, "gpmi"); else stmp3xxx_release_pin_group(&gpmi_pins, "gpmi"); return 0; }
static int appuart_pinmux(int req, int id) { if (req) return stmp3xxx_request_pin_group(&appuart_pins[id], "appuart"); else stmp3xxx_release_pin_group(&appuart_pins[id], "appuart"); return 0; }
static int dbguart_pinmux(int request, int id) { int r = 0; if (request) r = stmp3xxx_request_pin_group(&dbguart_pins[id], "dbguart"); else stmp3xxx_release_pin_group(&dbguart_pins[id], "dbguart"); return r; }
static int dbguart_pins_control(int id, int request) { int r = 0; if (request) r = stmp3xxx_request_pin_group(&dbguart_pins[id], "debug uart"); else stmp3xxx_release_pin_group(&dbguart_pins[id], "debug uart"); return r; }
static void mpulcd_release_panel(struct device *dev, struct stmp3xxx_platform_fb_entry *pentry) { stmp3xxx_lcdif_notify_clients(STMP3XXX_LCDIF_PANEL_RELEASE, pentry); mpulcd_display_off(); stmp3xxx_release_pin_group(&lcd_pins, "mpulcd_pin"); stmp3xxx_lcdif_dma_release(); clk_disable(lcd_clk); clk_put(lcd_clk); gpio_direction_output(PINID_LCD_ENABLE, 0); }
static void stmp3xxxmmc_hw_release_ssp1(void) { gpio_free(PINID_PWM3); gpio_free(PINID_PWM4); stmp3xxx_release_pin_group(&mmc_pins, "mmc"); }
void spdif_pinmux_free(void) { stmp3xxx_release_pin_group(&spdif_pins, "spdif"); }
static void uninit_pinmux(void) { stmp3xxx_release_pin_group(&lcd_pins, "lcd_hx8238a"); }
static void uninit_pinmux(void) { stmp3xxx_release_pin_group(lcd_pins, "lcd_lms430"); }