You are here: Digi Embedded Yocto > System development > Linux v4.1 Board Support Package > Devices and interfaces > I/O Expander

I/O Expander

The ConnectCore 6UL SBC Pro has an I/O Expander IC connected to the CC6UL SoM through the I2C1 port. This IC provides GPIO and ADC functionalities through a multi-function device driver (MFD).

Kernel configuration

You can manage the I/O Expander driver support through the following kernel configuration option:

Platform driver mapping

The Digi I/O Expander core driver is located at:

File Description

drivers/mfd/mca-ioexp-core.c

I/O Expander core driver

drivers/mfd/mca-ioexp-i2c.c

I/O Expander I2C communication driver

drivers/mfd/mca-ioexp-irq.c

I/O Expander MCA interrupt driver

Device tree bindings and customization

The I/O Expander device tree binding is documented at Documentation/devicetree/bindings/mfd/digi,mca-ioexp.txt.

The I/O Expander is connected through I2C1 port of the CC6UL SoM. Note that its device tree node has one sub-node for the GPIO driver and one for the ADC.

&i2c1 {
    mca_ioexp: mca_io@6e {
        compatible = "digi,mca_ioexp";
        reg = <0x6e>;
        interrupt-parent = <&mca_gpio>;
        interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
        status = "okay";
 
        interrupt-controller;
        #interrupt-cells = <2>;
        pinctrl-names = "default";
 
        restore-config-on-resume;
 
        mca_ioexp_gpio: gpio {
            compatible = "digi,mca-ioexp-gpio";
            gpio-controller;
            #gpio-cells = <2>;
 
            interrupt-parent = <&mca_ioexp>;
            interrupt-controller;
            #interrupt-cells = <2>;
        };
 
        mca_ioexp_adc: adc {
            compatible = "digi,mca-ioexp-adc";
            digi,adc-vref = <3300000>;
        };
    };
 
};

Functionality

See the following topics to learn more about the functionality offered by the MCA:

 

© 2017 Digi International Inc. All rights reserved.
I/O Expander updated on 25 April 2017 01:49:41 PM