====== Libre Computing AML-S905X-CC ====== ===== Resources ===== * Product page: https://libre.computer/products/aml-s905x-cc/ * Pin definitions: https://docs.google.com/spreadsheets/d/1U3z0Gb8HUEfCIMkvqzmhMpJfzRqjPXq7mFLC-hvbKlE/edit#gid=0 * Schematic: {{ ::s905x_6l_170707_v1_0.pdf |}} * S905X Datasheet: {{ ::s905x_datasheet_v0.3-20170314-wesion.pdf |}} (There is almost certainly a newer version, but this is the one I see the most floating around on the web) ===== Notes ===== ==== Enable UART-A ==== The UART on the 40pin GPIO header (pins 8 and 10) is not enabled by default. It must be enabled by enabling a device tree overlay that is included with [[https://github.com/libre-computer-project/libretech-wiring-tool|libretech-wiring-tool]]. - Clone, build, and install the libretech-wiring-tool - Enable the DTO for UART-A ''sudo ldto enable uart-a'' - Check dmesg ''c11084c0.serial: ttyAML6 at MMIO 0xc11084c0 (irq = 49, base_baud = 1500000) is a meson_uart'' - Test with ''minicom'' or whatever - To persist after reboot, merge: ''sudo ldto merge uart-a'' Somewhat confusingly, both ''uart-a'' and ''uarta'' exist as device tree overlays. ''uarta'' maps to ''uart-a-rts-cts'' which uses pins 16 and 18 for hardware flow control. ==== Enable i2c and the DS3231 ==== Specifically, SDA and SCL pins on GPIOs 3 & 4. - Clone, build, and install the libretech-wiring-tool as above - Install i2c tools: ''sudo apt install i2c-tools'' - Enable the i2c-ao DTO: ''sudo ldto enable i2c-ao'' - Check for your devices: ''i2cdetect -y 1'' (DS3231 should be at 0x68) - Enable for DS3231 on i2c-ao: ''sudo ldto enable i2c-ao-ds3231'' - Check dmesg: [ 4024.485534] rtc-ds1307 1-0068: SET TIME! [ 4024.488196] rtc-ds1307 1-0068: registered as rtc0 [ 4024.489394] rtc-ds1307 1-0068: setting system clock to 2000-01-01T01:07:25 UTC (946688845) - Merge to save: ''sudo ldto merge i2c-ao ; sudo ldto merge i2c-ao-ds3231''