/* Main clock init function. Called from arch_cpu_init() */ void db8500_clocks_init(void) { /* * Enable all clocks. This is u-boot, we can enable it all. There is no * powersave in u-boot. */ clock_enable(1, 9, -1); /* GPIO0 */ if (u8500_is_earlydrop()) clock_enable(2, 12, -1); /* GPIO1 */ else clock_enable(2, 11, -1); /* GPIO1 */ clock_enable(3, 8, -1); /* GPIO2 */ clock_enable(5, 1, -1); /* GPIO3 */ clock_enable(3, 6, 6); /* UART2 */ clock_enable(3, 3, 3); /* I2C0 */ clock_enable(1, 5, 5); /* SDI0 */ clock_enable(2, 4, 2); /* SDI4 */ if (u8500_is_earlydrop()) clock_enable(7, 2, -1); /* MTU0 */ else if (cpu_is_u8500v1()) clock_enable(6, 7, -1); /* MTU0 */ else if (cpu_is_u8500v2() || cpu_is_u9540v10()) clock_enable(6, 6, -1); /* MTU0 */ if (!u8500_is_earlydrop()) clock_enable(3, 4, 4); /* SDI2 */ /* * Enabling clocks for all devices which are AMBA devices in the * kernel. Otherwise they will not get probe()'d because the * peripheral ID register will not be powered. */ /* XXX: some of these differ between ED/V1 */ clock_enable(1, 1, 1); /* UART1 */ clock_enable(1, 0, 0); /* UART0 */ clock_enable(3, 2, 2); /* SSP1 */ clock_enable(3, 1, 1); /* SSP0 */ clock_enable(2, 8, -1); /* SPI0 */ clock_enable(2, 5, 3); /* MSP2 */ }
void __init u8500_map_io(void) { /* * Map the UARTs early so that the DEBUG_LL stuff continues to work. */ iotable_init(u8500_uart_io_desc, ARRAY_SIZE(u8500_uart_io_desc)); ux500_map_io(); iotable_init(u8500_io_desc, ARRAY_SIZE(u8500_io_desc)); if (cpu_is_u8500ed()) iotable_init(u8500_ed_io_desc, ARRAY_SIZE(u8500_ed_io_desc)); else if (cpu_is_u8500v1()) iotable_init(u8500_v1_io_desc, ARRAY_SIZE(u8500_v1_io_desc)); else if (cpu_is_u8500v2()) iotable_init(u8500_v2_io_desc, ARRAY_SIZE(u8500_v2_io_desc)); _PRCMU_BASE = __io_address(U8500_PRCMU_BASE); }