// SPDX-License-Identifier: (GPL-2.0 OR MIT) /* * Copyright (C) 2022 SmartRG Inc. * Author: Chad Monroe */ /dts-v1/; #include #include #include #include "mt7986a.dtsi" / { aliases { serial0 = &uart0; label-mac-device = &gmac1; led-boot = &led_status_green; led-failsafe = &led_status_red; led-running = &led_status_white; led-upgrade = &led_status_blue; }; chosen { stdout-path = "serial0:115200n8"; bootargs = "root=/dev/mmcblk0p5"; }; memory@40000000 { device_type = "memory"; reg = <0 0x40000000 0 0x40000000>; }; reserved-memory { #address-cells = <2>; #size-cells = <2>; ranges; /delete-node/ramoops@42ff0000; bootdata_reserved: bootdata@45000000 { no-map; reg = <0x0 0x45000000 0x0 0x00001000>; }; ramoops_reserved: ramoops@45001000 { no-map; compatible = "ramoops"; reg = <0x0 0x45001000 0x0 0x00140000>; ftrace-size = <0x20000>; record-size = <0x20000>; console-size = <0x20000>; pmsg-size = <0x80000>; }; }; bootdata { compatible = "bootdata"; memory-region = <&bootdata_reserved>; }; reg_1p8v: regulator-1p8v { compatible = "regulator-fixed"; regulator-name = "fixed-1.8V"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-boot-on; regulator-always-on; }; reg_3p3v: regulator-3p3v { compatible = "regulator-fixed"; regulator-name = "fixed-3.3V"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-boot-on; regulator-always-on; }; reg_5v: regulator-5v { compatible = "regulator-fixed"; regulator-name = "fixed-5V"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; regulator-boot-on; regulator-always-on; }; fan: pwm-fan { compatible = "pwm-fan"; #cooling-cells = <2>; pwms = <&pwm 1 40000 0>; /** * set fan speed * * 0 = off * 51 = 20% duty cycle (minimum supported) * 61 = 24% duty cycle (2020 RPM) * 77 = 30% duty cycle (3000 RPM) * 102 = 40% duty cycle (3600 RPM) * 255 = 100% duty cycle */ cooling-levels = <51 61 77 102>; interrupt-parent = <&pio>; interrupts = <25 IRQ_TYPE_EDGE_FALLING>; pulses-per-revolution = <2>; status = "okay"; }; keys { compatible = "gpio-keys"; pinctrl-names = "default"; pinctrl-0 = <&button_pins>; button-reset { label = "reset"; linux,code = ; gpios = <&pio 17 GPIO_ACTIVE_LOW>; }; }; }; &cpu_thermal { cooling-maps { cpu-active-high { /* active: set fan to cooling level 3 */ cooling-device = <&fan 3 3>; trip = <&cpu_trip_active_high>; }; cpu-active-medium { /* active: set fan to cooling level 2 */ cooling-device = <&fan 2 2>; trip = <&cpu_trip_active_medium>; }; cpu-active-low { /* active: set fan to cooling level 1 */ cooling-device = <&fan 1 1>; trip = <&cpu_trip_active_low>; }; cpu-active-silent { /* active: set fan to cooling level 0 */ cooling-device = <&fan 0 0>; trip = <&cpu_trip_active_silent>; }; }; trips { cpu_trip_active_high: active-high { temperature = <110000>; hysteresis = <2000>; type = "active"; }; cpu_trip_active_medium: active-medium { temperature = <80000>; hysteresis = <2000>; type = "active"; }; cpu_trip_active_low: active-low { temperature = <60000>; hysteresis = <2000>; type = "active"; }; cpu_trip_active_silent: active-silent { temperature = <40000>; hysteresis = <2000>; type = "active"; }; }; }; &crypto { status = "okay"; }; ð { status = "okay"; gmac0: mac@0 { compatible = "mediatek,eth-mac"; reg = <0>; nvmem-cells = <&macaddr 1>; nvmem-cell-names = "mac-address"; phy-mode = "2500base-x"; }; gmac1: mac@1 { compatible = "mediatek,eth-mac"; reg = <1>; label = "wan"; nvmem-cells = <&macaddr 0>; nvmem-cell-names = "mac-address"; phy-mode = "2500base-x"; }; mdio: mdio-bus { #address-cells = <1>; #size-cells = <0>; }; }; &mdio { #address-cells = <1>; #size-cells = <0>; reset-gpios = <&pio 6 GPIO_ACTIVE_LOW>; reset-delay-us = <1500000>; reset-post-delay-us = <1000000>; phy5: ethernet-phy@5 { /* GPY211 */ compatible = "maxlinear,gpy211", "ethernet-phy-ieee802.3-c45"; reg = <5>; mxl,led-drive-vdd; mxl,led-config = <0x30 0x40 0x80 0x0>; }; phy6: ethernet-phy@6 { /* GPY211 */ compatible = "maxlinear,gpy211", "ethernet-phy-ieee802.3-c45"; reg = <6>; mxl,led-drive-vdd; mxl,led-config = <0x30 0x40 0x80 0x0>; }; }; &crypto { status = "okay"; }; &mmc0 { pinctrl-names = "default", "state_uhs"; pinctrl-0 = <&mmc0_pins_default>; pinctrl-1 = <&mmc0_pins_uhs>; bus-width = <8>; max-frequency = <200000000>; cap-mmc-highspeed; mmc-hs200-1_8v; mmc-hs400-1_8v; hs400-ds-delay = <0x14014>; vmmc-supply = <®_3p3v>; vqmmc-supply = <®_1p8v>; non-removable; no-sd; no-sdio; status = "okay"; card@0 { compatible = "mmc-card"; reg = <0>; block { compatible = "block-device"; partitions { block-partition-factory { partname = "factory"; nvmem-layout { compatible = "fixed-layout"; #address-cells = <1>; #size-cells = <1>; eeprom_factory_0: eeprom@0 { reg = <0x0 0x1000>; }; eeprom_factory_a0000: eeprom@a0000 { reg = <0xa0000 0x1000>; }; }; }; block-partition-mfginfo { partname = "mfginfo"; nvmem-layout { compatible = "adtran,mfginfo"; macaddr: mfg-mac { #nvmem-cell-cells = <1>; }; }; }; }; }; }; }; &pcie { pinctrl-names = "default"; pinctrl-0 = <&pcie_pins>; status = "disabled"; slot0: pcie@0,0 { reg = <0x0000 0 0 0 0>; radio0: mt7915@0,0 { reg = <0x0000 0 0 0 0>; nvmem-cells = <&eeprom_factory_a0000>, <&macaddr 4>; nvmem-cell-names = "eeprom", "mac-address"; }; }; }; &pcie_phy { status = "disabled"; }; &wifi { nvmem-cells = <&eeprom_factory_0>; nvmem-cell-names = "eeprom"; pinctrl-names = "default"; pinctrl-0 = <&wf_2g_5g_pins>; #address-cells = <1>; #size-cells = <0>; status = "okay"; band@0 { /* 2.4 GHz */ reg = <0>; nvmem-cells = <&macaddr 2>; nvmem-cell-names = "mac-address"; }; band@1 { /* lower 5 GHz */ reg = <1>; nvmem-cells = <&macaddr 3>; nvmem-cell-names = "mac-address"; }; }; &pio { mmc0_pins_default: mmc0-pins { mux { function = "emmc"; groups = "emmc_51"; }; conf-cmd-dat { pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2", "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5", "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD"; input-enable; drive-strength = <4>; mediatek,pull-up-adv = <1>; /* pull-up 10K */ }; conf-clk { pins = "EMMC_CK"; drive-strength = <6>; mediatek,pull-down-adv = <2>; /* pull-down 50K */ }; conf-ds { pins = "EMMC_DSL"; mediatek,pull-down-adv = <2>; /* pull-down 50K */ }; conf-rst { pins = "EMMC_RSTB"; drive-strength = <4>; mediatek,pull-up-adv = <1>; /* pull-up 10K */ }; }; mmc0_pins_uhs: mmc0-uhs-pins { mux { function = "emmc"; groups = "emmc_51"; }; conf-cmd-dat { pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2", "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5", "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD"; input-enable; drive-strength = <4>; mediatek,pull-up-adv = <1>; /* pull-up 10K */ }; conf-clk { pins = "EMMC_CK"; drive-strength = <6>; mediatek,pull-down-adv = <2>; /* pull-down 50K */ }; conf-ds { pins = "EMMC_DSL"; mediatek,pull-down-adv = <2>; /* pull-down 50K */ }; conf-rst { pins = "EMMC_RSTB"; drive-strength = <4>; mediatek,pull-up-adv = <1>; /* pull-up 10K */ }; }; pcie_pins: pcie-pins { mux { function = "pcie"; groups = "pcie_clk", "pcie_pereset"; }; }; button_pins: button-pins { pins = "GPIO_12"; mediatek,pull-down-adv = <0>; /* bias-disable */ }; uart1_pins: uart1-pins { mux { function = "uart"; groups = "uart1_2_rx_tx", "uart1_2_cts_rts"; }; }; i2c0_pins: i2c0-pins { mux { function = "i2c"; groups = "i2c"; }; }; pwm_pins: pwm-pins { mux { function = "pwm"; groups = "pwm0", "pwm1_0"; }; }; wf_2g_5g_pins: wf-2g-5g-pins { mux { function = "wifi"; groups = "wf_2g", "wf_5g"; }; conf { pins = "WF0_HB1", "WF0_HB2", "WF0_HB3", "WF0_HB4", "WF0_HB0", "WF0_HB0_B", "WF0_HB5", "WF0_HB6", "WF0_HB7", "WF0_HB8", "WF0_HB9", "WF0_HB10", "WF0_TOP_CLK", "WF0_TOP_DATA", "WF1_HB1", "WF1_HB2", "WF1_HB3", "WF1_HB4", "WF1_HB0", "WF1_HB5", "WF1_HB6", "WF1_HB7", "WF1_HB8", "WF1_TOP_CLK", "WF1_TOP_DATA"; drive-strength = <4>; }; }; mux_sel: mux-sel-hog { gpio-hog; gpios = <23 GPIO_ACTIVE_LOW>; line-name = "mux-sel"; output-high; }; mux_oe: mux-oe-hog { gpio-hog; gpios = <24 GPIO_ACTIVE_LOW>; line-name = "mux-oe"; output-high; }; }; &ssusb { vusb33-supply = <®_3p3v>; vbus-supply = <®_5v>; status = "okay"; }; &trng { status = "okay"; }; &uart0 { status = "okay"; }; &uart1 { pinctrl-names = "default"; pinctrl-0 = <&uart1_pins>; status = "okay"; /* DA14531MOD Bluetooth */ bluetooth { compatible = "renesas,DA14531"; reset-gpios = <&pio 27 GPIO_ACTIVE_LOW>; }; }; &usb_phy { status = "okay"; }; &i2c0 { pinctrl-names = "default"; pinctrl-0 = <&i2c0_pins>; status = "okay"; system-leds { compatible = "srg,sysled"; reg = <0x30>; led_status_red: led@1 { color = ; function = LED_FUNCTION_STATUS; reg = <1>; }; led_status_green: led@2 { color = ; function = LED_FUNCTION_STATUS; reg = <2>; }; led_status_blue: led@3 { color = ; function = LED_FUNCTION_STATUS; reg = <3>; }; led_status_white: led@4 { color = ; function = LED_FUNCTION_STATUS; reg = <4>; }; }; }; &pwm { pinctrl-names = "default"; pinctrl-0 = <&pwm_pins>; status = "okay"; }; &watchdog { interrupts = ; status = "okay"; };