Home | History | Annotate | Download | only in mx6ullevk
      1 // SPDX-License-Identifier: GPL-2.0+
      2 /*
      3  * Copyright (C) 2016 Freescale Semiconductor, Inc.
      4  */
      5 
      6 #include <asm/arch/clock.h>
      7 #include <asm/arch/iomux.h>
      8 #include <asm/arch/imx-regs.h>
      9 #include <asm/arch/crm_regs.h>
     10 #include <asm/arch/mx6-pins.h>
     11 #include <asm/arch/sys_proto.h>
     12 #include <asm/gpio.h>
     13 #include <asm/mach-imx/iomux-v3.h>
     14 #include <asm/mach-imx/boot_mode.h>
     15 #include <asm/io.h>
     16 #include <common.h>
     17 #include <fsl_esdhc.h>
     18 #include <linux/sizes.h>
     19 #include <mmc.h>
     20 
     21 DECLARE_GLOBAL_DATA_PTR;
     22 
     23 #define UART_PAD_CTRL  (PAD_CTL_PKE | PAD_CTL_PUE |		\
     24 	PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED |		\
     25 	PAD_CTL_DSE_40ohm   | PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
     26 
     27 int dram_init(void)
     28 {
     29 	gd->ram_size = imx_ddr_size();
     30 
     31 	return 0;
     32 }
     33 
     34 static iomux_v3_cfg_t const uart1_pads[] = {
     35 	MX6_PAD_UART1_TX_DATA__UART1_DCE_TX | MUX_PAD_CTRL(UART_PAD_CTRL),
     36 	MX6_PAD_UART1_RX_DATA__UART1_DCE_RX | MUX_PAD_CTRL(UART_PAD_CTRL),
     37 };
     38 
     39 static void setup_iomux_uart(void)
     40 {
     41 	imx_iomux_v3_setup_multiple_pads(uart1_pads, ARRAY_SIZE(uart1_pads));
     42 }
     43 
     44 int board_mmc_get_env_dev(int devno)
     45 {
     46 	return devno;
     47 }
     48 
     49 int mmc_map_to_kernel_blk(int devno)
     50 {
     51 	return devno;
     52 }
     53 
     54 int board_early_init_f(void)
     55 {
     56 	setup_iomux_uart();
     57 
     58 	return 0;
     59 }
     60 
     61 int board_init(void)
     62 {
     63 	/* Address of boot parameters */
     64 	gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
     65 
     66 	return 0;
     67 }
     68 
     69 #ifdef CONFIG_CMD_BMODE
     70 static const struct boot_mode board_boot_modes[] = {
     71 	/* 4 bit bus width */
     72 	{"sd1", MAKE_CFGVAL(0x42, 0x20, 0x00, 0x00)},
     73 	{"sd2", MAKE_CFGVAL(0x40, 0x28, 0x00, 0x00)},
     74 	{"qspi1", MAKE_CFGVAL(0x10, 0x00, 0x00, 0x00)},
     75 	{NULL,	 0},
     76 };
     77 #endif
     78 
     79 int board_late_init(void)
     80 {
     81 #ifdef CONFIG_CMD_BMODE
     82 	add_board_boot_modes(board_boot_modes);
     83 #endif
     84 
     85 #ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
     86 	env_set("board_name", "EVK");
     87 	env_set("board_rev", "14X14");
     88 #endif
     89 
     90 	return 0;
     91 }
     92 
     93 int checkboard(void)
     94 {
     95 	puts("Board: MX6ULL 14x14 EVK\n");
     96 
     97 	return 0;
     98 }
     99