⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 glamo-regs.patch

📁 Uboot常用的移植patches, 方便定制移植到s3c2440
💻 PATCH
📖 第 1 页 / 共 2 页
字号:
Index: u-boot/board/neo1973/gta02/glamo-regs.h===================================================================--- /dev/null+++ u-boot/board/neo1973/gta02/glamo-regs.h@@ -0,0 +1,628 @@+#ifndef _GLAMO_REGS_H+#define _GLAMO_REGS_H++/* Smedia Glamo 336x/337x driver+ *+ * (C) 2007 by OpenMoko, Inc.+ * Author: Harald Welte <laforge@openmoko.org>+ * All rights reserved.+ *+ * This program is free software; you can redistribute it and/or+ * modify it under the terms of the GNU General Public License as+ * published by the Free Software Foundation; either version 2 of+ * the License, or (at your option) any later version.+ *+ * This program is distributed in the hope that it will be useful,+ * but WITHOUT ANY WARRANTY; without even the implied warranty of+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the+ * GNU General Public License for more details.+ *+ * You should have received a copy of the GNU General Public License+ * along with this program; if not, write to the Free Software+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,+ * MA 02111-1307 USA+ */++enum glamo_regster_offsets {+	GLAMO_REGOFS_GENERIC	= 0x0000,+	GLAMO_REGOFS_HOSTBUS	= 0x0200,+	GLAMO_REGOFS_MEMORY	= 0x0300,+	GLAMO_REGOFS_VIDCAP	= 0x0400,+	GLAMO_REGOFS_ISP	= 0x0500,+	GLAMO_REGOFS_JPEG	= 0x0800,+	GLAMO_REGOFS_MPEG	= 0x0c00,+	GLAMO_REGOFS_LCD	= 0x1100,+	GLAMO_REGOFS_MMC	= 0x1400,+	GLAMO_REGOFS_MPROC0	= 0x1500,+	GLAMO_REGOFS_MPROC1	= 0x1580,+	GLAMO_REGOFS_CMDQUEUE	= 0x1600,+	GLAMO_REGOFS_RISC	= 0x1680,+	GLAMO_REGOFS_2D		= 0x1700,+	GLAMO_REGOFS_3D		= 0x1b00,+	GLAMO_REGOFS_END	= 0x2400,+};+++enum glamo_register_generic {+	GLAMO_REG_GCONF1	= 0x0000,+	GLAMO_REG_GCONF2	= 0x0002,+#define	GLAMO_REG_DEVICE_ID	GLAMO_REG_GCONF2+	GLAMO_REG_GCONF3	= 0x0004,+#define	GLAMO_REG_REVISION_ID	GLAMO_REG_GCONF3+	GLAMO_REG_IRQ_GEN1	= 0x0006,+#define GLAMO_REG_IRQ_ENABLE	GLAMO_REG_IRQ_GEN1+	GLAMO_REG_IRQ_GEN2	= 0x0008,+#define GLAMO_REG_IRQ_SET	GLAMO_REG_IRQ_GEN2+	GLAMO_REG_IRQ_GEN3	= 0x000a,+#define GLAMO_REG_IRQ_CLEAR	GLAMO_REG_IRQ_GEN3+	GLAMO_REG_IRQ_GEN4	= 0x000c,+#define GLAMO_REG_IRQ_STATUS	GLAMO_REG_IRQ_GEN4+	GLAMO_REG_CLOCK_HOST	= 0x0010,+	GLAMO_REG_CLOCK_MEMORY	= 0x0012,+	GLAMO_REG_CLOCK_LCD	= 0x0014,+	GLAMO_REG_CLOCK_MMC	= 0x0016,+	GLAMO_REG_CLOCK_ISP	= 0x0018,+	GLAMO_REG_CLOCK_JPEG	= 0x001a,+	GLAMO_REG_CLOCK_3D	= 0x001c,+	GLAMO_REG_CLOCK_2D	= 0x001e,+	GLAMO_REG_CLOCK_RISC1	= 0x0020,	/* 3365 only? */+	GLAMO_REG_CLOCK_RISC2	= 0x0022,	/* 3365 only? */+	GLAMO_REG_CLOCK_MPEG	= 0x0024,+	GLAMO_REG_CLOCK_MPROC	= 0x0026,++	GLAMO_REG_CLOCK_GEN5_1	= 0x0030,+	GLAMO_REG_CLOCK_GEN5_2	= 0x0032,+	GLAMO_REG_CLOCK_GEN6	= 0x0034,+	GLAMO_REG_CLOCK_GEN7	= 0x0036,+	GLAMO_REG_CLOCK_GEN8	= 0x0038,+	GLAMO_REG_CLOCK_GEN9	= 0x003a,+	GLAMO_REG_CLOCK_GEN10	= 0x003c,+	GLAMO_REG_CLOCK_GEN11	= 0x003e,+	GLAMO_REG_PLL_GEN1	= 0x0040,+	GLAMO_REG_PLL_GEN2	= 0x0042,+	GLAMO_REG_PLL_GEN3	= 0x0044,+	GLAMO_REG_PLL_GEN4	= 0x0046,+	GLAMO_REG_PLL_GEN5	= 0x0048,+	GLAMO_REG_GPIO_GEN1	= 0x0050,+	GLAMO_REG_GPIO_GEN2	= 0x0052,+	GLAMO_REG_GPIO_GEN3	= 0x0054,+	GLAMO_REG_GPIO_GEN4	= 0x0056,+	GLAMO_REG_GPIO_GEN5	= 0x0058,+	GLAMO_REG_GPIO_GEN6	= 0x005a,+	GLAMO_REG_GPIO_GEN7	= 0x005c,+	GLAMO_REG_GPIO_GEN8	= 0x005e,+	GLAMO_REG_GPIO_GEN9	= 0x0060,+	GLAMO_REG_GPIO_GEN10	= 0x0062,+	GLAMO_REG_DFT_GEN1	= 0x0070,+	GLAMO_REG_DFT_GEN2	= 0x0072,+	GLAMO_REG_DFT_GEN3	= 0x0074,+	GLAMO_REG_DFT_GEN4	= 0x0076,++	GLAMO_REG_DFT_GEN5	= 0x01e0,+	GLAMO_REG_DFT_GEN6	= 0x01f0,+};++#define GLAMO_REG_HOSTBUS(x)	(GLAMO_REGOFS_HOSTBUS-2+(x*2))++#define REG_MEM(x)		(GLAMO_REGOFS_MEMORY+(x))+#define GLAMO_REG_MEM_TIMING(x)	(GLAMO_REG_MEM_TIMING1-2+(x*2))++enum glamo_register_mem {+	GLAMO_REG_MEM_TYPE	= REG_MEM(0x00),+	GLAMO_REG_MEM_GEN	= REG_MEM(0x02),+	GLAMO_REG_MEM_TIMING1	= REG_MEM(0x04),+	GLAMO_REG_MEM_TIMING2	= REG_MEM(0x06),+	GLAMO_REG_MEM_TIMING3	= REG_MEM(0x08),+	GLAMO_REG_MEM_TIMING4	= REG_MEM(0x0a),+	GLAMO_REG_MEM_TIMING5	= REG_MEM(0x0c),+	GLAMO_REG_MEM_TIMING6	= REG_MEM(0x0e),+	GLAMO_REG_MEM_TIMING7	= REG_MEM(0x10),+	GLAMO_REG_MEM_TIMING8	= REG_MEM(0x12),+	GLAMO_REG_MEM_TIMING9	= REG_MEM(0x14),+	GLAMO_REG_MEM_TIMING10	= REG_MEM(0x16),+	GLAMO_REG_MEM_TIMING11	= REG_MEM(0x18),+	GLAMO_REG_MEM_POWER1	= REG_MEM(0x1a),+	GLAMO_REG_MEM_POWER2	= REG_MEM(0x1c),+	GLAMO_REG_MEM_LCD_BUF1	= REG_MEM(0x1e),+	GLAMO_REG_MEM_LCD_BUF2	= REG_MEM(0x20),+	GLAMO_REG_MEM_LCD_BUF3	= REG_MEM(0x22),+	GLAMO_REG_MEM_LCD_BUF4	= REG_MEM(0x24),+	GLAMO_REG_MEM_BIST1	= REG_MEM(0x26),+	GLAMO_REG_MEM_BIST2	= REG_MEM(0x28),+	GLAMO_REG_MEM_BIST3	= REG_MEM(0x2a),+	GLAMO_REG_MEM_BIST4	= REG_MEM(0x2c),+	GLAMO_REG_MEM_BIST5	= REG_MEM(0x2e),+	GLAMO_REG_MEM_MAH1	= REG_MEM(0x30),+	GLAMO_REG_MEM_MAH2	= REG_MEM(0x32),+	GLAMO_REG_MEM_DRAM1	= REG_MEM(0x34),+	GLAMO_REG_MEM_DRAM2	= REG_MEM(0x36),+	GLAMO_REG_MEM_CRC	= REG_MEM(0x38),+};++#define GLAMO_MEM_TYPE_MASK	0x03++enum glamo_reg_mem_dram1 {+	GLAMO_MEM_DRAM1_EN_SDRAM_CLK	= (1 << 11),+	GLAMO_MEM_DRAM1_SELF_REFRESH	= (1 << 12),+};++enum glamo_reg_mem_dram2 {+	GLAMO_MEM_DRAM2_DEEP_PWRDOWN	= (1 << 12),+};++enum glamo_irq_index {+	GLAMO_IRQIDX_HOSTBUS	= 0,+	GLAMO_IRQIDX_JPEG	= 1,+	GLAMO_IRQIDX_MPEG	= 2,+	GLAMO_IRQIDX_MPROC1	= 3,+	GLAMO_IRQIDX_MPROC0	= 4,+	GLAMO_IRQIDX_CMDQUEUE	= 5,+	GLAMO_IRQIDX_2D		= 6,+	GLAMO_IRQIDX_MMC	= 7,+	GLAMO_IRQIDX_RISC	= 8,+};++enum glamo_irq {+	GLAMO_IRQ_HOSTBUS	= (1 << GLAMO_IRQIDX_HOSTBUS),+	GLAMO_IRQ_JPEG		= (1 << GLAMO_IRQIDX_JPEG),+	GLAMO_IRQ_MPEG		= (1 << GLAMO_IRQIDX_MPEG),+	GLAMO_IRQ_MPROC1	= (1 << GLAMO_IRQIDX_MPROC1),+	GLAMO_IRQ_MPROC0	= (1 << GLAMO_IRQIDX_MPROC0),+	GLAMO_IRQ_CMDQUEUE	= (1 << GLAMO_IRQIDX_CMDQUEUE),+	GLAMO_IRQ_2D		= (1 << GLAMO_IRQIDX_2D),+	GLAMO_IRQ_MMC		= (1 << GLAMO_IRQIDX_MMC),+	GLAMO_IRQ_RISC		= (1 << GLAMO_IRQIDX_RISC),+};++enum glamo_reg_clock_host {+	GLAMO_CLOCK_HOST_DG_BCLK	= 0x0001,+	GLAMO_CLOCK_HOST_DG_M0CLK	= 0x0004,+	GLAMO_CLOCK_HOST_RESET		= 0x1000,+};++enum glamo_reg_clock_mem {+	GLAMO_CLOCK_MEM_DG_M1CLK	= 0x0001,+	GLAMO_CLOCK_MEM_EN_M1CLK	= 0x0002,+	GLAMO_CLOCK_MEM_DG_MOCACLK	= 0x0004,+	GLAMO_CLOCK_MEM_EN_MOCACLK	= 0x0008,+	GLAMO_CLOCK_MEM_RESET		= 0x1000,+	GLAMO_CLOCK_MOCA_RESET		= 0x2000,+};++enum glamo_reg_clock_lcd {+	GLAMO_CLOCK_LCD_DG_DCLK		= 0x0001,+	GLAMO_CLOCK_LCD_EN_DCLK		= 0x0002,+	GLAMO_CLOCK_LCD_DG_DMCLK	= 0x0004,+	GLAMO_CLOCK_LCD_EN_DMCLK	= 0x0008,+	//+	GLAMO_CLOCK_LCD_EN_DHCLK	= 0x0020,+	GLAMO_CLOCK_LCD_DG_M5CLK	= 0x0040,+	GLAMO_CLOCK_LCD_EN_M5CLK	= 0x0080,+	GLAMO_CLOCK_LCD_RESET		= 0x1000,+};++enum glamo_reg_clock_mmc {+	GLAMO_CLOCK_MMC_DG_TCLK		= 0x0001,+	GLAMO_CLOCK_MMC_EN_TCLK		= 0x0002,+	GLAMO_CLOCK_MMC_DG_M9CLK	= 0x0004,+	GLAMO_CLOCK_MMC_EN_M9CLK	= 0x0008,+	GLAMO_CLOCK_MMC_RESET		= 0x1000,+};++enum glamo_reg_basic_mmc {+	/* set to disable CRC error rejection */+	GLAMO_BASIC_MMC_DISABLE_CRC	= 0x0001,+	/* enable completion interrupt */+	GLAMO_BASIC_MMC_EN_COMPL_INT	= 0x0002,+	/* stop MMC clock while enforced idle waiting for data from card */+	GLAMO_BASIC_MMC_NO_CLK_RD_WAIT	= 0x0004,+	/* 0 = 1-bit bus to card, 1 = use 4-bit bus (has to be negotiated) */+	GLAMO_BASIC_MMC_EN_4BIT_DATA	= 0x0008,+	/* enable 75K pullups on D3..D0 */+	GLAMO_BASIC_MMC_EN_DATA_PUPS	= 0x0010,+	/* enable 75K pullup on CMD */+	GLAMO_BASIC_MMC_EN_CMD_PUP	= 0x0020,+	/* IO drive strength 00=weak -> 11=strongest */+	GLAMO_BASIC_MMC_EN_DR_STR0	= 0x0040,+	GLAMO_BASIC_MMC_EN_DR_STR1	= 0x0080,+	/* TCLK delay stage A, 0000 = 500ps --> 1111 = 8ns */+	GLAMO_BASIC_MMC_EN_TCLK_DLYA0	= 0x0100,+	GLAMO_BASIC_MMC_EN_TCLK_DLYA1	= 0x0200,+	GLAMO_BASIC_MMC_EN_TCLK_DLYA2	= 0x0400,+	GLAMO_BASIC_MMC_EN_TCLK_DLYA3	= 0x0800,+	/* TCLK delay stage B (cumulative), 0000 = 500ps --> 1111 = 8ns */+	GLAMO_BASIC_MMC_EN_TCLK_DLYB0	= 0x1000,+	GLAMO_BASIC_MMC_EN_TCLK_DLYB1	= 0x2000,+	GLAMO_BASIC_MMC_EN_TCLK_DLYB2	= 0x4000,+	GLAMO_BASIC_MMC_EN_TCLK_DLYB3	= 0x8000,+};++enum glamo_reg_stat1_mmc {+	/* command "counter" (really: toggle) */+	GLAMO_STAT1_MMC_CMD_CTR	= 0x8000,+	/* engine is idle */+	GLAMO_STAT1_MMC_IDLE	= 0x4000,+	/* readback response is ready */+	GLAMO_STAT1_MMC_RB_RRDY	= 0x0200,+	/* readback data is ready */+	GLAMO_STAT1_MMC_RB_DRDY	= 0x0100,+	/* no response timeout */+	GLAMO_STAT1_MMC_RTOUT	= 0x0020,+	/* no data timeout */+	GLAMO_STAT1_MMC_DTOUT	= 0x0010,+	/* CRC error on block write */+	GLAMO_STAT1_MMC_BWERR	= 0x0004,+	/* CRC error on block read */+	GLAMO_STAT1_MMC_BRERR	= 0x0002+};++enum glamo_reg_fire_mmc {+	/* command "counter" (really: toggle)+	 * the STAT1 register reflects this so you can ensure you don't look+	 * at status for previous command+	 */+	GLAMO_FIRE_MMC_CMD_CTR	= 0x8000,+	/* sets kind of response expected */+	GLAMO_FIRE_MMC_RES_MASK	= 0x0700,+	/* sets command type */+	GLAMO_FIRE_MMC_TYP_MASK	= 0x00C0,+	/* sets command class */+	GLAMO_FIRE_MMC_CLS_MASK	= 0x000F,+};++enum glamo_fire_mmc_response_types {+	GLAMO_FIRE_MMC_RSPT_R1	= 0x0000,+	GLAMO_FIRE_MMC_RSPT_R1b	= 0x0100,+	GLAMO_FIRE_MMC_RSPT_R2	= 0x0200,+	GLAMO_FIRE_MMC_RSPT_R3	= 0x0300,+	GLAMO_FIRE_MMC_RSPT_R4	= 0x0400,+	GLAMO_FIRE_MMC_RSPT_R5	= 0x0500,+};++enum glamo_fire_mmc_command_types {+	/* broadcast, no response */+	GLAMO_FIRE_MMC_CMDT_BNR	= 0x0000,+	/* broadcast, with response */+	GLAMO_FIRE_MMC_CMDT_BR	= 0x0040,+	/* addressed, no data */+	GLAMO_FIRE_MMC_CMDT_AND	= 0x0080,+	/* addressed, with data */+	GLAMO_FIRE_MMC_CMDT_AD	= 0x00C0,+};++enum glamo_fire_mmc_command_class {+	/* "Stream Read" */+	GLAMO_FIRE_MMC_CC_STRR	= 0x0000,+	/* Single Block Read */+	GLAMO_FIRE_MMC_CC_SBR	= 0x0001,+	/* Multiple Block Read With Stop */+	GLAMO_FIRE_MMC_CC_MBRS	= 0x0002,+	/* Multiple Block Read No Stop */+	GLAMO_FIRE_MMC_CC_MBRNS	= 0x0003,+	/* RESERVED for "Stream Write" */+	GLAMO_FIRE_MMC_CC_STRW	= 0x0004,+	/* "Stream Write" */+	GLAMO_FIRE_MMC_CC_SBW	= 0x0005,+	/* RESERVED for Multiple Block Write With Stop */+	GLAMO_FIRE_MMC_CC_MBWS	= 0x0006,+	/* Multiple Block Write No Stop */+	GLAMO_FIRE_MMC_CC_MBWNS	= 0x0007,+	/* STOP command */+	GLAMO_FIRE_MMC_CC_STOP	= 0x0008,+	/* Cancel on Running Command */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -