The ConnectCore 6UL SBC Pro has an I/O Expander IC connected to the ConnectCore 6UL SOM through the I2C1 port. This IC provides GPIO and ADC functionalities through a multi-function device driver (MFD).
To program a blank I/O Expander for the first time, see Program I/O Expander firmware with JTAG debugger.
Kernel configuration
You can manage the I/O Expander driver support through the following kernel configuration option:
-
Digi IO Expander (CONFIG_MFD_MCA_IOEXP)
Kernel driver
The Digi I/O Expander core driver is located at:
File | Description |
---|---|
I/O Expander core driver |
|
I/O Expander I2C communication driver |
|
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 ConnectCore 6UL 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: