Some R36S boards have SARADC ADC values in the R33S range (140-190),
causing a_boot.ini to load the R33S DTB — which has no analog sticks,
no THUMBL/THUMBR buttons, and no FN (BTN_MODE).
Fix: add GPIO2_PA2 (THUMBL) check in a_boot.ini when hwrev=r33s.
R36S has a pull-up on this pin (L3 button), R33S does not.
Audio: R36S original has an external speaker amplifier on GPIO3_PC4.
The mainline rk817_codec.c does not support the BSP-only spk-ctl-gpios
property. Fix: add simple-audio-amplifier node to the R36S DTS with
aux-devs routing through the sound card.
Also set CONFIG_SND_SOC_SIMPLE_AMPLIFIER=y (was =m).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Major architecture change: move from BSP kernel 6.6 with pre-merged panel
DTBs to mainline kernel 6.12.61 LTS with separated board DTBs + panel
overlays.
- Board DTB = hardware profile (GPIOs, PMIC, joypad, audio). 16 boards.
Auto-selected by U-Boot via SARADC ADC reading (hwrev).
- Panel overlay = display init sequence. 20 panels. Applied at boot time
via boot.ini fdt apply.
- Two image variants: original (a_boot.ini) and clone (b_boot.ini)
- Kernel cross-compiles from x86 host (no ARM chroot needed)
- Initramfs boot splash with SVG rendering at 0.7s
- Out-of-tree joypad driver (singleadc-joypad) for clone boards
- Panel generic-dsi driver with archr,generic-dsi compatible
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>