9 {
11 static uint32_t variant;
12
15 const uint8_t set_out[3] = {0x06, 0xff, 0xff};
16 const uint8_t read_inputs_cmd[1] = {0x00};
17 uint8_t rx[2] = {0xff, 0xff};
18
19
21
22
23
24 m_i2c.
write(PCA9555_I2C_ADDR, set_out,
sizeof(set_out));
25
26
27 m_i2c.
writeRead(PCA9555_I2C_ADDR, read_inputs_cmd,
sizeof(read_inputs_cmd), rx,
sizeof(rx));
28
29 variant = (rx[1] << 8) | (rx[0] << 0);
30
31 efiPrintf("Board variant 0x%04x\n", (unsigned int)variant);
32
34
35
37 }
38
39 return variant;
40}
void write(uint8_t addr, const uint8_t *data, size_t size)
bool init(brain_pin_e scl, brain_pin_e sda)
void writeRead(uint8_t addr, const uint8_t *writeData, size_t writeSize, uint8_t *readData, size_t readSize)
static bool isFirstInvocation