I have two LP5012 integrated onto a pHAT (expansion board) for a Raspberry Pi Zero. After failing to get the device tree driver working, I started to implement a driver in Python with the datasheet as reference. I have confirmed that I²C reads and writes successfully to the chip, given the expected address. However, after sending I²C commands that I would expect to produce light, I see no change from the device. Firstly, could you check that nothing is missing from this sequence of I²C commands in the setup procedure?
# Writes take the format 0xHEXVAL -> REGISTERh
# Reads take the format BINVAL <- REGISTERh
# Reset device
0xff -> 17h
# Disable autoincrement
0x34 -> 01h
# Set device enabled
0x40 -> 00h
01000000 <- 00h (DEVICE_CONFIG0)
00110100 <- 01h (DEVICE_CONFIG1)
00000000 <- 02H (LED_CONFIG0)
# Try writing to the banks, even though we're trying to use independent mode
0xff -> 03h (Bank_Brightness)
0x0f -> 04h (Bank_A_Color)
0x0f -> 05h (Bank_B_Color)
0x0f -> 06h (Bank_C_Color)
0x0f -> 07h (LED0_Brightness)
0xff -> 08h (LED1_Brightness)
0xff -> 09h (LED2_Brightness)
0xff -> 0Ah (LED3_Brightness)
# Disable global off and powersave
0x24 -> 01h
# Try writing to OUT{0..11}_Color
0xff -> 0Bh
0xff -> 0Ch
...
0xff -> 15h
0xff -> 16h
Secondly, are there any troubleshooting steps you can recommend with a multimeter etc to see if the chip is partially damaged (eg by ESD) in such a way that it accepts I²C commands but produces no output? If it would be helpful I can attach schematic/board files/images.
Thanks in advance