* 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
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;
}
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;
}
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.
#ifdef CONFIG_LCD_USE_SPIM_CONTROL\r
void rk29_lcd_spim_spin_lock(void)\r
{\r
+#ifdef CONFIG_LCD_USE_SPI0\r
disable_irq(IRQ_SPI0);\r
+#endif\r
+\r
+#ifdef CONFIG_LCD_USE_SPI1\r
disable_irq(IRQ_SPI1);\r
+#endif\r
+\r
preempt_disable();\r
}\r
\r
void rk29_lcd_spim_spin_unlock(void)\r
{\r
preempt_enable();\r
- enable_irq(IRQ_SPI1);\r
+ \r
+#ifdef CONFIG_LCD_USE_SPI0\r
enable_irq(IRQ_SPI0);\r
+#endif\r
+\r
+#ifdef CONFIG_LCD_USE_SPI1\r
+ enable_irq(IRQ_SPI1);\r
+#endif\r
}\r
#else\r
void rk29_lcd_spim_spin_lock(void)\r