mcp23017-overlay.dts:19.36-22.6: Warning (unit_address_vs_reg): /fragment@1/__overlay__/mcp23017_pins@20: node has a unit name, but no reg or ranges property
mcp23017-overlay.dts:26.13-31.4: Warning (unit_address_vs_reg): /fragment@2: node has a unit name, but no reg or ranges property
mcp23017-overlay.dts:70.15-75.4: Warning (unit_address_vs_reg): /fragment@101: node has a unit name, but no reg or ranges property
mcp23017-overlay.dts:77.15-82.4: Warning (unit_address_vs_reg): /fragment@102: node has a unit name, but no reg or ranges property
mcp23017-overlay.dts:35.29-43.5: Warning (interrupt_provider): /fragment@3/__overlay__: Missing #address-cells in interrupt provider
Copied the compiled overlay file to /boot/overlays and updated the /boot/config.txt file as follows:
dtoverlay=mcp23017
Rebooted the system.
After rebooting, I see the following error in the dmesg output:
[ 18.079543] mcp230xx 1-0020: error -EREMOTEIO: can't write IOCON 32
[ 18.081558] mcp230xx: probe of 1-0020 failed with error -121
My setup:
Raspberry Pi running DietPi.
MCP23017 connected via I2C.
Questions:
What does this error mean (-EREMOTEIO and -121)?
Could this be a wiring or addressing issue with the I2C bus?
Are there additional steps or configurations required to properly load the MCP23017 overlay?
root@DietPi:~# dtc -@ -I dts -O dtb -o mcp23017.dtbo mcp23017-overlay.dts
mcp23017-overlay.dts:19.36-22.6: Warning (unit_address_vs_reg): /fragment@1/__overlay__/mcp23017_pins@20: node has a unit name, but no reg or ranges property
mcp23017-overlay.dts:26.13-31.4: Warning (unit_address_vs_reg): /fragment@2: node has a unit name, but no reg or ranges property
mcp23017-overlay.dts:70.15-75.4: Warning (unit_address_vs_reg): /fragment@101: node has a unit name, but no reg or ranges property
mcp23017-overlay.dts:77.15-82.4: Warning (unit_address_vs_reg): /fragment@102: node has a unit name, but no reg or ranges property
mcp23017-overlay.dts:35.29-41.5: Warning (interrupt_provider): /fragment@3/__overlay__: Missing #address-cells in interrupt provider
and
[ 18.088788] mcp230xx 1-0020: error -EREMOTEIO: can't write IOCON 32 [ 18.105436] mcp230xx: probe of 1-0020 failed with error -121
Why are you compiling the overlay by yourself, instead of using the one that is shipped already with the kernel package? If that one causes the same error, then at best check back with the manufacturer or RPi kernel maintainers. I do not understand the error message either.
Since you were overwriting the original overlay with your self-compiled one, you’d need to reinstall the kernel package:
Did you try it with the original overlay now? In case the WiFi chip is somewhat newer, the new kernel might have some better support. Worth to give a try before contacting manufacturer or RPi devs.