OMAP: DSS2: DSI: add helpers for DCS read/write
authorTomi Valkeinen <tomi.valkeinen@nokia.com>
Wed, 16 Dec 2009 12:53:15 +0000 (14:53 +0200)
committerTomi Valkeinen <tomi.valkeinen@nokia.com>
Mon, 15 Feb 2010 13:14:41 +0000 (15:14 +0200)
Add helper functions for most common DCS read and write operations.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
arch/arm/plat-omap/include/plat/display.h
drivers/video/omap2/dss/dsi.c

index c66e464732df1e33c24d068c3b7c4eca40760306..47df5f6fbf899bd6ed6fdf8e83d7c830275fefce 100644 (file)
@@ -233,8 +233,11 @@ int omap_rfbi_setup_te(enum omap_rfbi_te_mode mode,
 void dsi_bus_lock(void);
 void dsi_bus_unlock(void);
 int dsi_vc_dcs_write(int channel, u8 *data, int len);
+int dsi_vc_dcs_write_0(int channel, u8 dcs_cmd);
+int dsi_vc_dcs_write_1(int channel, u8 dcs_cmd, u8 param);
 int dsi_vc_dcs_write_nosync(int channel, u8 *data, int len);
 int dsi_vc_dcs_read(int channel, u8 dcs_cmd, u8 *buf, int buflen);
+int dsi_vc_dcs_read_1(int channel, u8 dcs_cmd, u8 *data);
 int dsi_vc_set_max_rx_packet_size(int channel, u16 len);
 int dsi_vc_send_null(int channel);
 int dsi_vc_send_bta_sync(int channel);
index b38974523d4829b2a31dae7eb8b35f7ace7d7d1b..e49f063fb61523bc586e7fd74f5cdc35136d2f5d 100644 (file)
@@ -2176,6 +2176,21 @@ int dsi_vc_dcs_write(int channel, u8 *data, int len)
 }
 EXPORT_SYMBOL(dsi_vc_dcs_write);
 
+int dsi_vc_dcs_write_0(int channel, u8 dcs_cmd)
+{
+       return dsi_vc_dcs_write(channel, &dcs_cmd, 1);
+}
+EXPORT_SYMBOL(dsi_vc_dcs_write_0);
+
+int dsi_vc_dcs_write_1(int channel, u8 dcs_cmd, u8 param)
+{
+       u8 buf[2];
+       buf[0] = dcs_cmd;
+       buf[1] = param;
+       return dsi_vc_dcs_write(channel, buf, 2);
+}
+EXPORT_SYMBOL(dsi_vc_dcs_write_1);
+
 int dsi_vc_dcs_read(int channel, u8 dcs_cmd, u8 *buf, int buflen)
 {
        u32 val;
@@ -2268,6 +2283,21 @@ int dsi_vc_dcs_read(int channel, u8 dcs_cmd, u8 *buf, int buflen)
 }
 EXPORT_SYMBOL(dsi_vc_dcs_read);
 
+int dsi_vc_dcs_read_1(int channel, u8 dcs_cmd, u8 *data)
+{
+       int r;
+
+       r = dsi_vc_dcs_read(channel, dcs_cmd, data, 1);
+
+       if (r < 0)
+               return r;
+
+       if (r != 1)
+               return -EIO;
+
+       return 0;
+}
+EXPORT_SYMBOL(dsi_vc_dcs_read_1);
 
 int dsi_vc_set_max_rx_packet_size(int channel, u16 len)
 {