mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-10 04:48:04 +09:00
A22:add spi bus selection for LCD
This commit is contained in:
@@ -180,9 +180,17 @@ struct rk29_nand_platform_data rk29_nand_data = {
|
||||
* author: zyw@rock-chips.com
|
||||
*****************************************************************************************/
|
||||
//#ifdef CONFIG_LCD_TD043MGEA1
|
||||
#ifdef CONFIG_LCD_USE_SPI0
|
||||
#define LCD_TXD_PIN RK29_PIN2_PC2
|
||||
#define LCD_CLK_PIN RK29_PIN2_PC0
|
||||
#define LCD_CS_PIN RK29_PIN1_PA4
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_LCD_USE_SPI1
|
||||
#define LCD_TXD_PIN RK29_PIN2_PC6
|
||||
#define LCD_CLK_PIN RK29_PIN2_PC4
|
||||
#define LCD_CS_PIN RK29_PIN2_PC5
|
||||
#endif
|
||||
/*****************************************************************************************
|
||||
* frame buffer devices
|
||||
* author: zyw@rock-chips.com
|
||||
@@ -205,10 +213,21 @@ static int rk29_lcd_io_init(void)
|
||||
ret = gpio_request(LCD_TXD_PIN, NULL);
|
||||
ret = gpio_request(LCD_CLK_PIN, NULL);
|
||||
ret = gpio_request(LCD_CS_PIN, NULL);
|
||||
|
||||
#ifdef CONFIG_LCD_USE_SPI0
|
||||
//rk29_mux_api_set(GPIO2C7_SPI1RXD_NAME,GPIO2H_GPIO2C7);
|
||||
rk29_mux_api_set(GPIO2C2_SPI0TXD_NAME,GPIO2H_GPIO2C2);
|
||||
rk29_mux_api_set(GPIO1A4_EMMCWRITEPRT_SPI0CS1_NAME,GPIO1L_GPIO1A4);
|
||||
rk29_mux_api_set(GPIO2C0_SPI0CLK_NAME,GPIO2H_GPIO2C0);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_LCD_USE_SPI1
|
||||
//rk29_mux_api_set(GPIO2C7_SPI1RXD_NAME,GPIO2H_GPIO2C7);
|
||||
rk29_mux_api_set(GPIO2C6_SPI1TXD_NAME,GPIO2H_GPIO2C6);
|
||||
rk29_mux_api_set(GPIO2C5_SPI1CSN0_NAME,GPIO2H_GPIO2C5);
|
||||
rk29_mux_api_set(GPIO2C4_SPI1CLK_NAME,GPIO2H_GPIO2C4);
|
||||
#endif
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -220,10 +239,20 @@ static int rk29_lcd_io_deinit(void)
|
||||
gpio_free(LCD_CLK_PIN);
|
||||
gpio_free(LCD_TXD_PIN);
|
||||
//gpio_free(LCD_RXD_PIN);
|
||||
|
||||
#ifdef CONFIG_LCD_USE_SPI0
|
||||
rk29_mux_api_set(GPIO2C2_SPI0TXD_NAME,GPIO2H_SPI0_TXD);
|
||||
rk29_mux_api_set(GPIO1A4_EMMCWRITEPRT_SPI0CS1_NAME,GPIO1L_SPI0_CSN1);
|
||||
rk29_mux_api_set(GPIO2C0_SPI0CLK_NAME,GPIO2H_SPI0_CLK);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_LCD_USE_SPI1
|
||||
//rk29_mux_api_set(GPIO2C7_SPI1RXD_NAME,GPIO2H_SPI1_RXD);
|
||||
rk29_mux_api_set(GPIO2C6_SPI1TXD_NAME,GPIO2H_SPI1_TXD);
|
||||
rk29_mux_api_set(GPIO2C5_SPI1CSN0_NAME,GPIO2H_SPI1_CSN0);
|
||||
rk29_mux_api_set(GPIO2C4_SPI1CLK_NAME,GPIO2H_SPI1_CLK);
|
||||
#endif
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
@@ -273,11 +273,25 @@ config SPIM1_RK29
|
||||
enable SPI1 master controller for RK29
|
||||
|
||||
config LCD_USE_SPIM_CONTROL
|
||||
bool "switch gpio to spim with spin lock"
|
||||
bool "Switch gpio to spim with spin lock"
|
||||
depends on SPIM_RK29
|
||||
help
|
||||
switch gpio that used for lcd to spim with spin lock.
|
||||
|
||||
config LCD_USE_SPI0
|
||||
bool "If lcd use spi0 to init lcd then select this item"
|
||||
depends on SPIM_RK29 && LCD_USE_SPIM_CONTROL
|
||||
help
|
||||
choose spi bus num to use.
|
||||
|
||||
config LCD_USE_SPI1
|
||||
bool "If lcd use spi1 to init lcd then select this item"
|
||||
depends on SPIM_RK29 && LCD_USE_SPIM_CONTROL
|
||||
default y if LCD_USE_SPIM_CONTROL
|
||||
help
|
||||
choose spi bus num to use.
|
||||
|
||||
|
||||
#
|
||||
# There are lots of SPI device types, with sensors and memory
|
||||
# being probably the most widely used ones.
|
||||
|
||||
@@ -93,16 +93,28 @@ struct chip_data {
|
||||
#ifdef CONFIG_LCD_USE_SPIM_CONTROL
|
||||
void rk29_lcd_spim_spin_lock(void)
|
||||
{
|
||||
#ifdef CONFIG_LCD_USE_SPI0
|
||||
disable_irq(IRQ_SPI0);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_LCD_USE_SPI1
|
||||
disable_irq(IRQ_SPI1);
|
||||
#endif
|
||||
|
||||
preempt_disable();
|
||||
}
|
||||
|
||||
void rk29_lcd_spim_spin_unlock(void)
|
||||
{
|
||||
preempt_enable();
|
||||
enable_irq(IRQ_SPI1);
|
||||
|
||||
#ifdef CONFIG_LCD_USE_SPI0
|
||||
enable_irq(IRQ_SPI0);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_LCD_USE_SPI1
|
||||
enable_irq(IRQ_SPI1);
|
||||
#endif
|
||||
}
|
||||
#else
|
||||
void rk29_lcd_spim_spin_lock(void)
|
||||
|
||||
Reference in New Issue
Block a user