int board_init(void) { int i; struct i2c_pads_info *p = i2c_pads + i2c_get_info_entry_offset(); struct iomuxc *const iomuxc_regs = (struct iomuxc *)IOMUXC_BASE_ADDR; clrsetbits_le32(&iomuxc_regs->gpr[1], IOMUXC_GPR1_OTG_ID_MASK, IOMUXC_GPR1_OTG_ID_GPIO1); /* address of boot parameters */ gd->bd->bi_boot_params = PHYS_SDRAM + 0x100; for (i = 0; i < 3; i++) { setup_i2c(i, CONFIG_SYS_I2C_SPEED, 0x7f, p); p += I2C_PADS_INFO_ENTRY_SPACING; } #ifdef CONFIG_CMD_SATA setup_sata(); #endif #ifdef CONFIG_CMD_FBPANEL fbp_setup_display(displays, ARRAY_SIZE(displays)); #endif return 0; }
int board_init(void) { int i; struct i2c_pads_info *p = i2c_pads + i2c_get_info_entry_offset(); /* address of boot parameters */ gd->bd->bi_boot_params = PHYS_SDRAM + 0x100; for (i = 0; i < 3; i++) { setup_i2c(i, CONFIG_SYS_I2C_SPEED, 0x7f, p); p += I2C_PADS_INFO_ENTRY_SPACING; } #ifdef CONFIG_CMD_FBPANEL fbp_setup_display(displays, ARRAY_SIZE(displays)); #endif return 0; }
int board_init(void) { int i; struct i2c_pads_info *p = i2c_pads + i2c_get_info_entry_offset(); struct iomuxc *const iomuxc_regs = (struct iomuxc *)IOMUXC_BASE_ADDR; u8 orig_i2c_bus; u8 val8; clrsetbits_le32(&iomuxc_regs->gpr[1], IOMUXC_GPR1_OTG_ID_MASK, IOMUXC_GPR1_OTG_ID_GPIO1); /* address of boot parameters */ gd->bd->bi_boot_params = PHYS_SDRAM + 0x100; for (i = 0; i < 3; i++) { setup_i2c(i, CONFIG_SYS_I2C_SPEED, 0x7f, p); p += I2C_PADS_INFO_ENTRY_SPACING; } #ifdef CONFIG_CMD_SATA setup_sata(); #endif orig_i2c_bus = i2c_get_bus_num(); i2c_set_bus_num(2); val8 = 0x7f; /* 4.0A source */ i2c_write(0x69, 0xc0, 1, &val8, 1); val8 = 0x0c; /* Protection allow 0xb9 write */ i2c_write(0x69, 0xbd, 1, &val8, 1); val8 = 0x14; /* 1A charge */ i2c_write(0x69, 0xb9, 1, &val8, 1); i2c_set_bus_num(orig_i2c_bus); #ifdef CONFIG_CMD_FBPANEL fbp_setup_display(displays, ARRAY_SIZE(displays)); #endif return 0; }