video: atmel: implement lcd_setcolreg function
[platform/kernel/u-boot.git] / drivers / video / atmel_hlcdfb.c
index beb7fa3..b10ca4b 100644 (file)
@@ -51,6 +51,18 @@ short console_row;
 #define lcdc_readl(reg)                __raw_readl((reg))
 #define lcdc_writel(reg, val)  __raw_writel((val), (reg))
 
+/*
+ * the CLUT register map as following
+ * RCLUT(24 ~ 16), GCLUT(15 ~ 8), BCLUT(7 ~ 0)
+ */
+void lcd_setcolreg(ushort regno, ushort red, ushort green, ushort blue)
+{
+       lcdc_writel(((red << LCDC_BASECLUT_RCLUT_Pos) & LCDC_BASECLUT_RCLUT_Msk)
+               | ((green << LCDC_BASECLUT_GCLUT_Pos) & LCDC_BASECLUT_GCLUT_Msk)
+               | ((blue << LCDC_BASECLUT_BCLUT_Pos) & LCDC_BASECLUT_BCLUT_Msk),
+               panel_info.mmio + ATMEL_LCDC_LUT(regno));
+}
+
 void lcd_ctrl_init(void *lcdbase)
 {
        unsigned long value;