static void marvell_bl31_mpp_init(int cp) { uint32_t reg; /* need to do for CP#0 only */ if (cp) return; /* * Enable CP0 I2C MPPs (MPP: 37-38) * U-Boot rely on proper MPP settings for I2C EEPROM usage * (only for CP0) */ reg = mmio_read_32(MVEBU_CP_MPP_REGS(0, 4)); mmio_write_32(MVEBU_CP_MPP_REGS(0, 4), reg | 0x2200000); }
static void mpp_config(void) { uint32_t val; uintptr_t reg = MVEBU_CP_MPP_REGS(0, 4); /* configure CP0 MPP 37 and 38 to i2c */ val = mmio_read_32(reg); val &= ~((MVEBU_MPP_CTRL_MASK << MVEBU_CP_MPP_CTRL37_OFFS) | (MVEBU_MPP_CTRL_MASK << MVEBU_CP_MPP_CTRL38_OFFS)); val |= (MVEBU_CP_MPP_CTRL37_I2C0_SCK_ENA << MVEBU_CP_MPP_CTRL37_OFFS) | (MVEBU_CP_MPP_CTRL38_I2C0_SDA_ENA << MVEBU_CP_MPP_CTRL38_OFFS); mmio_write_32(reg, val); }