Prepare v2023.10
[platform/kernel/u-boot.git] / board / olimex / mx23_olinuxino / mx23_olinuxino.c
1 // SPDX-License-Identifier: GPL-2.0+
2 /*
3  * Olimex MX23 Olinuxino board
4  *
5  * Copyright (C) 2013 Marek Vasut <marex@denx.de>
6  */
7
8 #include <common.h>
9 #include <init.h>
10 #include <asm/global_data.h>
11 #include <asm/gpio.h>
12 #include <asm/io.h>
13 #include <asm/arch/iomux-mx23.h>
14 #include <asm/arch/imx-regs.h>
15 #include <asm/arch/clock.h>
16 #include <asm/arch/sys_proto.h>
17 #ifdef CONFIG_LED_STATUS
18 #include <status_led.h>
19 #endif
20 #include <linux/delay.h>
21
22 DECLARE_GLOBAL_DATA_PTR;
23
24 /*
25  * Functions
26  */
27 int board_early_init_f(void)
28 {
29         /* IO0 clock at 480MHz */
30         mxs_set_ioclk(MXC_IOCLK0, 480000);
31
32         /* SSP0 clock at 96MHz */
33         mxs_set_sspclk(MXC_SSPCLK0, 96000, 0);
34
35         return 0;
36 }
37
38 #ifdef CONFIG_CMD_USB
39 int board_ehci_hcd_init(int port)
40 {
41         /* Enable LAN9512 (Maxi) or GL850G (Mini) USB HUB power. */
42         gpio_direction_output(MX23_PAD_GPMI_ALE__GPIO_0_17, 1);
43         udelay(100);
44         return 0;
45 }
46
47 int board_ehci_hcd_exit(int port)
48 {
49         /* Enable LAN9512 (Maxi) or GL850G (Mini) USB HUB power. */
50         gpio_direction_output(MX23_PAD_GPMI_ALE__GPIO_0_17, 0);
51         return 0;
52 }
53 #endif
54
55 int dram_init(void)
56 {
57         return mxs_dram_init();
58 }
59
60 int board_init(void)
61 {
62         /* Adress of boot parameters */
63         gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100;
64
65 #if defined(CONFIG_LED_STATUS) && defined(CONFIG_LED_STATUS_BOOT_ENABLE)
66         status_led_set(CONFIG_LED_STATUS_BOOT, CONFIG_LED_STATUS_STATE);
67 #endif
68
69         return 0;
70 }