I've been hacking at this for a few days on Armbian_19.11.3_Orangepizero_bionic_current_5.3.9. I tried without luck to get fbtft_device to work, but looks like it's been deprecated in the most recent versions of the kernel. Only solution I found was to make a .dts myself. Try these steps out:
> vim myili9486.dts # See file contents below
> armbian-add-overlay myili9486.dts # N.B. I had to modify this file to get it to work properly
- comment out line 45... i.e.
if [[ $BRANCH != next && $BRANCH != dev ]]; then
echo >&2 "Overlays are supported only on mainline kernel based images"
# exit -1
fi
> reboot
/dts-v1/;
/plugin/;
/ {
compatible = "allwinner,sun8i-h3";
fragment@0 {
target = <&spi1>;
__overlay__ {
status = "okay";
spidev@0{
status = "disabled";
};
spidev@1{
status = "disabled";
};
};
};
fragment@1 {
target = <&pio>;
__overlay__ {
ili9486_pins: ili9486_pins {
allwinner,pins = "PA2", "PA18";
allwinner,function = "gpio_in";
};
};
};
fragment@2 {
target = <&spi1>;
__overlay__ {
/* needed to avoid dtc warning */
#address-cells = <1>;
#size-cells = <0>;
ili9486: ili9486@0{
compatible = "ilitek,ili9486";
reg = <0>;
pinctrl-names = "default";
pinctrl-0 = <&ili9486_pins>;
spi-max-frequency = <16000000>;
txbuflen = <32768>;
rotate = <90>;
bgr = <0>;
fps = <30>;
buswidth = <8>;
regwidth = <16>;
reset-gpios = <&pio 0 2 1>;
dc-gpios = <&pio 0 18 0>;
debug = <0>;
init = <0x10000b0 0x00
0x1000011
0x20000ff
0x100003a 0x55
0x1000036 0x28
0x10000c2 0x44
0x10000c5 0x00 0x00 0x00 0x00
0x10000e0 0x0f 0x1f 0x1c 0x0c 0x0f 0x08 0x48 0x98 0x37 0x0a 0x13 0x04 0x11 0x0d 0x00
0x10000e1 0x0f 0x32 0x2e 0x0b 0x0d 0x05 0x47 0x75 0x37 0x06 0x10 0x03 0x24 0x20 0x00
0x10000e2 0x0f 0x32 0x2e 0x0b 0x0d 0x05 0x47 0x75 0x37 0x06 0x10 0x03 0x24 0x20 0x00
0x1000036 0x28
0x1000011
0x1000029>;
};
};
};
};
Once I rebooted the screen came up okay with a login prompt, I've based the DTS on the waveshare dts here: https://github.com/swkim01/waveshare-dtoverlays/blob/master/waveshare35a.dts
I haven't tried setting up the touch screen yet!