GSOC hardware interface - mdubinko/gsoc-contrib GitHub Wiki
A good analysis of the GSOC/G90 head-to-body connection and protocol can be found here: https://github.com/zeroping/xiegu-g90-headprotocol/
Notes and observations for interacting with the GSOC onboard hardware. The devicetree is a good guide to much of this.
# cat /sys/bus/i2c/devices/i2c-0/name
mv64xxx_i2c adapter
# cat /sys/bus/i2c/devices/i2c-1/name
mv64xxx_i2c adapter
# cat /sys/bus/i2c/devices/i2c-2/name
mv64xxx_i2c adapter
# cat /sys/bus/i2c/devices/i2c-3/name
mv64xxx_i2c adapter
# cat /sys/bus/i2c/devices/i2c-4/name
sun4i_hdmi_i2c adapter
## Einstein A20 power management
# cat /sys/bus/i2c/devices/0-0034/name
axp209
## Keyscan a la https://www.ti.com/lit/ds/symlink/lm8323.pdf
# cat /sys/bus/i2c/devices/1-0042/name
lm8323
## Realtime clock
# cat /sys/bus/i2c/devices/1-0051/name
pcf8563
## Touchscreen
# cat /sys/bus/i2c/devices/2-005d/name
gt911
## Cirrus sound card
# cat /sys/bus/i2c/devices/3-0010/name
cs4271
## RF oscilator
# cat /sys/bus/i2c/devices/3-0060/name
si5351-msop
Front panel buttons
Interfaced via LRADC (Low rate Analog/Digital converter). Each button has a different-valued resistor so all buttons can be scanned (though only supporting one-pressed-at-a-time) through a single ADC channel.
Buttons: (linux,code is the keycode, and voltage is in microvolts)
button-191 {
label = "Volume Up";
linux,code = <0x73>;
channel = <0x00>;
voltage = <0x2eb2a>; /* 0.2V */
};
button-392 {
label = "Volume Down";
linux,code = <0x72>;
channel = <0x00>;
voltage = <0x5fdc4>; /* 0.4V */
};
button-601 {
label = "Menu";
linux,code = <0x8b>;
channel = <0x00>;
voltage = <0x92c3f>; /* 0.6V */
};
button-795 {
label = "Search";
linux,code = <0xd9>;
channel = <0x00>;
voltage = <0xc21d2>; /* 0.8V */
};
button-987 {
label = "Home";
linux,code = <0xac>;
channel = <0x00>;
voltage = <0xf10fb>; /* 1.0V */
};
button-1184 {
label = "Esc";
linux,code = <0x01>;
channel = <0x00>;
voltage = <0x1213a6>; /* 1.2V */
};
button-1398 {
label = "Enter";
linux,code = <0x1c>;
channel = <0x00>;
voltage = <0x155814>; /* 1.4V */
};
Si5351 Clock generator
Cirrus sound card
TODO