// SPDX-License-Identifier: GPL-2.0-only OR MIT // Copyright (C) 2025 J. Neuschäfer /dts-v1/; #include #include #include #include "meson8.dtsi" / { model = "Fernsehfee 3.0"; compatible = "tcu,fernsehfee3", "amlogic,meson8"; aliases { serial0 = &uart_AO; gpiochip0 = &gpio; gpiochip1 = &gpio_ao; i2c0 = &i2c_AO; i2c1 = &i2c_B; mmc0 = &sdhc; mmc1 = &sdio; }; chosen { stdout-path = "serial0:115200n8"; }; memory@0 { device_type = "memory"; reg = <0x0 0x40000000>; /* 1 GiB */ }; gpio-keys { compatible = "gpio-keys-polled"; poll-interval = <100>; power-button { label = "Power button"; linux,code = ; gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_LOW>; }; }; leds { compatible = "gpio-leds"; led-0 { /* * The power LED can be turned red, otherwise it is green. */ gpios = <&gpio_ao GPIO_TEST_N GPIO_ACTIVE_LOW>; function = LED_FUNCTION_POWER; color = ; }; }; vcc_5v: regulator-5v { /* 5V rail, always on as long as the system is running */ compatible = "regulator-fixed"; regulator-name = "5V"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; regulator-always-on; }; vcc_3v3: regulator-3v3 { /* Chipown AP2420 step-down converter */ compatible = "regulator-fixed"; regulator-name = "3.3V"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; vin-supply = <&vcc_5v>; }; wifi_3v3: regulator-wifi { compatible = "regulator-fixed"; regulator-name = "3.3V-WIFI"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; vin-supply = <&vcc_3v3>; gpio = <&gpio GPIOX_11 GPIO_ACTIVE_HIGH>; enable-active-high; }; }; &cpu0 { cpu-supply = <&vcck>; }; ðmac { status = "okay"; pinctrl-0 = <ð_pins>; pinctrl-names = "default"; phy-handle = <ð_phy0>; phy-mode = "rmii"; mdio { compatible = "snps,dwmac-mdio"; #address-cells = <1>; #size-cells = <0>; eth_phy0: ethernet-phy@0 { /* IC Plus IP101A (0x02430c54) */ reg = <0>; reset-assert-us = <10000>; reset-deassert-us = <10000>; reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>; }; }; }; &i2c_AO { status = "okay"; pinctrl-0 = <&i2c_ao_pins>; pinctrl-names = "default"; pmic@32 { compatible = "ricoh,rn5t618"; reg = <0x32>; system-power-controller; regulators { vcck: DCDC1 { regulator-name = "VCCK"; regulator-min-microvolt = <825000>; regulator-max-microvolt = <1150000>; regulator-boot-on; regulator-always-on; }; vddee: DCDC2 { /* the output is also used as VDDAO */ regulator-name = "VDD_EE"; regulator-min-microvolt = <950000>; regulator-max-microvolt = <1150000>; regulator-boot-on; regulator-always-on; }; DCDC3 { regulator-name = "VDD_DDR"; regulator-min-microvolt = <1500000>; regulator-max-microvolt = <1500000>; regulator-boot-on; regulator-always-on; }; LDO1 { regulator-name = "VDDIO_AO28"; regulator-min-microvolt = <2900000>; regulator-max-microvolt = <2900000>; regulator-boot-on; regulator-always-on; }; LDO2 { regulator-name = "VDDIO_AO18"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-boot-on; regulator-always-on; }; vcc1v8_usb: LDO3 { regulator-name = "VCC1V8_USB"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-boot-on; }; LDO4 { /* This one appears to be unused */ regulator-name = "VCC2V8"; regulator-min-microvolt = <2850000>; regulator-max-microvolt = <2850000>; }; LDO5 { regulator-name = "AVDD1V8"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-boot-on; regulator-always-on; }; LDORTC1 { regulator-name = "VDD_LDO"; regulator-min-microvolt = <2700000>; regulator-max-microvolt = <2700000>; regulator-boot-on; regulator-always-on; }; LDORTC2 { regulator-name = "RTC_0V9"; regulator-min-microvolt = <900000>; regulator-max-microvolt = <900000>; regulator-boot-on; regulator-always-on; }; }; }; eeprom@50 { /* Fairchild FM24C08A */ compatible = "atmel,24c08"; reg = <0x50>; pagesize = <16>; wp-gpios = <&gpio GPIOH_3 GPIO_ACTIVE_HIGH>; num-addresses = <4>; }; }; &i2c_B { status = "okay"; pinctrl-0 = <&i2c_b_pins>; pinctrl-names = "default"; /* TODO: SiI9293 HDMI receiver @ 0x39 */ }; &mali { mali-supply = <&vddee>; }; &sdhc { status = "okay"; pinctrl-0 = <&sdxc_c_pins>; pinctrl-names = "default"; /* eMMC */ bus-width = <8>; max-frequency = <100000000>; disable-wp; cap-mmc-highspeed; mmc-hs200-1_8v; no-sdio; vmmc-supply = <&vcc_3v3>; vqmmc-supply = <&vcc_3v3>; }; &sdio { status = "okay"; pinctrl-0 = <&sd_b_pins>; /* SD card */ slot@1 { compatible = "mmc-slot"; reg = <1>; status = "okay"; bus-width = <4>; cap-mmc-highspeed; cap-sd-highspeed; disable-wp; cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; vmmc-supply = <&vcc_3v3>; }; }; &uart_AO { status = "okay"; pinctrl-0 = <&uart_ao_a_pins>; pinctrl-names = "default"; }; &usb0 { status = "okay"; }; &usb0_phy { status = "okay"; phy-supply = <&vcc1v8_usb>; }; &usb1 { status = "okay"; dr_mode = "host"; #address-cells = <1>; #size-cells = <0>; wifi: wifi@1 { /* Realtek RTL8188 2.4GHz WiFi module */ compatible = "usbbda,179"; reg = <1>; vdd-supply = <&wifi_3v3>; }; }; &usb1_phy { status = "okay"; phy-supply = <&vcc1v8_usb>; }; &ir_receiver { status = "okay"; pinctrl-0 = <&ir_recv_pins>; pinctrl-names = "default"; };