ti_lcdcreg.h revision 1.1 1 1.1 jmcneill /* $NetBSD: ti_lcdcreg.h,v 1.1 2019/11/03 22:59:06 jmcneill Exp $ */
2 1.1 jmcneill /*-
3 1.1 jmcneill * Copyright 2013 Oleksandr Tymoshenko <gonzo (at) freebsd.org>
4 1.1 jmcneill * All rights reserved.
5 1.1 jmcneill *
6 1.1 jmcneill * Redistribution and use in source and binary forms, with or without
7 1.1 jmcneill * modification, are permitted provided that the following conditions
8 1.1 jmcneill * are met:
9 1.1 jmcneill * 1. Redistributions of source code must retain the above copyright
10 1.1 jmcneill * notice, this list of conditions and the following disclaimer.
11 1.1 jmcneill * 2. Redistributions in binary form must reproduce the above copyright
12 1.1 jmcneill * notice, this list of conditions and the following disclaimer in the
13 1.1 jmcneill * documentation and/or other materials provided with the distribution.
14 1.1 jmcneill *
15 1.1 jmcneill * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16 1.1 jmcneill * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 1.1 jmcneill * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 1.1 jmcneill * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19 1.1 jmcneill * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20 1.1 jmcneill * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21 1.1 jmcneill * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 1.1 jmcneill * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23 1.1 jmcneill * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24 1.1 jmcneill * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25 1.1 jmcneill * SUCH DAMAGE.
26 1.1 jmcneill */
27 1.1 jmcneill
28 1.1 jmcneill #define LCD_PID 0x00
29 1.1 jmcneill #define LCD_CTRL 0x04
30 1.1 jmcneill #define CTRL_DIV_MASK 0xff
31 1.1 jmcneill #define CTRL_DIV_SHIFT 8
32 1.1 jmcneill #define CTRL_AUTO_UFLOW_RESTART (1 << 1)
33 1.1 jmcneill #define CTRL_RASTER_MODE 1
34 1.1 jmcneill #define CTRL_LIDD_MODE 0
35 1.1 jmcneill #define LCD_LIDD_CTRL 0x0C
36 1.1 jmcneill #define LCD_LIDD_CS0_CONF 0x10
37 1.1 jmcneill #define LCD_LIDD_CS0_ADDR 0x14
38 1.1 jmcneill #define LCD_LIDD_CS0_DATA 0x18
39 1.1 jmcneill #define LCD_LIDD_CS1_CONF 0x1C
40 1.1 jmcneill #define LCD_LIDD_CS1_ADDR 0x20
41 1.1 jmcneill #define LCD_LIDD_CS1_DATA 0x24
42 1.1 jmcneill #define LCD_RASTER_CTRL 0x28
43 1.1 jmcneill #define RASTER_CTRL_TFT24_UNPACKED (1 << 26)
44 1.1 jmcneill #define RASTER_CTRL_TFT24 (1 << 25)
45 1.1 jmcneill #define RASTER_CTRL_STN565 (1 << 24)
46 1.1 jmcneill #define RASTER_CTRL_TFTMAP (1 << 23)
47 1.1 jmcneill #define RASTER_CTRL_NIBMODE (1 << 22)
48 1.1 jmcneill #define RASTER_CTRL_PALMODE_PALETTE_AND_DATA (0 << 20)
49 1.1 jmcneill #define RASTER_CTRL_PALMODE_PALETTE_ONLY (1 << 20)
50 1.1 jmcneill #define RASTER_CTRL_PALMODE_DATA_ONLY (2 << 20)
51 1.1 jmcneill #define RASTER_CTRL_REQDLY(v) ((v) << 12)
52 1.1 jmcneill #define RASTER_CTRL_MONO8B (1 << 9)
53 1.1 jmcneill #define RASTER_CTRL_RDORDER (1 << 8)
54 1.1 jmcneill #define RASTER_CTRL_LCDTFT (1 << 7)
55 1.1 jmcneill #define RASTER_CTRL_LCDBW (1 << 1)
56 1.1 jmcneill #define RASTER_CTRL_LCDEN (1 << 0)
57 1.1 jmcneill #define LCD_RASTER_TIMING_0 0x2C
58 1.1 jmcneill #define RASTER_TIMING_0_HBP(v) ((((v) - 1) & 0xff) << 24)
59 1.1 jmcneill #define RASTER_TIMING_0_HFP(v) ((((v) - 1) & 0xff) << 16)
60 1.1 jmcneill #define RASTER_TIMING_0_HSW(v) ((((v) - 1) & 0x3f) << 10)
61 1.1 jmcneill #define RASTER_TIMING_0_PPL(w) \
62 1.1 jmcneill (((((w) - 1) >> 7) & 0x8) | ((((w) - 1) >> 0) & 0x3f0))
63 1.1 jmcneill #define LCD_RASTER_TIMING_1 0x30
64 1.1 jmcneill #define RASTER_TIMING_1_VBP(v) (((v) & 0xff) << 24)
65 1.1 jmcneill #define RASTER_TIMING_1_VFP(v) (((v) & 0xff) << 16)
66 1.1 jmcneill #define RASTER_TIMING_1_VSW(v) ((((v) - 1) & 0x3f) << 10)
67 1.1 jmcneill #define RASTER_TIMING_1_LPP(h) ((((h) - 1) & 0x3ff) << 0)
68 1.1 jmcneill #define LCD_RASTER_TIMING_2 0x34
69 1.1 jmcneill #define RASTER_TIMING_2_HSW(v) (((((v) - 1) >> 6) & 0xf) << 27)
70 1.1 jmcneill #define RASTER_TIMING_2_LPP(h) (((h) & 0x400) ? (1 << 26) : 0)
71 1.1 jmcneill #define RASTER_TIMING_2_PHSVS (1 << 25)
72 1.1 jmcneill #define RASTER_TIMING_2_PHSVS_RISE (1 << 24)
73 1.1 jmcneill #define RASTER_TIMING_2_PHSVS_FALL (0 << 24)
74 1.1 jmcneill #define RASTER_TIMING_2_IOE (1 << 23)
75 1.1 jmcneill #define RASTER_TIMING_2_IPC (1 << 22)
76 1.1 jmcneill #define RASTER_TIMING_2_IHS (1 << 21)
77 1.1 jmcneill #define RASTER_TIMING_2_IVS (1 << 20)
78 1.1 jmcneill #define RASTER_TIMING_2_ACBI(x) ((x) << 16)
79 1.1 jmcneill #define RASTER_TIMING_2_ACB(x) ((x) << 8)
80 1.1 jmcneill #define RASTER_TIMING_2_HBP(v) ((((v) - 1) >> 4) & 0x30)
81 1.1 jmcneill #define RASTER_TIMING_2_HFP(v) ((((v) - 1) >> 8) & 0x3)
82 1.1 jmcneill #define LCD_RASTER_SUBPANEL 0x38
83 1.1 jmcneill #define LCD_RASTER_SUBPANEL2 0x3C
84 1.1 jmcneill #define LCD_LCDDMA_CTRL 0x40
85 1.1 jmcneill #define LCDDMA_CTRL_DMA_MASTER_PRIO_SHIFT 16
86 1.1 jmcneill #define LCDDMA_CTRL_TH_FIFO_RDY_SHIFT 8
87 1.1 jmcneill #define LCDDMA_CTRL_BURST_SIZE_SHIFT 4
88 1.1 jmcneill #define LCDDMA_CTRL_BYTES_SWAP (1 << 3)
89 1.1 jmcneill #define LCDDMA_CTRL_BE (1 << 1)
90 1.1 jmcneill #define LCDDMA_CTRL_FB0_FB1 (1 << 0)
91 1.1 jmcneill #define LCDDMA_CTRL_FB0_ONLY (0 << 0)
92 1.1 jmcneill #define LCD_LCDDMA_FB0_BASE 0x44
93 1.1 jmcneill #define LCD_LCDDMA_FB0_CEILING 0x48
94 1.1 jmcneill #define LCD_LCDDMA_FB1_BASE 0x4C
95 1.1 jmcneill #define LCD_LCDDMA_FB1_CEILING 0x50
96 1.1 jmcneill #define LCD_SYSCONFIG 0x54
97 1.1 jmcneill #define SYSCONFIG_STANDBY_FORCE (0 << 4)
98 1.1 jmcneill #define SYSCONFIG_STANDBY_NONE (1 << 4)
99 1.1 jmcneill #define SYSCONFIG_STANDBY_SMART (2 << 4)
100 1.1 jmcneill #define SYSCONFIG_IDLE_FORCE (0 << 2)
101 1.1 jmcneill #define SYSCONFIG_IDLE_NONE (1 << 2)
102 1.1 jmcneill #define SYSCONFIG_IDLE_SMART (2 << 2)
103 1.1 jmcneill #define LCD_IRQSTATUS_RAW 0x58
104 1.1 jmcneill #define LCD_IRQSTATUS 0x5C
105 1.1 jmcneill #define LCD_IRQENABLE_SET 0x60
106 1.1 jmcneill #define LCD_IRQENABLE_CLEAR 0x64
107 1.1 jmcneill #define IRQ_EOF1 (1 << 9)
108 1.1 jmcneill #define IRQ_EOF0 (1 << 8)
109 1.1 jmcneill #define IRQ_PL (1 << 6)
110 1.1 jmcneill #define IRQ_FUF (1 << 5)
111 1.1 jmcneill #define IRQ_ACB (1 << 3)
112 1.1 jmcneill #define IRQ_SYNC_LOST (1 << 2)
113 1.1 jmcneill #define IRQ_RASTER_DONE (1 << 1)
114 1.1 jmcneill #define IRQ_FRAME_DONE (1 << 0)
115 1.1 jmcneill #define LCD_CLKC_ENABLE 0x6C
116 1.1 jmcneill #define CLKC_ENABLE_DMA (1 << 2)
117 1.1 jmcneill #define CLKC_ENABLE_LIDD (1 << 1)
118 1.1 jmcneill #define CLKC_ENABLE_CORE (1 << 0)
119 1.1 jmcneill #define LCD_CLKC_RESET 0x70
120 1.1 jmcneill #define CLKC_RESET_MAIN (1 << 3)
121 1.1 jmcneill #define CLKC_RESET_DMA (1 << 2)
122 1.1 jmcneill #define CLKC_RESET_LIDD (1 << 1)
123 1.1 jmcneill #define CLKC_RESET_CORE (1 << 0)
124 1.1 jmcneill
125 1.1 jmcneill /* 16-Entry Palette/Buffer Format */
126 1.1 jmcneill #define PALETTE_BPP_1 (0 << 12)
127 1.1 jmcneill #define PALETTE_BPP_2 (1 << 12)
128 1.1 jmcneill #define PALETTE_BPP_4 (2 << 12)
129 1.1 jmcneill #define PALETTE_BPP_8 (3 << 12)
130 1.1 jmcneill #define PALETTE_BPP_XX (4 << 12)
131 1.1 jmcneill #define PALETTE_MONO(v) ((v) & 0xf)
132 1.1 jmcneill #define PALETTE_RED(r) (((r) & 0xf) << 8)
133 1.1 jmcneill #define PALETTE_GREEN(g) (((g) & 0xf) << 4)
134 1.1 jmcneill #define PALETTE_BLUE(b) (((b) & 0xf) << 0)
135 1.1 jmcneill #define PALETTE_COLOR(r, g, b) \
136 1.1 jmcneill (PALETTE_RED(r) | PALETTE_GREEN(g) | PALETTE_BLUE(b))
137