inline void s3cfb_spi_set_lcd_data(int ch) { gpio_direction_output(S5P_FB_SPI_CLK(ch), 1); gpio_direction_output(S5P_FB_SPI_MOSI(ch), 1); gpio_direction_output(S5P_FB_SPI_nSS(ch), 1); gpio_pullup(S5P_FB_SPI_CLK(ch), S5P_GPIO_PUD_DISABLE); gpio_pullup(S5P_FB_SPI_MOSI(ch), S5P_GPIO_PUD_DISABLE); gpio_pullup(S5P_FB_SPI_nSS(ch), S5P_GPIO_PUD_DISABLE); }
inline void s3cfb_spi_set_lcd_data(int ch) { gpio_direction_output(S5P_FB_SPI_CLK(ch), 1); gpio_direction_output(S5P_FB_SPI_MOSI(ch), 1); gpio_direction_output(S5P_FB_SPI_CS(ch), 1); s3c_gpio_setpull(S5P_FB_SPI_CLK(ch), S3C_GPIO_PULL_NONE); s3c_gpio_setpull(S5P_FB_SPI_MOSI(ch), S3C_GPIO_PULL_NONE); s3c_gpio_setpull(S5P_FB_SPI_CS(ch), S3C_GPIO_PULL_NONE); }
int s3cfb_spi_gpio_request(int ch) { int err = 0; if (gpio_is_valid(S5P_FB_SPI_CLK(ch))) { err = gpio_request(S5P_FB_SPI_CLK(ch), "GPB"); if (err) goto err_clk; } else { err = 1; goto err_clk; } if (gpio_is_valid(S5P_FB_SPI_MOSI(ch))) { err = gpio_request(S5P_FB_SPI_MOSI(ch), "GPB"); if (err) goto err_mosi; } else { err = 1; goto err_mosi; } if (gpio_is_valid(S5P_FB_SPI_CS(ch))) { err = gpio_request(S5P_FB_SPI_CS(ch), "GPB"); if (err) goto err_cs; } else { err = 1; goto err_cs; } err_cs: gpio_free(S5P_FB_SPI_MOSI(ch)); err_mosi: gpio_free(S5P_FB_SPI_CLK(ch)); err_clk: return err; }
inline void s3cfb_spi_lcd_dclk(int ch, int value) { gpio_set_value(S5P_FB_SPI_CLK(ch), value); }
void s3cfb_spi_gpio_free(int ch) { gpio_free(S5P_FB_SPI_CLK(ch)); gpio_free(S5P_FB_SPI_MOSI(ch)); gpio_free(S5P_FB_SPI_CS(ch)); }