// SPDX-License-Identifier: (GPL-2.0+ OR MIT) /dts-v1/; #include #include "sun8i-v3s.dtsi" #include "sunxi-common-regulators.dtsi" / { model = "Anbernic RG Nano"; compatible = "anbernic,rg-nano", "allwinner,sun8i-v3s"; aliases { rtc0 = &pcf8563; rtc1 = &rtc; serial0 = &uart0; }; backlight: backlight { compatible = "pwm-backlight"; brightness-levels = <0 1 2 3 8 14 21 32 46 60 80 100>; default-brightness-level = <11>; power-supply = <®_vcc5v0>; pwms = <&pwm 0 40000 1>; }; chosen { stdout-path = "serial0:115200n8"; }; gpio_keys: gpio-keys { compatible = "gpio-keys"; button-a { gpios = <&gpio_expander 12 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; label = "BTN-A"; linux,code = ; }; button-b { gpios = <&gpio_expander 14 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; label = "BTN-B"; linux,code = ; }; button-down { gpios = <&gpio_expander 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; label = "DPAD-DOWN"; linux,code = ; }; button-left { gpios = <&gpio_expander 4 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; label = "DPAD-LEFT"; linux,code = ; }; button-right { gpios = <&gpio_expander 0 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; label = "DPAD-RIGHT"; linux,code = ; }; button-se { gpios = <&gpio_expander 7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; label = "BTN-SELECT"; linux,code = ; }; button-st { gpios = <&gpio_expander 6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; label = "BTN-START"; linux,code = ; }; button-tl { gpios = <&gpio_expander 2 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; label = "BTN-L"; linux,code = ; }; button-tr { gpios = <&gpio_expander 15 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; label = "BTN-R"; linux,code = ; }; button-up { gpios = <&gpio_expander 3 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; label = "DPAD-UP"; linux,code = ; }; button-x { gpios = <&gpio_expander 11 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; label = "BTN-X"; linux,code = ; }; button-y { gpios = <&gpio_expander 13 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; label = "BTN-Y"; linux,code = ; }; }; }; &codec { allwinner,audio-routing = "Speaker", "HP", "MIC1", "Mic", "Mic", "HBIAS"; allwinner,pa-gpios = <&pio 5 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PF6 */ status = "okay"; }; &ehci { status = "okay"; }; &i2c0 { status = "okay"; gpio_expander: gpio@20 { compatible = "nxp,pcal6416"; reg = <0x20>; gpio-controller; #gpio-cells = <2>; #interrupt-cells = <2>; interrupt-controller; interrupt-parent = <&pio>; interrupts = <1 3 IRQ_TYPE_EDGE_BOTH>; /* PB3/EINT3 */ vcc-supply = <®_vcc3v3>; }; axp209: pmic@34 { reg = <0x34>; interrupt-parent = <&pio>; interrupts = <1 5 IRQ_TYPE_EDGE_FALLING>; /* PB5/EINT5 */ }; pcf8563: rtc@51 { compatible = "nxp,pcf8563"; reg = <0x51>; }; }; #include "axp209.dtsi" &battery_power_supply { status = "okay"; }; &mmc0 { broken-cd; bus-width = <4>; disable-wp; vmmc-supply = <®_vcc3v3>; vqmmc-supply = <®_vcc3v3>; status = "okay"; }; &ohci { status = "okay"; }; &pio { vcc-pb-supply = <®_vcc3v3>; vcc-pc-supply = <®_vcc3v3>; vcc-pf-supply = <®_vcc3v3>; vcc-pg-supply = <®_vcc3v3>; spi0_no_miso_pins: spi0-no-miso-pins { pins = "PC1", "PC2", "PC3"; function = "spi0"; }; }; &pwm { pinctrl-0 = <&pwm0_pin>; pinctrl-names = "default"; status = "okay"; }; /* DCDC2 wired into vdd-cpu, vdd-sys, and vdd-ephy. */ ®_dcdc2 { regulator-always-on; regulator-max-microvolt = <1250000>; regulator-min-microvolt = <1250000>; regulator-name = "vdd-cpu"; }; /* DCDC3 wired into every 3.3v input that isn't the RTC. */ ®_dcdc3 { regulator-always-on; regulator-max-microvolt = <3300000>; regulator-min-microvolt = <3300000>; regulator-name = "vcc-io"; }; /* LDO1 wired into RTC, voltage is hard-wired at 3.3v. */ ®_ldo1 { regulator-always-on; regulator-name = "vcc-rtc"; }; /* LDO2 wired into VCC-PLL and audio codec. */ ®_ldo2 { regulator-always-on; regulator-max-microvolt = <3000000>; regulator-min-microvolt = <3000000>; regulator-name = "vcc-pll"; }; /* LDO3, LDO4, and LDO5 unused. */ ®_ldo3 { status = "disabled"; }; ®_ldo4 { status = "disabled"; }; /* RTC uses internal oscillator */ &rtc { /delete-property/ clocks; }; &spi0 { pinctrl-0 = <&spi0_no_miso_pins>; pinctrl-names = "default"; status = "okay"; display@0 { compatible = "saef,sftc154b", "panel-mipi-dbi-spi"; reg = <0>; backlight = <&backlight>; dc-gpios = <&pio 2 0 GPIO_ACTIVE_HIGH>; /* PC0 */ reset-gpios = <&pio 1 2 GPIO_ACTIVE_HIGH>; /* PB2 */ spi-max-frequency = <100000000>; height-mm = <39>; width-mm = <39>; /* Set hb-porch to compensate for non-visible area */ panel-timing { hactive = <240>; vactive = <240>; hback-porch = <80>; vback-porch = <0>; clock-frequency = <0>; hfront-porch = <0>; hsync-len = <0>; vfront-porch = <0>; vsync-len = <0>; }; }; }; &uart0 { pinctrl-0 = <&uart0_pb_pins>; pinctrl-names = "default"; status = "okay"; }; &usb_otg { dr_mode = "otg"; status = "okay"; }; &usb_power_supply { status = "okay"; }; &usbphy { usb0_id_det-gpios = <&pio 6 5 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PG5 */ status = "okay"; };