Quantcast
Channel: Raspberry Pi Forums
Viewing all articles
Browse latest Browse all 4919

Advanced users • Re: MCP23017 overlay error -EIO: can't write IOCON 32

$
0
0
It's currently a very big learning curve for me so thank you all for your support here really appreciated and sorry if I sometimes miss something.


Here is the requested output

Code:

 $ cat /proc/interrupts           CPU0 17:      12928  ARMCTRL-level   1 Edge      2000b880.mailbox 18:         75  ARMCTRL-level   2 Edge      VCHIQ doorbell 27:     290880  ARMCTRL-level  35 Edge      timer 34:          0  ARMCTRL-level  42 Edge      vc4 35:          0  ARMCTRL-level  43 Edge      20004000.txp 42:       5094  ARMCTRL-level  50 Edge      DMA IRQ 44:       5610  ARMCTRL-level  52 Edge      DMA IRQ 45:          0  ARMCTRL-level  53 Edge      DMA IRQ 56:          1  ARMCTRL-level  64 Edge      dwc_otg, dwc_otg_pcd, dwc_otg_hcd:usb1 57:          0  ARMCTRL-level  65 Edge      vc4 hvs 64:          0  ARMCTRL-level  72 Edge      vc4 hdmi cec 66:          0  ARMCTRL-level  74 Edge      vc4 crtc 69:          0  ARMCTRL-level  77 Edge      vc4 crtc 70:          0  ARMCTRL-level  78 Edge      vc4 crtc 77:          0  ARMCTRL-level  85 Edge      20804000.i2c, 20805000.i2c 80:       2826  ARMCTRL-level  88 Edge      mmc0 81:       4275  ARMCTRL-level  89 Edge      uart-pl011 86:     383348  ARMCTRL-level  94 Edge      mmc1160:          0  pinctrl-bcm2835   4 Level     11-0020161:          0  pinctrl-bcm2835   5 Level     11-0021FIQ:              usb_fiqErr:          0

and again

/boot/firmware/config.txt

Code:

[all]dtoverlay=i2c-gpio,i2c_gpio_sda=10,i2c_gpio_scl=11dtoverlay=mcp23017new,bus=11,gpiopin=18

Code:

pinctrl 1818: ip    -- | hi // GPIO18 = input
Used overlay

Code:

remote:~ $ cat mcp23017new.dts// Simple test overlay on bit-bashed I2C// pull-ups on I2C GPIO's enabled!!//// swi2c-dummy-overlay.dts//// aBUGSworstnightmare#include <dt-bindings/gpio/gpio.h>#include <dt-bindings/pinctrl/bcm2835.h>/dts-v1/;/plugin/;/ {        compatible = "brcm,bcm2711";        fragment@0 {                target-path = "/";                __overlay__ {                        i2c_gpio: i2c@0 {                                reg = <0xffffffff>;                                compatible = "i2c-gpio";                                gpios = <&gpio 10 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN|GPIO_PULL_UP) /* sda */                                         &gpio 11 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN|GPIO_PULL_UP) /* scl */                                        >;                                i2c-gpio,delay-us = <2>;        /* ~100 kHz */                                #address-cells = <1>;                                #size-cells = <0>;                        };                };        };        fragment@1 {                target-path = "/aliases";                __overlay__ {                        i2c_gpio = "/i2c@0";                };        };        fragment@2 {                target-path = "/__symbols__";                __overlay__ {                        i2c_gpio = "/i2c@0";                };        };        fragment@10 {                target = <&gpio>;                __overlay__ {                        e2prom_pins: e2prom_pins {                                brcm,pins = <4>;                                 brcm,function = <1>; /* out */                        };                        mcp23017_20_pins: mcp23017_pins@20 {                                brcm,pins = <5>;                                brcm,function = <0>;                        };                        mcp23017_21_pins: mcp23017_pins@21 {                                brcm,pins = <6>;                                brcm,function = <0>;                        };                };        };        fragment@20 {                target = <&mcp23017_20>;                mcp23017_20_irq: __overlay__ {                        #interrupt-cells=<2>;                        pinctrl-names = "default";                        pinctrl-0 = <&mcp23017_20_pins>;                        interrupt-parent = <&gpio>;                        interrupts = <4 2>;                        interrupt-controller;                        microchip,irq-mirror;                };        };        fragment@21 {                target = <&mcp23017_21>;                mcp23017_21_irq: __overlay__ {                        #interrupt-cells=<2>;                        pinctrl-names = "default";                        pinctrl-0 = <&mcp23017_21_pins>;                        interrupt-parent = <&gpio>;                        interrupts = <5 2>;                        interrupt-controller;                        microchip,irq-mirror;                };        };        fragment@30 {                target = <&i2c_gpio>;                __overlay__ {                        #address-cells = <1>;                        #size-cells = <0>;                        status = "okay";                        at24@50 {                        compatible = "atmel,24c32","at24";                        #address-cells = <1>;                        #size-cells = <0>;                        label = "dummye2prom";                        address-width = <16>;                        num-addresses = <1>;                        reg = <0x50>;                        pagesize = <32>;                        size = <4096>;                        wp-gpios = <&gpio 4 0>;                        };                        mcp23017_20: mcp@20 {                                compatible = "microchip,mcp23017";                                reg = <0x20>;                                gpio-controller;                                #gpio-cells = <2>;                                status = "okay";                        };                        mcp23017_21: mcp@21 {                                compatible = "microchip,mcp23017";                                reg = <0x21>;                                gpio-controller;                                #gpio-cells = <2>;                                status = "okay";                        };                };        };        __overrides__ {                i2c_gpio_sda = <&i2c_gpio>,"gpios:4";                i2c_gpio_scl = <&i2c_gpio>,"gpios:16";                i2c_gpio_delay_us = <&i2c_gpio>,"i2c-gpio,delay-us:0";                bus = <&i2c_gpio>, "reg:0";        };};

As I understood your answer correctly this must changed

Code:

brcm,pins = <5>;
to

Code:

brcm,pins = <18>;

Statistics: Posted by koerli — Wed Dec 18, 2024 2:16 am



Viewing all articles
Browse latest Browse all 4919

Trending Articles