Updated submodules
This commit is contained in:
parent
85afe339fd
commit
27714698b2
|
@ -1 +1 @@
|
|||
Subproject commit 292df8b7cc2a7d9df7a647483eef6ba8c68c250d
|
||||
Subproject commit 4b6eb7b971db033136af2835e3949d2ff6b32da5
|
|
@ -1 +1 @@
|
|||
Subproject commit 8ee8eea4e4974ae54787b01aa4a17fa744580246
|
||||
Subproject commit 5261a606d1a653d5f571a8f6d1a05eb78c066707
|
|
@ -1 +1 @@
|
|||
Subproject commit 7dab08e2947afccd2c5431c91235f8d36d313310
|
||||
Subproject commit 60d89338fd81a95be030eee127ba0df5c83b9a88
|
|
@ -94,7 +94,7 @@ static const i2c_hardware_t i2c4_hardware = {
|
|||
}
|
||||
};
|
||||
|
||||
static bool force_clock (i2c_hardware_t *hardware)
|
||||
static bool force_clock (const i2c_hardware_t *hardware)
|
||||
{
|
||||
bool ret = false;
|
||||
uint32_t sda_pin = hardware->sda_pin.pin;
|
||||
|
@ -127,7 +127,7 @@ static bool force_clock (i2c_hardware_t *hardware)
|
|||
return ret;
|
||||
}
|
||||
|
||||
static void setClock (IMXRT_LPI2C_t *port, uint32_t frequency)
|
||||
static void set_clock (IMXRT_LPI2C_t *port, uint32_t frequency)
|
||||
{
|
||||
port->MCR = 0;
|
||||
|
||||
|
@ -219,7 +219,7 @@ void i2c_init (void)
|
|||
*hardware->clock_gate_register |= hardware->clock_gate_mask;
|
||||
port->MCR = LPI2C_MCR_RST;
|
||||
|
||||
setClock(port, 100000);
|
||||
set_clock(port, 100000);
|
||||
|
||||
// Setup SDA register
|
||||
*(portControlRegister(hardware->sda_pin.pin)) = PINCONFIG;
|
||||
|
@ -238,6 +238,22 @@ void i2c_init (void)
|
|||
}
|
||||
}
|
||||
|
||||
// wait until ready for transfer, try peripheral reset if bus hangs
|
||||
inline static bool wait_ready (void)
|
||||
{
|
||||
while(i2cIsBusy) {
|
||||
if(port->MSR & LPI2C_MSR_PLTF) {
|
||||
if(force_clock(hardware)) {
|
||||
port->MCR = LPI2C_MCR_RST;
|
||||
set_clock(port, 100000);
|
||||
} else
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// get bytes (max 8 if local buffer, else max 255), waits for result
|
||||
uint8_t *I2C_Receive (uint32_t i2cAddr, uint8_t *buf, uint16_t bytes, bool block)
|
||||
{
|
||||
|
@ -338,11 +354,10 @@ nvs_transfer_result_t i2c_nvs_transfer (nvs_transfer_t *transfer, bool read)
|
|||
|
||||
void I2C_GetKeycode (uint32_t i2cAddr, keycode_callback_ptr callback)
|
||||
{
|
||||
while(i2cIsBusy);
|
||||
|
||||
i2c.keycode_callback = callback;
|
||||
|
||||
I2C_Receive(i2cAddr, NULL, 1, false);
|
||||
if(wait_ready()) {
|
||||
i2c.keycode_callback = callback;
|
||||
I2C_Receive(i2cAddr, NULL, 1, false);
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -504,7 +519,9 @@ hal.stream.write(ASCII_EOL);
|
|||
}
|
||||
#endif
|
||||
break;
|
||||
default: break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 0ae3a110b6064596022aa978a5d0a1f14abaa0d7
|
||||
Subproject commit 639ac771ebdf6163300ea111be5725958be7076b
|
|
@ -1 +1 @@
|
|||
Subproject commit 942f5607ba4d6428d8a2f5b690e251d80d462c61
|
||||
Subproject commit 6ececce9e0aa6da9a1ce1fc8cc1861b81b9ff705
|
|
@ -1 +1 @@
|
|||
Subproject commit 3652e142c228c7a168cfa929497f570d541511f5
|
||||
Subproject commit 4ffa4a9826d557d260faa6d7023e196eeeb62c6e
|
|
@ -1 +1 @@
|
|||
Subproject commit 3ba87d7450bb6c4f4ded4cce96a0c71cffc48fa5
|
||||
Subproject commit 66d77893856e9e12fd6dfa2f5293716a4eb21a80
|
|
@ -1 +1 @@
|
|||
Subproject commit b6240a9f9d88b7ef8ac368474589495cf2f43d24
|
||||
Subproject commit 48c2de6609d400c8f817e3512c8c29ddbaa4fa9c
|
|
@ -1 +1 @@
|
|||
Subproject commit 1f5a0df4e0a58480ab7c4e80f0f018152aa2da01
|
||||
Subproject commit ee0d184bad9f329d327bf0547a272c717cf55029
|
|
@ -1 +1 @@
|
|||
Subproject commit 2f81fc6ce340133a48bd5a8209c34220d269308a
|
||||
Subproject commit 7d8866da54ba5d2b5dc2450a4801909f29c2b7f8
|
Loading…
Reference in New Issue