MT100EOCG I/O Control using mts-io
Most of the peripheral I/O on the MT100EOCG is accessible through the mts-io
package. This package provides a device driver (mts_io
) which exposes a sysfs interface to the user at /sys/devices/platform/mtcdp
. You can control the I/O directly by manipulating the files in this directory, or you can use the provided sysfs wrapper program (mts-io-sysfs
). mts-io-sysfs
is just a bash script which reads from and writes to files in the sysfs platform directory.
/sys/devices/platform/mtcdp:
board-temperature | Read the board temperature in Celsius. Typically reads between 33 and 39 degrees when unit is at room temperature. |
radio-reset | Reset the radio. Write a 0 to this file to reset the radio. (See note below this table for MT100EOCG-H5) |
eth0-enabled | Enable or disable the ethernet PHY. |
extserial-dcd | Carrier Detect on the external serial port |
extserial-dtr | Data Terminal Ready on the external serial port |
rsersrc | Radio Serial Source (G2 model only). Defaults to 0, which means the G2 cellular radio is connected to the processor and is accessible on /dev/ttyS1 as normal. If set to 1, the radio serial pins are connected to the external serial pins on the 80-pin connector (TXD_1, RXD_1, etc). This allows AT commands to be sent to the radio from the external serial port. |
led1 | Set LED1 |
led2 | Set LED2. By default, this is a status LED and is controllable through /sys/class/leds/status/ |
led3 | Read LED3. This is connected to the LS (line status) pin on the cellular radio and is read-only. |
led4 | Set LED4 |
led5 | Set LED5 |
led6 | Set LED6 |
gpo1 | Sets or clears the GPO1 output pin |
gpo2 | Sets or clears the GPO2 output pin |
gpo3 | Sets or clears the GPO3 output pin |
gpo4 | Sets or clears the GPO4 output pin |
gpi5 | Reads the state of the GPI5 pin |
gpi6 | Reads the state of the GPI6 pin |
gpi7 | Reads the state of the GPI7 pin |
gpi8 | Reads the state of the GPI8 pin |
gpi9 | Reads the state of the GPI9 pin |
gpi10 | Reads the state of the GPI10 pin |
gpio11 | Sets/reads the state of the GPIO11 pin |
gpio12 | Sets/reads the state of the GPIO12 pin |
adc0 | Reads data from the adc0 register and triggers a new conversion. Value is between 0 and 1023 decimal (0x3FFh). |
adc1 | Reads data from the adc1 register and triggers a new conversion. Value is between 0 and 1023 decimal (0x3FFh). |
adc2 | Reads data from the adc2 register and triggers a new conversion. Value is between 0 and 1023 decimal (0x3FFh). |
adc3 | Reads data from the adc3 register and triggers a new conversion. Value is between 0 and 1023 decimal (0x3FFh). |
The H5 radio must be reset by running
/usr/sbin/radio-reset-h5
(rather than using the standard mts-io method). This script disables all USB host ports while the radio is reset. If the script is not used, the radio will fail to reset and will not function until properly reset.
Examples using mts-io-sysfs script
Print value of LED1, then turn it on
$ mts-io-sysfs show led1 0 $ mts-io-sysfs store led1 1
Print Board Temperature
$ mts-io-sysfs show board-temperature 38
Set GPO3
$ mts-io-sysfs store gpo3 1
Read GPI6
$ mts-io-sysfs show gpi6 0
Examples using sysfs directly
Print value of LED1, then turn it on
$ cd /sys/devices/platform/mtcdp/ $ cat led1 0 $ echo 1 > led1
Print Board Temperature
$ cd /sys/devices/platform/mtcdp/ $ cat board-temperature 38
Set GPO2
$ cd /sys/devices/platform/mtcdp/ $ echo 1 > gpo2
Read ADC 2
$ cd /sys/devices/platform/mtcdp/ $ cat adc2 340