2  *  linux/drivers/video/acornfb.h
 
   4  *  Copyright (C) 1998,1999 Russell King
 
   6  * This program is free software; you can redistribute it and/or modify
 
   7  * it under the terms of the GNU General Public License version 2 as
 
   8  * published by the Free Software Foundation.
 
  10  *  Frame buffer code for Acorn platforms
 
  12 #if defined(HAS_VIDC20)
 
  13 #include <asm/hardware/iomd.h>
 
  14 #define VIDC_PALETTE_SIZE       256
 
  15 #define VIDC_NAME               "VIDC20"
 
  16 #elif defined(HAS_VIDC)
 
  17 #include <asm/hardware/memc.h>
 
  18 #define VIDC_PALETTE_SIZE       16
 
  19 #define VIDC_NAME               "VIDC"
 
  22 #define EXTEND8(x) ((x)|(x)<<8)
 
  23 #define EXTEND4(x) ((x)|(x)<<4|(x)<<8|(x)<<12)
 
  25 struct vidc20_palette {
 
  44         struct vidc20_palette   vidc20;
 
  45         struct vidc_palette     vidc;
 
  51         unsigned long   screen_end;
 
  52         unsigned int    dram_size;
 
  53         unsigned int    vram_half_sam;
 
  54         unsigned int    palette_size;
 
  56         unsigned int    using_vram      : 1;
 
  57         unsigned int    dpms            : 1;
 
  59         union palette palette[VIDC_PALETTE_SIZE];
 
  61         u32             pseudo_palette[16];
 
  68         u_int   h_display_start;
 
  76         u_int   v_display_start;
 
 101         const struct modey_params *modey;
 
 106 #define VID_CTL_VS_NVSYNC       (1 << 3)
 
 107 #define VID_CTL_HS_NHSYNC       (1 << 2)
 
 108 #define VID_CTL_24MHz           (0)
 
 109 #define VID_CTL_25MHz           (1)
 
 110 #define VID_CTL_36MHz           (2)
 
 112 #define VIDC_CTRL_CSYNC         (1 << 7)
 
 113 #define VIDC_CTRL_INTERLACE     (1 << 6)
 
 114 #define VIDC_CTRL_FIFO_0_4      (0 << 4)
 
 115 #define VIDC_CTRL_FIFO_1_5      (1 << 4)
 
 116 #define VIDC_CTRL_FIFO_2_6      (2 << 4)
 
 117 #define VIDC_CTRL_FIFO_3_7      (3 << 4)
 
 118 #define VIDC_CTRL_1BPP          (0 << 2)
 
 119 #define VIDC_CTRL_2BPP          (1 << 2)
 
 120 #define VIDC_CTRL_4BPP          (2 << 2)
 
 121 #define VIDC_CTRL_8BPP          (3 << 2)
 
 122 #define VIDC_CTRL_DIV3          (0 << 0)
 
 123 #define VIDC_CTRL_DIV2          (1 << 0)
 
 124 #define VIDC_CTRL_DIV1_5        (2 << 0)
 
 125 #define VIDC_CTRL_DIV1          (3 << 0)
 
 133 #define VIDC20_CTRL             0xe0000000
 
 134 #define VIDC20_CTRL_PIX_VCLK    (0 << 0)
 
 135 #define VIDC20_CTRL_PIX_HCLK    (1 << 0)
 
 136 #define VIDC20_CTRL_PIX_RCLK    (2 << 0)
 
 137 #define VIDC20_CTRL_PIX_CK      (0 << 2)
 
 138 #define VIDC20_CTRL_PIX_CK2     (1 << 2)
 
 139 #define VIDC20_CTRL_PIX_CK3     (2 << 2)
 
 140 #define VIDC20_CTRL_PIX_CK4     (3 << 2)
 
 141 #define VIDC20_CTRL_PIX_CK5     (4 << 2)
 
 142 #define VIDC20_CTRL_PIX_CK6     (5 << 2)
 
 143 #define VIDC20_CTRL_PIX_CK7     (6 << 2)
 
 144 #define VIDC20_CTRL_PIX_CK8     (7 << 2)
 
 145 #define VIDC20_CTRL_1BPP        (0 << 5)
 
 146 #define VIDC20_CTRL_2BPP        (1 << 5)
 
 147 #define VIDC20_CTRL_4BPP        (2 << 5)
 
 148 #define VIDC20_CTRL_8BPP        (3 << 5)
 
 149 #define VIDC20_CTRL_16BPP       (4 << 5)
 
 150 #define VIDC20_CTRL_32BPP       (6 << 5)
 
 151 #define VIDC20_CTRL_FIFO_NS     (0 << 8)
 
 152 #define VIDC20_CTRL_FIFO_4      (1 << 8)
 
 153 #define VIDC20_CTRL_FIFO_8      (2 << 8)
 
 154 #define VIDC20_CTRL_FIFO_12     (3 << 8)
 
 155 #define VIDC20_CTRL_FIFO_16     (4 << 8)
 
 156 #define VIDC20_CTRL_FIFO_20     (5 << 8)
 
 157 #define VIDC20_CTRL_FIFO_24     (6 << 8)
 
 158 #define VIDC20_CTRL_FIFO_28     (7 << 8)
 
 159 #define VIDC20_CTRL_INT         (1 << 12)
 
 160 #define VIDC20_CTRL_DUP         (1 << 13)
 
 161 #define VIDC20_CTRL_PDOWN       (1 << 14)
 
 163 #define VIDC20_ECTL             0xc0000000
 
 164 #define VIDC20_ECTL_REG(x)      ((x) & 0xf3)
 
 165 #define VIDC20_ECTL_ECK         (1 << 2)
 
 166 #define VIDC20_ECTL_REDPED      (1 << 8)
 
 167 #define VIDC20_ECTL_GREENPED    (1 << 9)
 
 168 #define VIDC20_ECTL_BLUEPED     (1 << 10)
 
 169 #define VIDC20_ECTL_DAC         (1 << 12)
 
 170 #define VIDC20_ECTL_LCDGS       (1 << 13)
 
 171 #define VIDC20_ECTL_HRM         (1 << 14)
 
 173 #define VIDC20_ECTL_HS_MASK     (3 << 16)
 
 174 #define VIDC20_ECTL_HS_HSYNC    (0 << 16)
 
 175 #define VIDC20_ECTL_HS_NHSYNC   (1 << 16)
 
 176 #define VIDC20_ECTL_HS_CSYNC    (2 << 16)
 
 177 #define VIDC20_ECTL_HS_NCSYNC   (3 << 16)
 
 179 #define VIDC20_ECTL_VS_MASK     (3 << 18)
 
 180 #define VIDC20_ECTL_VS_VSYNC    (0 << 18)
 
 181 #define VIDC20_ECTL_VS_NVSYNC   (1 << 18)
 
 182 #define VIDC20_ECTL_VS_CSYNC    (2 << 18)
 
 183 #define VIDC20_ECTL_VS_NCSYNC   (3 << 18)
 
 185 #define VIDC20_DCTL             0xf0000000
 
 186 /* 0-9 = number of words in scanline */
 
 187 #define VIDC20_DCTL_SNA         (1 << 12)
 
 188 #define VIDC20_DCTL_HDIS        (1 << 13)
 
 189 #define VIDC20_DCTL_BUS_NS      (0 << 16)
 
 190 #define VIDC20_DCTL_BUS_D31_0   (1 << 16)
 
 191 #define VIDC20_DCTL_BUS_D63_32  (2 << 16)
 
 192 #define VIDC20_DCTL_BUS_D63_0   (3 << 16)
 
 193 #define VIDC20_DCTL_VRAM_DIS    (0 << 18)
 
 194 #define VIDC20_DCTL_VRAM_PXCLK  (1 << 18)
 
 195 #define VIDC20_DCTL_VRAM_PXCLK2 (2 << 18)
 
 196 #define VIDC20_DCTL_VRAM_PXCLK4 (3 << 18)