Enable PHY, MACB and PIOs clocks. Signed-off-by: Asen Chavdarov Dimov <dimov@xxxxxxxxxx> --- arch/arm/boards/pm9g45/init.c | 31 +++++++++++++++++++++++++++++++ 1 files changed, 31 insertions(+), 0 deletions(-) diff --git a/arch/arm/boards/pm9g45/init.c b/arch/arm/boards/pm9g45/init.c index 480c751..9eba12a 100644 --- a/arch/arm/boards/pm9g45/init.c +++ b/arch/arm/boards/pm9g45/init.c @@ -82,6 +82,19 @@ static struct at91_ether_platform_data macb_pdata = { .phy_addr = 0, }; +static int phy_init(void) +{ + /* + * PD2 enables the 50MHz oscillator for Ethernet PHY + * 1 - enable + * 0 - disable + */ + at91_set_gpio_output(AT91_PIN_PD2, 1); + at91_set_gpio_value(AT91_PIN_PD2, 1); + + return 0; +} + static int pm9g45_mem_init(void) { at91_add_device_sdram(128 * 1024 * 1024); @@ -90,9 +103,27 @@ static int pm9g45_mem_init(void) } mem_initcall(pm9g45_mem_init); +static const char *periph_clocks[] __initdata = { + "pioA_clk", + "pioB_clk", + "pioC_clk", + "pioDE_clk", + "macb_clk" +}; + static int pm9g45_devices_init(void) { + struct clk *clk; + int i; + + for (i = 0; i < ARRAY_SIZE(periph_clocks); i++) { + clk = clk_get(NULL, periph_clocks[i]); + clk_enable(clk); + } + phy_init(); + pm_add_device_nand(); + at91_add_device_eth(&macb_pdata); devfs_add_partition("nand0", 0x00000, 0x80000, PARTITION_FIXED, "self_raw"); -- 1.7.4.4 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox