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

📄 omap2430sdp.c

📁 OMAP2530 uboot source code
💻 C
📖 第 1 页 / 共 2 页
字号:
        MUX_VAL(0x0088, 0x18)		/* gpmc_a7 - EN, HI, 0*/\        MUX_VAL(0x0089, 0x18)		/* gpmc_a6 - EN, HI, 0*/\        MUX_VAL(0x008A, 0x18)		/* gpmc_a5 - EN, HI, 0*/\        MUX_VAL(0x008B, 0x18)		/* gpmc_a4 - EN, HI, 0*/\        MUX_VAL(0x008C, 0x18)		/* gpmc_a3 - EN, HI, 0*/\        MUX_VAL(0x008D, 0x18)		/* gpmc_a2 - EN, HI, 0*/\        MUX_VAL(0x008E, 0x18)		/* gpmc_a1 - EN, HI, 0*/\        MUX_VAL(0x008F, 0x18)		/* gpmc_d15 - EN,HI, 0*/\        MUX_VAL(0x0090, 0x18)		/* gpmc_d14 - EN, HI, 0*/\        MUX_VAL(0x0091, 0x18)		/* gpmc_d13 - EN, HI, 0*/\        MUX_VAL(0x0092, 0x18)		/* gpmc_d12 - EN, HI, 0*/\        MUX_VAL(0x0093, 0x18)		/* gpmc_d11 - EN, HI, 0*/\        MUX_VAL(0x0094, 0x18)		/* gpmc_d10 - EN, HI, 0*/\        MUX_VAL(0x0095, 0x18)		/* gpmc_d9 - EN, HI, 0 */\        MUX_VAL(0x0096, 0x18)		/* gpmc_d8 - EN, HI, 0*/\	/* DSS */\	MUX_VAL(0x009F, 0x00)		/* dss_data0- Dis, 0 */\	MUX_VAL(0x00A0, 0x00)		/* dss_data1- Dis, 0 */\	MUX_VAL(0x00A1, 0x00)		/* dss_data2- Dis, 0 */\	MUX_VAL(0x00A2, 0x00)		/* dss_data3- Dis, 0 */\	MUX_VAL(0x00A3, 0x00)		/* dss_data4- Dis, 0 */\	MUX_VAL(0x00A4, 0x00)		/* dss_data5- Dis, 0 */\	MUX_VAL(0x00A5, 0x00)		/* dss_data6- Dis, 0 */\	MUX_VAL(0x00A6, 0x00)		/* dss_data7- Dis, 0 */\	MUX_VAL(0x00A7, 0x00)		/* dss_data8- Dis, 0 */\	MUX_VAL(0x00A8, 0x00)		/* dss_data9- Dis, 0 */\	MUX_VAL(0x00A9, 0x00)		/* dss_data10- Dis, 0 */\	MUX_VAL(0x00AA, 0x00)		/* dss_data11- Dis, 0 */\	MUX_VAL(0x00AB, 0x00)		/* dss_data12- Dis, 0 */\	MUX_VAL(0x00AC, 0x00)		/* dss_data13- Dis, 0 */\	MUX_VAL(0x00AD, 0x00)		/* dss_data14- Dis, 0 */\	MUX_VAL(0x00AE, 0x00)		/* dss_data15- Dis, 0 */\	MUX_VAL(0x00AF, 0x00)		/* dss_data16- Dis, 0 */\	MUX_VAL(0x00B0, 0x00)		/* dss_data17- Dis, 0 */\	MUX_VAL(0x00B9, 0x00)		/* dss_hsync- Dis, 0 */\	MUX_VAL(0x00BA, 0x00)		/* dss_acbias- Dis, 0 */\	MUX_VAL(0x00B1, 0x1B)		/* uart1_cts- EN, HI, 3, ->gpio_32 */\	MUX_VAL(0x00B2, 0x1B)		/* uart1_rts- EN, HI, 3, ->gpio_8 */\	MUX_VAL(0x00B3, 0x1B)		/* uart1_tx- EN, HI, 3, ->gpio_9 */\	MUX_VAL(0x00B4, 0x1B)		/* uart1_rx- EN, HI, 3, ->gpio_10 */\	MUX_VAL(0x00B5, 0x1B)		/* mcbsp2_dr- EN, HI, 3, ->gpio_11 */\	MUX_VAL(0x00B6, 0x1B)		/* mcbsp2_clkx- EN, HI, 3, ->gpio_12 */\	/* CONTROL */\	MUX_VAL(0x00BB, 0x00)		/* sys_nrespwron- Dis, 0 */\	MUX_VAL(0x00BC, 0x00)		/* sys_nreswarm- Dis, 0 */\	MUX_VAL(0x00BD, 0x18)		/* sys_nirq0- EN, HI, 0 */\	/*MUX_VAL(0x00BD, 0x1B)*/	/* sys_nirq0- EN, HI, 3, ->gpio_56 */\	MUX_VAL(0x00BE, 0x18)		/* sys_nirq1- EN, HI, 0 */\	MUX_VAL(0x00C7, 0x00)		/* gpio_132- Dis, 0, ->gpio132 */\	MUX_VAL(0x00CB, 0x00)		/* gpio_133- Dis, 0, ->gpio133 */\	MUX_VAL(0x00C9, 0x18)		/* sys_clkout- Dis, 0 */\	/*MUX_VAL(0x00C9, 0x1B)*/	/* sys_clkout- EN, HI, 3, ->gpio_111 */\	MUX_VAL(0x00CC, 0x18)		/* jtag_emu1- EN, HI, 0 */\	MUX_VAL(0x00CD, 0x18)		/* jtag_emu0- EN, HI, 0 */\	/* CAMERA */\	MUX_VAL(0x00DD, 0x02)		/* cam_d0- Dis, 2, sti_dout */\	MUX_VAL(0x00DC, 0x02)		/* cam_d1- Dis, 2, sti_din */\	MUX_VAL(0x00DB, 0x1B)		/* cam_d2- EN, HI, 3, ->gpio_129 */\	MUX_VAL(0x00DA, 0x1B)		/* cam_d3- EN, HI, 3, ->gpio_128 */\	MUX_VAL(0x00D9, 0x00)		/* cam_d4- Dis, 0 */\	MUX_VAL(0x00D8, 0x00)		/* cam_d5- Dis, 0 */\	MUX_VAL(0x00D7, 0x00)		/* cam_d6- Dis, 0 */\	MUX_VAL(0x00D6, 0x00)		/* cam_d7- Dis, 0 */\	MUX_VAL(0x00D5, 0x00)		/* cam_d8- Dis, 0 */\	MUX_VAL(0x00D4, 0x00)		/* cam_d9- Dis, 0 */\	MUX_VAL(0x00E3, 0x00)		/* cam_d10- Dis, 0 */\	MUX_VAL(0x00E2, 0x00)		/* cam_d11- Dis, 0 */\	MUX_VAL(0x00DE, 0x00)		/* cam_hs- Dis, 0 */\	MUX_VAL(0x00DF, 0x00)		/* cam_vs- Dis, 0 */\	MUX_VAL(0x00E0, 0x00)		/* cam_lclk- Dis, 0 */\	MUX_VAL(0x00E1, 0x00)		/* cam_xclk- Dis, 0 */\	MUX_VAL(0x00E4, 0x01)		/* gpio_134- Dis, 1, ->ccp_datn */\	MUX_VAL(0x00E5, 0x01)		/* gpio_135- Dis, 1, ->ccp_datp */\	MUX_VAL(0x00E6, 0x01)		/* gpio_136- Dis, 1, ->ccp_clkn */\	MUX_VAL(0x00E7, 0x01)		/* gpio_137- Dis, 1, ->ccp_clkp */\	MUX_VAL(0x00E8, 0x01)		/* gpio_138- Dis, 1, ->spi3_clk */\	MUX_VAL(0x00E9, 0x01)		/* gpio_139- Dis, 1, ->spi3_cs0 */\	MUX_VAL(0x00EA, 0x01)		/* gpio_140- Dis, 1, ->spi3_simo */\	MUX_VAL(0x00EB, 0x01)		/* gpio_141- Dis, 1, ->spi3_somi */\	MUX_VAL(0x00EC, 0x18)		/* gpio_142- EN, HI, 0, ->gpio_142 */\	MUX_VAL(0x00ED, 0x18)		/* gpio_154- EN, HI, 0, ->gpio_154 */\	MUX_VAL(0x00EE, 0x18)		/* gpio_148- EN, HI, 0, ->gpio_148 */\	MUX_VAL(0x00EF, 0x18)		/* gpio_149- EN, HI, 0, ->gpio_149 */\	MUX_VAL(0x00F0, 0x18)		/* gpio_150- EN, HI, 0, ->gpio_150 */\	MUX_VAL(0x00F1, 0x18)		/* gpio_152- EN, HI, 0, ->gpio_152 */\	MUX_VAL(0x00F2, 0x18)		/* gpio_153- EN, HI, 0, ->gpio_153 */\	/* MMC1 */\	MUX_VAL(0x00F3, 0x00)		/* mmc1_clko- Dis, 0 */\	MUX_VAL(0x00F4, 0x18)		/* mmc1_cmd- EN, HI, 0 */\	MUX_VAL(0x00F5, 0x18)		/* mmc1_dat0- EN, HI, 0 */\	MUX_VAL(0x00F6, 0x18)		/* mmc1_dat1- EN, HI, 0 */\	MUX_VAL(0x00F7, 0x18)		/* mmc1_dat2- EN, HI, 0 */\	MUX_VAL(0x00F8, 0x18)		/* mmc1_dat3- EN, HI, 0 */\	/* MMC2 */\	MUX_VAL(0x00F9, 0x00)		/* mmc2_clko- Dis, 0 */\	MUX_VAL(0x00FA, 0x18)		/* mmc2_cmd- EN, HI, 0 */\	MUX_VAL(0x00FB, 0x18)		/* mmc2_dat0- EN, HI, 0 */\	MUX_VAL(0x00FC, 0x18)		/* mmc2_dat1- EN, HI, 0 */\	MUX_VAL(0x00FD, 0x18)		/* mmc2_dat2- EN, HI, 0 */\	MUX_VAL(0x00FE, 0x18)		/* mmc2_dat3- EN, HI, 0 */\	/* UART2 */\	MUX_VAL(0x00FF, 0x00)		/* uart2_cts- Dis, 0 */\	MUX_VAL(0x0100, 0x00)		/* uart2_rts- Dis, 0 */\	MUX_VAL(0x0101, 0x00)		/* uart2_tx- Dis, 0 */\	MUX_VAL(0x0102, 0x00)		/* uart2_rx- Dis, 0 */\	/* MCBSP3 */\	MUX_VAL(0x0103, 0x00)		/* mcbsp3_clkx- Dis, 0 */\	MUX_VAL(0x0104, 0x00)		/* mcbsp3_fsx- Dis, 0 */\	MUX_VAL(0x0105, 0x00)		/* mcbsp3_dr- Dis, 0 */\	MUX_VAL(0x0106, 0x00)		/* mcbsp3_dx- Dis, 0 */\	/* SSI1 */\	MUX_VAL(0x0107, 0x01)		/* ssi1_dat_tx- Dis, 1, ->uart1_tx */\	MUX_VAL(0x0108, 0x01)		/* ssi1_flag_tx- Dis, 1, ->uart1_rts */\	MUX_VAL(0x0109, 0x01)		/* ssi1_rdy_tx- Dis, 1, ->uart1_cts */\	MUX_VAL(0x010A, 0x01)		/* ssi1_dat_rx- Dis, 1, ->uart1_rx */\	MUX_VAL(0x010B, 0x01)		/* gpio_63- Dis, 1, ->mcbsp4_clkx */\	MUX_VAL(0x010C, 0x01)		/* ssi1_flag_rx- Dis, 1, ->mcbsp4_dr */\	MUX_VAL(0x010D, 0x01)		/* ssi1_rdy_rx- Dis, 1, ->mcbsp4_dx */\	MUX_VAL(0x010E, 0x01)		/* ssi1_wake- Dis, 1, ->mcbsp4_fsx */\	/* SPI1 */\	MUX_VAL(0x010F, 0x00)		/* spi1_clk- Dis, 0 */\	MUX_VAL(0x0110, 0x00)		/* spi1_simo- Dis, 0 */\	MUX_VAL(0x0111, 0x00)		/* spi1_somi- Dis, 0 */\	MUX_VAL(0x0112, 0x00)		/* spi1_cs0- Dis, 0 */\	MUX_VAL(0x0113, 0x00)		/* spi1_cs1- Dis, 0 */\	MUX_VAL(0x0114, 0x00)		/* spi1_cs2- Dis, 0 */\	MUX_VAL(0x0115, 0x00)		/* spi1_cs3- Dis, 0 */\	/* SPI2 */\	MUX_VAL(0x0116, 0x1B)		/* spi2_clk- EN, HI, 3, ->gpio_88 */\	MUX_VAL(0x0117, 0x1B)		/* spi2_simo- EN, HI, 3, ->gpio_89 */\	MUX_VAL(0x0118, 0x1B)		/* spi2_somi- EN, HI, 3, ->gpio_90 */\	MUX_VAL(0x0119, 0x1B)		/* spi2_cs0- EN, HI, 3, ->gpio_91 */\	/* MCBSP1 */\	MUX_VAL(0x011A, 0x00)		/* mcbsp1_clkr- Dis, 0 */\	MUX_VAL(0x011B, 0x00)		/* mcbsp1_fsr- Dis, 0 */\	MUX_VAL(0x011C, 0x00)		/* mcbsp1_dx- Dis, 0 */\	MUX_VAL(0x011D, 0x00)		/* mcbsp1_dr- Dis, 0 */\	MUX_VAL(0x011E, 0x00)		/* mcbsp1_clks- Dis, 0 */\	MUX_VAL(0x011F, 0x00)		/* mcbsp1_fsx- Dis, 0 */\	MUX_VAL(0x0120, 0x00)		/* mcbsp1_clkx- Dis, 0 */\	/* HDQ */\	MUX_VAL(0x0125, 0x00)		/* hdq_sio- Dis, 0 */\	/* UART3 */\	MUX_VAL(0x0126, 0x00)		/* uart3_cts_rctx- Dis, 0 */\	MUX_VAL(0x0127, 0x00)		/* uart3_rts_sd- Dis, 0 */\	MUX_VAL(0x0128, 0x00)		/* uart3_tx_irtx- Dis, 0 */\	MUX_VAL(0x0129, 0x00)		/* uart3_rx_irrx- Dis, 0 */\	/* OTHERS */\	MUX_VAL(0x012B, 0x1B)		/* gpio_78- EN, HI, 3, ->gpio_78 */\	MUX_VAL(0x012C, 0x01)		/* gpio_79- Dis, 1, ->secure_indicator */\	MUX_VAL(0x012D, 0x1B)		/* gpio_80- EN, HI, 3, ->gpio_80 */\	/* MCBSP2 */\	MUX_VAL(0x012E, 0x01)		/* gpio_113- Dis, 1, ->mcbsp2_clkx */\	MUX_VAL(0x012F, 0x01)		/* gpio_114- Dis, 1, ->mcbsp2_fsx */\	MUX_VAL(0x0130, 0x01)		/* gpio_115- Dis, 1, ->mcbsp2_dr */\	MUX_VAL(0x0131, 0x01)		/* gpio_116- Dis, 1, ->mcbsp2_dx */\	/* GPIO7-AUDIOENVDD */\	MUX_VAL(0x012A, 0x18)		/* gpio_7- EN, HI, 3, ->gpio_7 */\#else/* For all other platforms */#define MUX_DEFAULT()\	/* SDRC */\	MUX_VAL(0x0054, 0x08)		/* sdrc_a14 - EN, LO, 0 */\	MUX_VAL(0x0055, 0x08)		/* sdrc_a13 - EN, LO, 0 */\	MUX_VAL(0x0056, 0x08)		/* sdrc_a12 - EN, LO, 0 */\	MUX_VAL(0x0045, 0x18)		/* sdrc_ncs1 - EN, HI, 0 */\	MUX_VAL(0x0046, 0x18)		/* sdrc_ncs2 - EN, HI, 0 */\	/* GPMC */\	MUX_VAL(0x0030, 0x08)		/* gpmc_clk - EN, LO, 0 */\	MUX_VAL(0x0032, 0x18)		/* gpmc_ncs1- EN, HI, 0 */\	MUX_VAL(0x0033, 0x18)		/* gpmc_ncs2- EN, HI, 0 */\	MUX_VAL(0x0034, 0x18)		/* gpmc_ncs3- EN, HI, 0 */\	/* UART1 */\	MUX_VAL(0x00B1, 0x18)		/* uart1_cts- EN, HI, 0 */\	MUX_VAL(0x00B2, 0x18)		/* uart1_rts- EN, HI, 0 */\	MUX_VAL(0x00B3, 0x18)		/* uart1_tx- EN, HI, 0 */\	MUX_VAL(0x00B4, 0x18)		/* uart1_rx- EN, HI, 0 */\	/* UART2 */\	MUX_VAL(0x00FF, 0x18)		/* uart2_cts- EN, HI, 0 */\	MUX_VAL(0x0100, 0x18)		/* uart2_rts- EN, HI, 0 */\	MUX_VAL(0x0101, 0x18)		/* uart2_tx- EN, HI, 0 */\	MUX_VAL(0x0102, 0x18)		/* uart2_rx- EN, HI, 0 */\	/* UART3 */\	MUX_VAL(0x0126, 0x18)		/* uart3_cts_rctx- EN, HI, 0 */\	MUX_VAL(0x0127, 0x18)		/* uart3_rts_sd- EN, HI, 0 */\	MUX_VAL(0x0127, 0x18)		/* uart3_tx_irtx- EN, HI, 0 */\	MUX_VAL(0x0127, 0x18)		/* uart3_rx_irrx- EN, HI, 0 */\	/* I2C1 */\	MUX_VAL(0x0111, 0x00)		/* i2c1_scl - DIS, NA, 0 */\	MUX_VAL(0x0112, 0x00)		/* i2c1_sda - DIS, NA, 0 */\#endif /* End of Mux Mapping */#if 0/********************************************************** * Routine: mux_pwr_save * Description: Set pins to optimal power savings state. * * NOTE ES1 Failures for Errata, Do NOT include: *  - set D0-D31 (boot failure, u-boot ok) *  - set D16-D31 (boot failue, u-boot ok) *  - set D0-D15 (boot with memory errors, u-boot ok) *  - set DQS3 (boot failures, u-boot start some failures). *  - set DQS0-2 (no apparent problems). * *********************************************************/static void mux_pwr_save(void){	#define SDRAM_WIDTH	32	#define OPTIMZE_FOR_DDR	1	#define NUM_DQS		4	u32 addr, val, offset, base = OMAP24XX_CTRL_BASE;	/* Activate DDR/SDR-SDRAM signal pull-ups on DQ signals to save power */	for(offset = 0x65; offset < (0x65 + SDRAM_WIDTH); offset++){		addr = base + offset;			/* addr of pin config */		val = __raw_readb(addr) | (BIT4|BIT3);	/* mask for pull-up on */		__raw_writeb(val, addr);		/* update config */	}#if OPTIMZE_FOR_DDR	/* Activate DDR-SDRAM signal pull-ups on DQS signals to save power */	for(offset = 0x50; (offset < 0x50 + NUM_DQS); offset++){		addr = base + offset;			/* addr of pin config */		val = __raw_readb(addr) | (BIT4|BIT3);	/* mask for pull-up on */		__raw_writeb(val, addr);		/* update config */	}#endif}#endif/********************************************************** * Routine: set_muxconf_regs * Description: Setting up the configuration Mux registers *              specific to the hardware. Many pins need *              to be moved from protect to primary mode. *********************************************************/void set_muxconf_regs(void){	u32 cpu;	cpu = get_cpu_type();	/* Incase we have to handle multiple processors such as 2430 and 2430C */	if (cpu == CPU_2430) {		MUX_DEFAULT();		// mux_pwr_save();  /* this fails on 2430-ES1 dispite recommendation */	} else		return;}/***************************************************************** * Routine: peripheral_enable * Description: Enable the clks & power for perifs (GPT2, UART1,...) ******************************************************************/void peripheral_enable(void){	unsigned int v, if_clks1 = 0, func_clks1 = 0, if_clks2 = 0, func_clks2 = 0;	/* ALERT STATUS 10000 */	/* Enable GP2 timer. */	if_clks1 |= BIT4;	func_clks1 |= BIT4;	v = __raw_readl(CM_CLKSEL2_CORE) | 0x4;	/* Sys_clk input OMAP24XX_GPT2 */	__raw_writel(v, CM_CLKSEL2_CORE);	__raw_writel(0x1, CM_CLKSEL_WKUP);#ifdef CFG_NS16550	/* Enable UART1 clock */	func_clks1 |= BIT21;	if_clks1 |= BIT21;#endif#ifdef CONFIG_DRIVER_OMAP24XX_I2C	/* 2430 requires only the hs clock */	func_clks2 |= BIT20|BIT19; /* i2c1 and 2 96 meg clock input */	if_clks1 |= BIT20|BIT19;#endif	v = __raw_readl(CM_ICLKEN1_CORE) | if_clks1;	/* Interface clocks on */	__raw_writel(v, CM_ICLKEN1_CORE);	v = __raw_readl(CM_ICLKEN2_CORE) | if_clks2;	/* Interface clocks on */	__raw_writel(v, CM_ICLKEN2_CORE);	v = __raw_readl(CM_FCLKEN1_CORE) | func_clks1;	/* Functional Clocks on */	__raw_writel(v, CM_FCLKEN1_CORE);	v = __raw_readl(CM_FCLKEN2_CORE) | func_clks2;	/* Functional Clocks on */	__raw_writel(v, CM_FCLKEN2_CORE);	delay(1000);}/***************************************************************************** * Routine: update_mux() * Description: Update balls which are different beween boards.  All should be *              updated to match functionaly.  However, I'm only updating ones *              which I'll be using for now.  When power comes into play they *              all need updating. *****************************************************************************/void update_mux(u32 btype, u32 mtype){	/* NOTHING as of now... */}#if (CONFIG_COMMANDS & CFG_CMD_NAND)void nand_init(void){	extern flash_info_t flash_info[];	nand_probe(CFG_NAND_ADDR);	if (nand_dev_desc[0].ChipID != NAND_ChipID_UNKNOWN) {		print_size(nand_dev_desc[0].totlen, "\n");	}#ifdef CFG_JFFS2_MEM_NAND	flash_info[CFG_JFFS2_FIRST_BANK].flash_id = nand_dev_desc[0].id;	flash_info[CFG_JFFS2_FIRST_BANK].size = 1024 * 1024 * 2;	/* only read kernel single meg partition */	flash_info[CFG_JFFS2_FIRST_BANK].sector_count = 1024;	/* 1024 blocks in 16meg chip (use less for raw/copied partition) */	flash_info[CFG_JFFS2_FIRST_BANK].start[0] = 0x80200000;	/* ?, ram for now, open question, copy to RAM or adapt for NAND */#endif}#endif

⌨️ 快捷键说明

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