mirror of https://github.com/ARMmbed/mbed-os.git
I2C pinmap and HAL fixes for MIMXRT (#150)
* Start fixing up I2C on MIMXRT * Fix typod peripheral namespull/15437/head
parent
ea044e0695
commit
e93b80a006
|
@ -138,8 +138,10 @@ int i2c_write(i2c_t *obj, int address, const char *data, int length, int stop)
|
||||||
/* Send the STOP signal */
|
/* Send the STOP signal */
|
||||||
base->MTDR = LPI2C_MTDR_CMD(0x2U);
|
base->MTDR = LPI2C_MTDR_CMD(0x2U);
|
||||||
|
|
||||||
/* Wait till STOP has been sent successfully */
|
// Wait until:
|
||||||
while (!(base->MSR & kLPI2C_MasterStopDetectFlag)) {
|
// - Stop has been generated
|
||||||
|
// - Bus ready to transmit data again
|
||||||
|
while(!(base->MSR & kLPI2C_MasterStopDetectFlag) || !(base->MSR & kLPI2C_MasterTxReadyFlag)) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (base->MSR & kLPI2C_MasterNackDetectFlag) {
|
if (base->MSR & kLPI2C_MasterNackDetectFlag) {
|
||||||
|
|
|
@ -73,21 +73,35 @@ const PinMap PinMap_DAC[] = {
|
||||||
|
|
||||||
/************I2C***************/
|
/************I2C***************/
|
||||||
const PinMap PinMap_I2C_SDA[] = {
|
const PinMap PinMap_I2C_SDA[] = {
|
||||||
|
{GPIO_SD_B1_05, I2C_1, ((0U << DAISY_REG_VALUE_SHIFT) | (0x4D0 << DAISY_REG_SHIFT) | (1U << SION_BIT_SHIFT) | 2)},
|
||||||
{GPIO_AD_B1_01, I2C_1, ((1U << DAISY_REG_VALUE_SHIFT) | (0x4D0 << DAISY_REG_SHIFT) | (1U << SION_BIT_SHIFT) | 3)},
|
{GPIO_AD_B1_01, I2C_1, ((1U << DAISY_REG_VALUE_SHIFT) | (0x4D0 << DAISY_REG_SHIFT) | (1U << SION_BIT_SHIFT) | 3)},
|
||||||
|
|
||||||
// I2C3 is ALT1 of GPIO_AD_B1_06
|
{GPIO_B0_05, I2C_2, ((1U << DAISY_REG_VALUE_SHIFT) | (0x4D8 << DAISY_REG_SHIFT) | (1U << SION_BIT_SHIFT) | 2)},
|
||||||
// GPIO_AD_B1_06 is daisy chain input 3 of I2C3 per the IOMUXC_LPI2C3_SDA_SELECT_INPUT register description
|
{GPIO_SD_B1_10, I2C_2, ((0U << DAISY_REG_VALUE_SHIFT) | (0x4D8 << DAISY_REG_SHIFT) | (1U << SION_BIT_SHIFT) | 3)},
|
||||||
{GPIO_AD_B1_06, I2C_3, ((3U << DAISY_REG_VALUE_SHIFT) | (0x4E0 << DAISY_REG_SHIFT) | (1U << SION_BIT_SHIFT) | 1)},
|
|
||||||
|
{GPIO_AD_B1_06, I2C_3, ((2U << DAISY_REG_VALUE_SHIFT) | (0x4E0 << DAISY_REG_SHIFT) | (1U << SION_BIT_SHIFT) | 1)},
|
||||||
|
{GPIO_EMC_21, I2C_3, ((0U << DAISY_REG_VALUE_SHIFT) | (0x4E0 << DAISY_REG_SHIFT) | (1U << SION_BIT_SHIFT) | 2)},
|
||||||
|
{GPIO_SD_B0_01, I2C_3, ((1U << DAISY_REG_VALUE_SHIFT) | (0x4E0 << DAISY_REG_SHIFT) | (1U << SION_BIT_SHIFT) | 2)},
|
||||||
|
|
||||||
|
{GPIO_EMC_11, I2C_4, ((0U << DAISY_REG_VALUE_SHIFT) | (0x4E8 << DAISY_REG_SHIFT) | (1U << SION_BIT_SHIFT) | 2)},
|
||||||
|
{GPIO_AD_B0_13, I2C_4, ((1U << DAISY_REG_VALUE_SHIFT) | (0x4E8 << DAISY_REG_SHIFT) | (1U << SION_BIT_SHIFT) | 0)},
|
||||||
|
|
||||||
{NC , NC , 0}
|
{NC , NC , 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
const PinMap PinMap_I2C_SCL[] = {
|
const PinMap PinMap_I2C_SCL[] = {
|
||||||
|
{GPIO_SD_B1_04, I2C_1, ((0U << DAISY_REG_VALUE_SHIFT) | (0x4CC << DAISY_REG_SHIFT) | (1U << SION_BIT_SHIFT) | 2)},
|
||||||
{GPIO_AD_B1_00, I2C_1, ((1U << DAISY_REG_VALUE_SHIFT) | (0x4CC << DAISY_REG_SHIFT) | (1U << SION_BIT_SHIFT) | 3)},
|
{GPIO_AD_B1_00, I2C_1, ((1U << DAISY_REG_VALUE_SHIFT) | (0x4CC << DAISY_REG_SHIFT) | (1U << SION_BIT_SHIFT) | 3)},
|
||||||
|
|
||||||
// I2C3 is ALT1 of GPIO_AD_B1_07
|
{GPIO_SD_B1_11, I2C_2, ((0U << DAISY_REG_VALUE_SHIFT) | (0x4D4 << DAISY_REG_SHIFT) | (1U << SION_BIT_SHIFT) | 3)},
|
||||||
// GPIO_AD_B1_07 is daisy chain input 3 of I2C3 per the IOMUXC_LPI2C3_SCL_SELECT_INPUT register description
|
{GPIO_B0_04, I2C_2, ((1U << DAISY_REG_VALUE_SHIFT) | (0x4D4 << DAISY_REG_SHIFT) | (1U << SION_BIT_SHIFT) | 2)},
|
||||||
{GPIO_AD_B1_07, I2C_3, ((3U << DAISY_REG_VALUE_SHIFT) | (0x4DC << DAISY_REG_SHIFT) | (1U << SION_BIT_SHIFT) | 1)},
|
|
||||||
|
{GPIO_EMC_22, I2C_3, ((0U << DAISY_REG_VALUE_SHIFT) | (0x4DC << DAISY_REG_SHIFT) | (1U << SION_BIT_SHIFT) | 2)},
|
||||||
|
{GPIO_SD_B0_00, I2C_3, ((1U << DAISY_REG_VALUE_SHIFT) | (0x4DC << DAISY_REG_SHIFT) | (1U << SION_BIT_SHIFT) | 2)},
|
||||||
|
{GPIO_AD_B1_07, I2C_3, ((2U << DAISY_REG_VALUE_SHIFT) | (0x4DC << DAISY_REG_SHIFT) | (1U << SION_BIT_SHIFT) | 1)},
|
||||||
|
|
||||||
|
{GPIO_EMC_12, I2C_4, ((0U << DAISY_REG_VALUE_SHIFT) | (0x4E4 << DAISY_REG_SHIFT) | (1U << SION_BIT_SHIFT) | 2)},
|
||||||
|
{GPIO_AD_B0_12, I2C_4, ((1U << DAISY_REG_VALUE_SHIFT) | (0x4E4 << DAISY_REG_SHIFT) | (1U << SION_BIT_SHIFT) | 0)},
|
||||||
|
|
||||||
{NC , NC , 0}
|
{NC , NC , 0}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue