Пример #1
0
/*
 *  Maps common IO regions for tcc892x.
 */
void __init tcc_map_common_io(void)
{
	iotable_init(tcc8920_io_desc, ARRAY_SIZE(tcc8920_io_desc));

	/* Normally devicemaps_init() would flush caches and tlb after
	 * mdesc->map_io(), but we must also do it here because of the CPU
	 * revision check below.
	 */
	local_flush_tlb_all();
	flush_cache_all();

	__cpu_early_init();

#ifdef CONFIG_CACHE_L2X0
	// Way size = 16KB, Associativity = 16Way
	l2x0_init(0xFA000000, 0x70130001, ~0x022C0000);
#endif

#if defined(__TODO__)
	IO_UTIL_ReadECID();
#endif

//	tcc_reserve_sdram();

	// XXX
	tca_ckc_init();
}
Пример #2
0
/*
 *  Maps common IO regions for tcc88xx.
 */
void __init tcc_map_common_io(void)
{
	iotable_init(tcc8800_io_desc, ARRAY_SIZE(tcc8800_io_desc));

	/* Normally devicemaps_init() would flush caches and tlb after
	 * mdesc->map_io(), but we must also do it here because of the CPU
	 * revision check below.
	 */
	local_flush_tlb_all();
	flush_cache_all();
#if defined(__TODO__)
	IO_UTIL_ReadECID();
#endif

	//tcc_reserve_sdram();

	// XXX
	tca_ckc_init();
}
Пример #3
0
void clock_init_early(void)
{
	tca_ckc_init();

	tca_ckc_setpll(5940000, 0);
	tca_ckc_setpll(5000000, 1);
	tca_ckc_setpll(4320000, 2);
	tca_ckc_setpll(6720000, 3);
//	tca_ckc_setpll(6000000, 4);
//	tca_ckc_setpll(6480000, 5);

//	tca_ckc_setfbusctrl( CLKCTRL0,  ENABLE, 0, 8000000, DIRECTPLL5);	/*FBUS_CPU      800 MHz*/	// 1.2V
	tca_ckc_setfbusctrl( CLKCTRL1,  ENABLE, 0, 2500000, DIRECTPLL1);	/*FBUS_DDI      290 MHz*/
//	tca_ckc_setfbusctrl( CLKCTRL2,  ENABLE, 0, 3200000, DIRECTPLL3);	/*FBUS_MEM      320 MHz */
	tca_ckc_setfbusctrl( CLKCTRL3, DISABLE, 0, 2500000, DIRECTPLL1);	/*FBUS_GRP      320 MHz */
	tca_ckc_setfbusctrl( CLKCTRL4,  ENABLE, 0, 1680000, DIRECTPLL3);	/*FBUS_IOB      190 MHz */
	tca_ckc_setfbusctrl( CLKCTRL5, DISABLE, 0, 2970000, DIRECTPLL0);	/*FBUS_VBUS     300 MHz */
	tca_ckc_setfbusctrl( CLKCTRL6, DISABLE, 0, 2500000, DIRECTPLL1);	/*FBUS_VCODEC   290 MHz */
	tca_ckc_setfbusctrl( CLKCTRL7,  ENABLE, 0, 2000000, DIRECTPLL5);	/*FBUS_SMU      200 MHz */
	tca_ckc_setfbusctrl( CLKCTRL8,  ENABLE, 0, 2160000, DIRECTPLL2);	/*FBUS_HSIO     240 MHz */
	tca_ckc_setfbusctrl( CLKCTRL9, DISABLE, 0, 2970000, DIRECTPLL0);	/*CAMBUS        330 MHz */

	// init Peri. Clock
	tca_ckc_setperi(PERI_TCX       , DISABLE,  120000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_TCT       ,  ENABLE,  120000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_TCZ       ,  ENABLE,  120000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_LCD0      , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_LCD1      ,  ENABLE,  960000,PCDIRECTPLL3);
	tca_ckc_setperi(PERI_LCDSI0    , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_LCDSI1    , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_HDMIA     , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_DSI       , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_RESERVED0 , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_HDMI      , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_USB11H    , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_SDMMC0    , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_MSTICK    , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_I2C0      ,  ENABLE,   40000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_UART0     ,  ENABLE,  480000,PCDIRECTPLL3);
	tca_ckc_setperi(PERI_UART1     , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_UART2     , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_UART3     , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_UART4     , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_UART5     , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_GPSB0     , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_GPSB1     , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_GPSB2     , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_GPSB3     , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_GPSB4     , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_GPSB5     , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_ADC       ,  ENABLE,  120000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_SPDIF     , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_EHI0      , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_EHI1      , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_AUD       , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_PDM       , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_SDMMC1    , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_SDMMC2    , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_SDMMC3    , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_DAI0      , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_DAI1      , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_DAI2      , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_I2C1      ,  ENABLE,   40000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_SATA_REF0 , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_SATA_REF1 , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_SATAH0    , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_SATAH1    , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_USB20H    , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_GMAC      , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_CIFMC     , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_CIFSC     , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_ISPJ      , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_ISPS      , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_FILTER    , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_RESERVED1 , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_RESERVED2 , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_RESERVED3 , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_OUT0      , DISABLE,   10000, PCDIRECTXIN);
	tca_ckc_setperi(PERI_OUT1      , DISABLE,   10000, PCDIRECTXIN);
}
Пример #4
0
/************************************************************
* Function    : clock_init_early()
* Description :
*    - set pll/peri-clock and
*    - set fbus clock to low (1.0V level)
************************************************************/
void clock_init_early(void)
{
	tca_ckc_init();

	tca_ckc_setfbusctrl( FBUS_IO,     ENABLE,   60000);	/*FBUS_IO		6 MHz */
	tca_ckc_setfbusctrl( FBUS_SMU,    ENABLE,   60000);	/*FBUS_SMU		6 MHz */

	tca_ckc_setpll(5940000, 0);
	tca_ckc_setpll(5000000, 1);
	tca_ckc_setpll(7280000, 2);
	tca_ckc_setpll(6720000, 3);
//	tca_ckc_setpll(6000000, 4);	// for memory bus
//	tca_ckc_setpll(6480000, 5);	// for cpu

//	tca_ckc_setfbusctrl( FBUS_CPU,    ENABLE, 4000000);	/*FBUS_CPU      400 MHz */	// 1.0V
//	tca_ckc_setfbusctrl( FBUS_MEM,    ENABLE, 1250000);	/*FBUS_MEM      160 MHz */
	tca_ckc_setfbusctrl( FBUS_DDI,    ENABLE, 1250000);	/*FBUS_DDI      290 MHz */
	tca_ckc_setfbusctrl( FBUS_GPU,   DISABLE, 1250000);	/*FBUS_GRP      320 MHz */
	tca_ckc_setfbusctrl( FBUS_IO,     ENABLE,  720000);	/*FBUS_IO       190 MHz */
	tca_ckc_setfbusctrl( FBUS_VBUS,  DISABLE,  990000);	/*FBUS_VBUS     300 MHz */
	tca_ckc_setfbusctrl( FBUS_VCORE, DISABLE, 1250000);	/*FBUS_VCODEC   290 MHz */
	tca_ckc_setfbusctrl( FBUS_HSIO,   ENABLE, 1080000);	/*FBUS_HSIO     240 MHz */
	tca_ckc_setfbusctrl( FBUS_SMU,    ENABLE, 1000000);	/*FBUS_SMU      200 MHz */

	// init Peri. Clock
	tca_ckc_setperi(PERI_TCX       , DISABLE,  120000);
	tca_ckc_setperi(PERI_TCT       ,  ENABLE,  120000);
	tca_ckc_setperi(PERI_TCZ       ,  ENABLE,  120000);
	tca_ckc_setperi(PERI_LCD0      , DISABLE,   10000);
	tca_ckc_setperi(PERI_LCDSI0    , DISABLE,   10000);
	tca_ckc_setperi(PERI_LCD1      ,  ENABLE,  960000);
	tca_ckc_setperi(PERI_LCDSI1    , DISABLE,   10000);
	tca_ckc_setperi(PERI_RESERVED0 , DISABLE,   10000);
	tca_ckc_setperi(PERI_LCDTIMER  , DISABLE,   10000);
	tca_ckc_setperi(PERI_JPEG      , DISABLE,   10000);
	tca_ckc_setperi(PERI_RESERVED1 , DISABLE,   10000);
	tca_ckc_setperi(PERI_RESERVED2 , DISABLE,   10000);
	tca_ckc_setperi(PERI_GMAC      , DISABLE,   10000);
	tca_ckc_setperi(PERI_USBOTG    , DISABLE,   10000);
	tca_ckc_setperi(PERI_RESERVED3 , DISABLE,   10000);
	tca_ckc_setperi(PERI_OUT0      , DISABLE,   10000);
	tca_ckc_setperi(PERI_USB20H    , DISABLE,   10000);
	tca_ckc_setperi(PERI_HDMI      , DISABLE,   10000);
	tca_ckc_setperi(PERI_HDMIA     , DISABLE,   10000);
	tca_ckc_setperi(PERI_OUT1      , DISABLE,   10000);
	tca_ckc_setperi(PERI_EHI       , DISABLE,   10000);
	tca_ckc_setperi(PERI_SDMMC0    , DISABLE,   10000);
	tca_ckc_setperi(PERI_SDMMC1    , DISABLE,   10000);
	tca_ckc_setperi(PERI_SDMMC2    , DISABLE,   10000);
	tca_ckc_setperi(PERI_SDMMC3    , DISABLE,   10000);
	tca_ckc_setperi(PERI_ADAI1     , DISABLE,   10000);
	tca_ckc_setperi(PERI_ADAM1     , DISABLE,   10000);
	tca_ckc_setperi(PERI_SPDIF1    , DISABLE,   10000);
	tca_ckc_setperi(PERI_ADAI0     , DISABLE,   10000);
	tca_ckc_setperi(PERI_ADAM0     , DISABLE,   10000);
	tca_ckc_setperi(PERI_SPDIF0    , DISABLE,   10000);
	tca_ckc_setperi(PERI_PDM       , DISABLE,   10000);
	tca_ckc_setperi(PERI_RESERVED4 , DISABLE,   10000);
	tca_ckc_setperi(PERI_ADC       ,  ENABLE,  120000);
	tca_ckc_setperi(PERI_I2C0      ,  ENABLE,   40000);
	tca_ckc_setperi(PERI_I2C1      ,  ENABLE,   40000);
	tca_ckc_setperi(PERI_I2C2      ,  ENABLE,   40000);
	tca_ckc_setperi(PERI_I2C3      ,  ENABLE,   40000);
	tca_ckc_setperi(PERI_UART0     ,  ENABLE,  480000);
	tca_ckc_setperi(PERI_UART1     , DISABLE,   10000);
	tca_ckc_setperi(PERI_UART2     , DISABLE,   10000);
	tca_ckc_setperi(PERI_UART3     , DISABLE,   10000);
	tca_ckc_setperi(PERI_UART4     , DISABLE,   10000);
	tca_ckc_setperi(PERI_UART5     , DISABLE,   10000);
	tca_ckc_setperi(PERI_UART6     , DISABLE,   10000);
	tca_ckc_setperi(PERI_UART7     , DISABLE,   10000);
	tca_ckc_setperi(PERI_GPSB0     , DISABLE,   10000);
	tca_ckc_setperi(PERI_GPSB1     , DISABLE,   10000);
	tca_ckc_setperi(PERI_GPSB2     , DISABLE,   10000);
	tca_ckc_setperi(PERI_GPSB3     , DISABLE,   10000);
	tca_ckc_setperi(PERI_GPSB4     , DISABLE,   10000);
	tca_ckc_setperi(PERI_GPSB5     , DISABLE,   10000);
}