int board_early_init_f(void) { int err; #ifdef CONFIG_BOARD_TYPES set_board_type(); #endif err = board_uart_init(); if (err) { debug("UART init failed\n"); return err; } #ifdef CONFIG_SYS_I2C_INIT_BOARD board_i2c_init(gd->fdt_blob); #endif #if defined(CONFIG_EXYNOS_FB) /* * board_init_f(arch/arm/lib/board.c) calls lcd_setmem() which needs * panel_info.vl_col, panel_info.vl_row and panel_info.vl_bpix, * to reserve frame-buffer memory at a very early stage. So, we need * to fill panel_info.vl_col, panel_info.vl_row and panel_info.vl_bpix * before lcd_setmem() is called. */ err = exynos_lcd_early_init(gd->fdt_blob); if (err) { debug("LCD early init failed\n"); return err; } #endif return exynos_early_init_f(); }
/*---------------------------------------------------------------------------*/ static void lpm_wakeup_handler(void) { power_domains_on(); board_i2c_init(); }
int board_init(void) { gd->bd->bi_arch_number=MACH_TYPE_MESON6_SKT; gd->bd->bi_boot_params=BOOT_PARAMS_OFFSET; #if CONFIG_JERRY_NAND_TEST //temp test nand_init(); #endif #ifdef CONFIG_AML_I2C board_i2c_init(); #endif /*CONFIG_AML_I2C*/ #ifdef CONFIG_IR_REMOTE board_ir_init(); #endif #ifdef CONFIG_USB_DWC_OTG_HCD board_usb_init(&g_usb_config_m6_skt_b,BOARD_USB_MODE_HOST); board_usb_init(&g_usb_config_m6_skt_h,BOARD_USB_MODE_CHARGER); #endif /*CONFIG_USB_DWC_OTG_HCD*/ key_init(); wifi_power_init(); run_command("magic_checkstatus", 0); return 0; }
/*---------------------------------------------------------------------------*/ void board_init() { /* Disable global interrupts */ uint8_t int_disabled = ti_lib_int_master_disable(); power_domains_on(); /* Configure all clock domains to run at full speed */ ti_lib_prcm_clock_configure_set(PRCM_DOMAIN_SYSBUS, PRCM_CLOCK_DIV_1); ti_lib_prcm_clock_configure_set(PRCM_DOMAIN_CPU, PRCM_CLOCK_DIV_1); ti_lib_prcm_clock_configure_set(PRCM_DOMAIN_TIMER, PRCM_CLOCK_DIV_1); ti_lib_prcm_clock_configure_set(PRCM_DOMAIN_SERIAL, PRCM_CLOCK_DIV_1); ti_lib_prcm_clock_configure_set(PRCM_DOMAIN_PERIPH, PRCM_CLOCK_DIV_1); /* Enable GPIO peripheral */ ti_lib_prcm_peripheral_run_enable(PRCM_PERIPH_GPIO); /* Apply settings and wait for them to take effect */ ti_lib_prcm_load_set(); while(!ti_lib_prcm_load_get()); /* Enable GPT0 module - Wait for the clock to be enabled */ ti_lib_prcm_peripheral_run_enable(PRCM_PERIPH_TIMER0); ti_lib_prcm_load_set(); while(!ti_lib_prcm_load_get()); /* Keys (input pullup) */ ti_lib_rom_ioc_pin_type_gpio_input(BOARD_IOID_KEY_LEFT); ti_lib_rom_ioc_pin_type_gpio_input(BOARD_IOID_KEY_RIGHT); ti_lib_ioc_io_port_pull_set(BOARD_IOID_KEY_LEFT, IOC_IOPULL_UP); ti_lib_ioc_io_port_pull_set(BOARD_IOID_KEY_RIGHT, IOC_IOPULL_UP); /* I2C controller */ board_i2c_init(); /* Sensor interface */ ti_lib_rom_ioc_pin_type_gpio_input(BOARD_IOID_MPU_INT); ti_lib_ioc_io_port_pull_set(BOARD_IOID_MPU_INT, IOC_IOPULL_DOWN); ti_lib_rom_ioc_pin_type_gpio_input(BOARD_IOID_REED_RELAY); ti_lib_ioc_io_port_pull_set(BOARD_IOID_REED_RELAY, IOC_IOPULL_DOWN); ti_lib_rom_ioc_pin_type_gpio_output(BOARD_IOID_MPU_POWER); /* Flash interface */ ti_lib_rom_ioc_pin_type_gpio_output(BOARD_IOID_FLASH_CS); ti_lib_gpio_pin_write(BOARD_FLASH_CS, 1); buzzer_init(); lpm_register_module(&sensortag_module); /* Re-enable interrupt if initially enabled. */ if(!int_disabled) { ti_lib_int_master_enable(); } }
int board_early_init_f(void) { int err; err = board_uart_init(); if (err) { debug("UART init failed\n"); return err; } #ifdef CONFIG_SYS_I2C_INIT_BOARD board_i2c_init(NULL); #endif return err; }
int board_late_init(void) { //unsigned char val; #ifdef CONFIG_AML_I2C board_i2c_init(); #endif /*CONFIG_AML_I2C*/ #ifdef CONFIG_USB_DWC_OTG_HCD board_usb_init(&g_usb_config_m6_skt,BOARD_USB_MODE_HOST); board_usb_init(&g_usb_config_m6_skt,BOARD_USB_MODE_CHARGER); #endif /*CONFIG_USB_DWC_OTG_HCD*/ return 0; }
int board_init(void) { #ifdef CONFIG_UART_A_FUNCTION_ADD unsigned a_uart = (159375000/(115200*4) -1) | UART_STP_BIT | UART_PRTY_BIT | UART_CHAR_LEN | UART_CNTL_MASK_TX_EN | UART_CNTL_MASK_RX_EN | UART_CNTL_MASK_RST_TX | UART_CNTL_MASK_RST_RX | UART_CNTL_MASK_CLR_ERR ; serial_init_uart_a(a_uart); #endif #if KSZ8091 CLEAR_CBUS_REG_MASK(PREG_PAD_GPIO1_EN_N, 1 << 31); CLEAR_CBUS_REG_MASK(PREG_PAD_GPIO1_O, 1 << 31); #endif gd->bd->bi_arch_number=MACH_TYPE_MESON6_SKT; gd->bd->bi_boot_params=BOOT_PARAMS_OFFSET; #if CONFIG_JERRY_NAND_TEST //temp test nand_init(); #endif // LED clrbits_le32(P_AO_GPIO_O_EN_N, (1 << 15)); clrbits_le32(P_AO_GPIO_O_EN_N, (1 << 31)); #ifdef CONFIG_AML_I2C board_i2c_init(); #endif /*CONFIG_AML_I2C*/ #ifdef CONFIG_IR_REMOTE board_ir_init(); #endif #ifdef CONFIG_USB_DWC_OTG_HCD board_usb_init(&g_usb_config_m6_skt_b,BOARD_USB_MODE_HOST); board_usb_init(&g_usb_config_m6_skt_h,BOARD_USB_MODE_CHARGER); #endif /*CONFIG_USB_DWC_OTG_HCD*/ #ifdef CONFIG_NET_WIFI wifi_power_init(); #endif key_init(); return 0; }
int board_late_init(void) { #ifdef CONFIG_AML_I2C board_i2c_init(); #endif /*CONFIG_AML_I2C*/ #ifdef CONFIG_USB_DWC_OTG_HCD board_usb_init(&g_usb_config_m6_skt,BOARD_USB_MODE_HOST); #endif /*CONFIG_USB_DWC_OTG_HCD*/ #ifdef CONFIG_AW_AXP20 set_dcdc2(1500); //set DC-DC2 to 1500mV set_dcdc3(1100); //set DC-DC3 to 1100mV #endif return 0; }
int board_init(void) { #ifdef CONFIG_M201_COSTDOWN /* pull up Linux rx/tx */ writel(readl(P_AO_RTI_PULL_UP_REG) | (3 << 0 | 3 << 16), P_AO_RTI_PULL_UP_REG); #endif borad_power_init(); gd->bd->bi_arch_number=MACH_TYPE_MESON6_SKT; gd->bd->bi_boot_params=BOOT_PARAMS_OFFSET; #if CONFIG_JERRY_NAND_TEST //temp test nand_init(); #endif #ifdef CONFIG_AML_I2C board_i2c_init(); #endif /*CONFIG_AML_I2C*/ #ifdef CONFIG_IR_REMOTE board_ir_init(); #endif #ifdef CONFIG_USB_DWC_OTG_HCD board_usb_init(&g_usb_config_m6_skt_b,BOARD_USB_MODE_HOST); board_usb_init(&g_usb_config_m6_skt_h,BOARD_USB_MODE_CHARGER); #endif /*CONFIG_USB_DWC_OTG_HCD*/ #ifdef CONFIG_M201_COSTDOWN /* 32k clock init */ printf("init 32k clock\n"); aml_set_reg32_mask(P_PERIPHS_PIN_MUX_9,0x1<<19);//set mode GPIOX_10-->CLK_OUT3 WRITE_CBUS_REG(PWM_PWM_E, 0x16d016d); WRITE_CBUS_REG(PWM_MISC_REG_EF, 0x8001); /* init led out put */ //red off gpio_amlogic_requst(NULL, GPIOAO_2); gpio_amlogic_direction_output(NULL, GPIOAO_2, 1); //green on gpio_amlogic_requst(NULL, GPIOAO_13); gpio_amlogic_direction_output(NULL, GPIOAO_13, 0); #endif return 0; }
int board_init(void) { gd->bd->bi_arch_number=MACH_TYPE_MESON6_SKT; gd->bd->bi_boot_params=BOOT_PARAMS_OFFSET; #ifdef CONFIG_UBOOT_BUILD_VERSION_INFO print_build_version_info(); #endif #if CONFIG_JERRY_NAND_TEST //temp test nand_init(); #endif #ifdef CONFIG_AML_I2C board_i2c_init(); #endif /*CONFIG_AML_I2C*/ #ifdef CONFIG_IR_REMOTE board_ir_init(); #endif #ifdef CONFIG_USB_XHCI_AMLOGIC board_usb_init(&g_usb_config_g9TV_skt,BOARD_USB_MODE_HOST); #endif /*CONFIG_USB_XHCI_AMLOGIC*/ #if defined(CONFIG_VLSI_EMULATOR) run_command("video dev open 1080p", 0); #endif #ifdef CONFIG_PWM_E_OUT_32K printf("init pwm_e out 32k clock.\n"); writel(readl(P_PERIPHS_PIN_MUX_9) | (0x1 << 19), P_PERIPHS_PIN_MUX_9); //set mode GPIOX_10-->CLK_OUT3 writel(0x16d016d, P_PWM_PWM_E); writel((readl(P_PWM_MISC_REG_EF) & ~(0xFF << 8)) | 0x8001, P_PWM_MISC_REG_EF); #endif //default power on 24M writel(readl(P_PERIPHS_PIN_MUX_10)&~(1 << 11),P_PERIPHS_PIN_MUX_10); writel(readl(P_AO_GPIO_O_EN_N)&~(1 << 18),P_AO_GPIO_O_EN_N); writel(readl(P_AO_GPIO_O_EN_N)&~(1 << 2),P_AO_GPIO_O_EN_N); return 0; }
int board_init(void) { //gd->bd->bi_arch_number=MACH_TYPE_MESON_8626M; gd->bd->bi_arch_number=2958; gd->bd->bi_boot_params=BOOT_PARAMS_OFFSET; #if CONFIG_JERRY_NAND_TEST //temp test nand_init(); #endif #ifdef CONFIG_AML_I2C board_i2c_init(); #endif /*CONFIG_AML_I2C*/ #ifdef CONFIG_USB_DWC_OTG_HCD board_usb_init(&g_usb_config_m3_skt_a,BOARD_USB_MODE_HOST); board_usb_init(&g_usb_config_m3_skt_b,BOARD_USB_MODE_HOST); #endif /*CONFIG_USB_DWC_OTG_HCD*/ return 0; }
int board_init(void) { struct fdt_memory mem_config; /* Record the time we spent before SPL */ bootstage_add_record(BOOTSTAGE_ID_START_SPL, "spl_start", 0, CONFIG_SPL_TIME_US); bootstage_mark_name(BOOTSTAGE_ID_BOARD_INIT, "board_init"); if (fdtdec_decode_memory(gd->fdt_blob, &mem_config)) { debug("%s: Failed to decode memory\n", __func__); return -1; } gd->bd->bi_boot_params = mem_config.start + 0x100UL; #ifdef CONFIG_OF_CONTROL gd->bd->bi_arch_number = fdtdec_get_config_int(gd->fdt_blob, "machine-arch-id", -1); if (gd->bd->bi_arch_number == -1U) debug("Warning: No /config/machine-arch-id defined in fdt\n"); #endif #ifdef CONFIG_EXYNOS_SPI spi_init(); #endif if (board_i2c_arb_init(gd->fdt_blob)) return -1; board_i2c_init(gd->fdt_blob); #ifdef CONFIG_TPS65090_POWER tps65090_init(); /* * If we just reset, disable the backlight and lcd fets before * [re-]initializing the lcd. This ensures we are always in the same * state during lcd init. We've seen some oddities with these fets, so * this removes a bit of uncertainty. */ if (board_is_processor_reset()) { tps65090_fet_disable(1); tps65090_fet_disable(6); } #endif exynos_lcd_check_next_stage(gd->fdt_blob, 0); if (max77686_enable_32khz_cp()) { debug("%s: Failed to enable max77686 32khz coprocessor clock\n", __func__); return -1; } #if defined CONFIG_EXYNOS_CPUFREQ if (exynos5250_cpufreq_init(gd->fdt_blob)) { debug("%s: Failed to init CPU frequency scaling\n", __func__); return -1; } #endif #if defined CONFIG_EXYNOS_TMU if (tmu_init(gd->fdt_blob)) { debug("%s: Failed to init TMU\n", __func__); return -1; } #endif /* Clock Gating all the unused IP's to save power */ clock_gate(); /* Disable USB3.0 PLL to save 250mW of power */ disable_usb30_pll(); if (board_init_mkbp_devices(gd->fdt_blob)) return -1; board_configure_analogix(); board_enable_audio_codec(); exynos_lcd_check_next_stage(gd->fdt_blob, 0); bootstage_mark_name(BOOTSTAGE_ID_BOARD_INIT_DONE, "board_init_done"); return 0; }
INT_32 ea3250_write_config(EA_HW_CFG_T* cfg) { board_i2c_init(0); cfg->magic = EA_BOARD_MAGIC; return board_i2c_write(EA_EEPROM_HW_CFG_OFS, (UNS_8*)cfg, sizeof(EA_HW_CFG_T)); }
INT_32 ea3250_read_config(void) { board_i2c_init(0); return board_i2c_read(EA_EEPROM_HW_CFG_OFS, (UNS_8*)&eaHwCfg, sizeof(eaHwCfg)); }