1*6ea2a061SHan Gao// SPDX-License-Identifier: GPL-2.0 OR MIT 2*6ea2a061SHan Gao/* 3*6ea2a061SHan Gao * Copyright (C) 2025 Sophgo Technology Inc. All rights reserved. 4*6ea2a061SHan Gao */ 5*6ea2a061SHan Gao 6*6ea2a061SHan Gao#include "sg2042.dtsi" 7*6ea2a061SHan Gao 8*6ea2a061SHan Gao#include <dt-bindings/gpio/gpio.h> 9*6ea2a061SHan Gao#include <dt-bindings/input/input.h> 10*6ea2a061SHan Gao 11*6ea2a061SHan Gao/ { 12*6ea2a061SHan Gao model = "Sophgo SG2042 EVB V2.0"; 13*6ea2a061SHan Gao compatible = "sophgo,sg2042-evb-v2", "sophgo,sg2042"; 14*6ea2a061SHan Gao 15*6ea2a061SHan Gao chosen { 16*6ea2a061SHan Gao stdout-path = "serial0"; 17*6ea2a061SHan Gao }; 18*6ea2a061SHan Gao 19*6ea2a061SHan Gao pwmfan: pwm-fan { 20*6ea2a061SHan Gao compatible = "pwm-fan"; 21*6ea2a061SHan Gao cooling-levels = <103 128 179 230 255>; 22*6ea2a061SHan Gao pwms = <&pwm 0 40000 0>; 23*6ea2a061SHan Gao #cooling-cells = <2>; 24*6ea2a061SHan Gao }; 25*6ea2a061SHan Gao 26*6ea2a061SHan Gao thermal-zones { 27*6ea2a061SHan Gao soc-thermal { 28*6ea2a061SHan Gao polling-delay-passive = <1000>; 29*6ea2a061SHan Gao polling-delay = <1000>; 30*6ea2a061SHan Gao thermal-sensors = <&mcu 0>; 31*6ea2a061SHan Gao 32*6ea2a061SHan Gao trips { 33*6ea2a061SHan Gao soc_active1: soc-active1 { 34*6ea2a061SHan Gao temperature = <30000>; 35*6ea2a061SHan Gao hysteresis = <8000>; 36*6ea2a061SHan Gao type = "active"; 37*6ea2a061SHan Gao }; 38*6ea2a061SHan Gao 39*6ea2a061SHan Gao soc_active2: soc-active2 { 40*6ea2a061SHan Gao temperature = <58000>; 41*6ea2a061SHan Gao hysteresis = <12000>; 42*6ea2a061SHan Gao type = "active"; 43*6ea2a061SHan Gao }; 44*6ea2a061SHan Gao 45*6ea2a061SHan Gao soc_active3: soc-active3 { 46*6ea2a061SHan Gao temperature = <70000>; 47*6ea2a061SHan Gao hysteresis = <10000>; 48*6ea2a061SHan Gao type = "active"; 49*6ea2a061SHan Gao }; 50*6ea2a061SHan Gao 51*6ea2a061SHan Gao soc_hot: soc-hot { 52*6ea2a061SHan Gao temperature = <80000>; 53*6ea2a061SHan Gao hysteresis = <5000>; 54*6ea2a061SHan Gao type = "hot"; 55*6ea2a061SHan Gao }; 56*6ea2a061SHan Gao }; 57*6ea2a061SHan Gao 58*6ea2a061SHan Gao cooling-maps { 59*6ea2a061SHan Gao map0 { 60*6ea2a061SHan Gao trip = <&soc_active1>; 61*6ea2a061SHan Gao cooling-device = <&pwmfan 0 1>; 62*6ea2a061SHan Gao }; 63*6ea2a061SHan Gao 64*6ea2a061SHan Gao map1 { 65*6ea2a061SHan Gao trip = <&soc_active2>; 66*6ea2a061SHan Gao cooling-device = <&pwmfan 1 2>; 67*6ea2a061SHan Gao }; 68*6ea2a061SHan Gao 69*6ea2a061SHan Gao map2 { 70*6ea2a061SHan Gao trip = <&soc_active3>; 71*6ea2a061SHan Gao cooling-device = <&pwmfan 2 3>; 72*6ea2a061SHan Gao }; 73*6ea2a061SHan Gao 74*6ea2a061SHan Gao map3 { 75*6ea2a061SHan Gao trip = <&soc_hot>; 76*6ea2a061SHan Gao cooling-device = <&pwmfan 3 4>; 77*6ea2a061SHan Gao }; 78*6ea2a061SHan Gao }; 79*6ea2a061SHan Gao }; 80*6ea2a061SHan Gao 81*6ea2a061SHan Gao board-thermal { 82*6ea2a061SHan Gao polling-delay-passive = <1000>; 83*6ea2a061SHan Gao polling-delay = <1000>; 84*6ea2a061SHan Gao thermal-sensors = <&mcu 1>; 85*6ea2a061SHan Gao 86*6ea2a061SHan Gao trips { 87*6ea2a061SHan Gao board_active: board-active { 88*6ea2a061SHan Gao temperature = <75000>; 89*6ea2a061SHan Gao hysteresis = <8000>; 90*6ea2a061SHan Gao type = "active"; 91*6ea2a061SHan Gao }; 92*6ea2a061SHan Gao }; 93*6ea2a061SHan Gao 94*6ea2a061SHan Gao cooling-maps { 95*6ea2a061SHan Gao map4 { 96*6ea2a061SHan Gao trip = <&board_active>; 97*6ea2a061SHan Gao cooling-device = <&pwmfan 3 4>; 98*6ea2a061SHan Gao }; 99*6ea2a061SHan Gao }; 100*6ea2a061SHan Gao }; 101*6ea2a061SHan Gao }; 102*6ea2a061SHan Gao}; 103*6ea2a061SHan Gao 104*6ea2a061SHan Gao&cgi_main { 105*6ea2a061SHan Gao clock-frequency = <25000000>; 106*6ea2a061SHan Gao}; 107*6ea2a061SHan Gao 108*6ea2a061SHan Gao&cgi_dpll0 { 109*6ea2a061SHan Gao clock-frequency = <25000000>; 110*6ea2a061SHan Gao}; 111*6ea2a061SHan Gao 112*6ea2a061SHan Gao&cgi_dpll1 { 113*6ea2a061SHan Gao clock-frequency = <25000000>; 114*6ea2a061SHan Gao}; 115*6ea2a061SHan Gao 116*6ea2a061SHan Gao&emmc { 117*6ea2a061SHan Gao pinctrl-0 = <&emmc_cfg>; 118*6ea2a061SHan Gao pinctrl-names = "default"; 119*6ea2a061SHan Gao bus-width = <4>; 120*6ea2a061SHan Gao no-sdio; 121*6ea2a061SHan Gao no-sd; 122*6ea2a061SHan Gao non-removable; 123*6ea2a061SHan Gao wp-inverted; 124*6ea2a061SHan Gao status = "okay"; 125*6ea2a061SHan Gao}; 126*6ea2a061SHan Gao 127*6ea2a061SHan Gao&i2c1 { 128*6ea2a061SHan Gao pinctrl-0 = <&i2c1_cfg>; 129*6ea2a061SHan Gao pinctrl-names = "default"; 130*6ea2a061SHan Gao status = "okay"; 131*6ea2a061SHan Gao 132*6ea2a061SHan Gao mcu: syscon@17 { 133*6ea2a061SHan Gao compatible = "sophgo,sg2042-hwmon-mcu"; 134*6ea2a061SHan Gao reg = <0x17>; 135*6ea2a061SHan Gao #thermal-sensor-cells = <1>; 136*6ea2a061SHan Gao }; 137*6ea2a061SHan Gao}; 138*6ea2a061SHan Gao 139*6ea2a061SHan Gao&gmac0 { 140*6ea2a061SHan Gao phy-handle = <&phy0>; 141*6ea2a061SHan Gao phy-mode = "rgmii-id"; 142*6ea2a061SHan Gao status = "okay"; 143*6ea2a061SHan Gao 144*6ea2a061SHan Gao mdio { 145*6ea2a061SHan Gao phy0: phy@0 { 146*6ea2a061SHan Gao compatible = "ethernet-phy-ieee802.3-c22"; 147*6ea2a061SHan Gao reg = <0>; 148*6ea2a061SHan Gao reset-gpios = <&port0a 27 GPIO_ACTIVE_LOW>; 149*6ea2a061SHan Gao reset-assert-us = <100000>; 150*6ea2a061SHan Gao reset-deassert-us = <100000>; 151*6ea2a061SHan Gao }; 152*6ea2a061SHan Gao }; 153*6ea2a061SHan Gao}; 154*6ea2a061SHan Gao 155*6ea2a061SHan Gao&pinctrl { 156*6ea2a061SHan Gao emmc_cfg: sdhci-emmc-cfg { 157*6ea2a061SHan Gao sdhci-emmc-wp-pins { 158*6ea2a061SHan Gao pinmux = <PINMUX(PIN_EMMC_WP, 0)>; 159*6ea2a061SHan Gao bias-disable; 160*6ea2a061SHan Gao drive-strength-microamp = <26800>; 161*6ea2a061SHan Gao input-schmitt-disable; 162*6ea2a061SHan Gao }; 163*6ea2a061SHan Gao 164*6ea2a061SHan Gao sdhci-emmc-cd-pins { 165*6ea2a061SHan Gao pinmux = <PINMUX(PIN_EMMC_CD, 0)>; 166*6ea2a061SHan Gao bias-pull-up; 167*6ea2a061SHan Gao drive-strength-microamp = <26800>; 168*6ea2a061SHan Gao input-schmitt-enable; 169*6ea2a061SHan Gao }; 170*6ea2a061SHan Gao 171*6ea2a061SHan Gao sdhci-emmc-rst-pwr-pins { 172*6ea2a061SHan Gao pinmux = <PINMUX(PIN_EMMC_RST, 0)>, 173*6ea2a061SHan Gao <PINMUX(PIN_EMMC_PWR_EN, 0)>; 174*6ea2a061SHan Gao bias-disable; 175*6ea2a061SHan Gao drive-strength-microamp = <26800>; 176*6ea2a061SHan Gao input-schmitt-disable; 177*6ea2a061SHan Gao }; 178*6ea2a061SHan Gao }; 179*6ea2a061SHan Gao 180*6ea2a061SHan Gao i2c1_cfg: i2c1-cfg { 181*6ea2a061SHan Gao i2c1-pins { 182*6ea2a061SHan Gao pinmux = <PINMUX(PIN_IIC1_SDA, 0)>, 183*6ea2a061SHan Gao <PINMUX(PIN_IIC1_SCL, 0)>; 184*6ea2a061SHan Gao bias-pull-up; 185*6ea2a061SHan Gao drive-strength-microamp = <26800>; 186*6ea2a061SHan Gao input-schmitt-enable; 187*6ea2a061SHan Gao }; 188*6ea2a061SHan Gao }; 189*6ea2a061SHan Gao 190*6ea2a061SHan Gao sd_cfg: sdhci-sd-cfg { 191*6ea2a061SHan Gao sdhci-sd-cd-wp-pins { 192*6ea2a061SHan Gao pinmux = <PINMUX(PIN_SDIO_CD, 0)>, 193*6ea2a061SHan Gao <PINMUX(PIN_SDIO_WP, 0)>; 194*6ea2a061SHan Gao bias-pull-up; 195*6ea2a061SHan Gao drive-strength-microamp = <26800>; 196*6ea2a061SHan Gao input-schmitt-enable; 197*6ea2a061SHan Gao }; 198*6ea2a061SHan Gao 199*6ea2a061SHan Gao sdhci-sd-rst-pwr-pins { 200*6ea2a061SHan Gao pinmux = <PINMUX(PIN_SDIO_RST, 0)>, 201*6ea2a061SHan Gao <PINMUX(PIN_SDIO_PWR_EN, 0)>; 202*6ea2a061SHan Gao bias-disable; 203*6ea2a061SHan Gao drive-strength-microamp = <26800>; 204*6ea2a061SHan Gao input-schmitt-disable; 205*6ea2a061SHan Gao }; 206*6ea2a061SHan Gao }; 207*6ea2a061SHan Gao 208*6ea2a061SHan Gao uart0_cfg: uart0-cfg { 209*6ea2a061SHan Gao uart0-rx-pins { 210*6ea2a061SHan Gao pinmux = <PINMUX(PIN_UART0_TX, 0)>, 211*6ea2a061SHan Gao <PINMUX(PIN_UART0_RX, 0)>; 212*6ea2a061SHan Gao bias-pull-up; 213*6ea2a061SHan Gao drive-strength-microamp = <26800>; 214*6ea2a061SHan Gao input-schmitt-enable; 215*6ea2a061SHan Gao }; 216*6ea2a061SHan Gao }; 217*6ea2a061SHan Gao}; 218*6ea2a061SHan Gao 219*6ea2a061SHan Gao&sd { 220*6ea2a061SHan Gao pinctrl-0 = <&sd_cfg>; 221*6ea2a061SHan Gao pinctrl-names = "default"; 222*6ea2a061SHan Gao bus-width = <4>; 223*6ea2a061SHan Gao no-sdio; 224*6ea2a061SHan Gao no-mmc; 225*6ea2a061SHan Gao wp-inverted; 226*6ea2a061SHan Gao status = "okay"; 227*6ea2a061SHan Gao}; 228*6ea2a061SHan Gao 229*6ea2a061SHan Gao&uart0 { 230*6ea2a061SHan Gao pinctrl-0 = <&uart0_cfg>; 231*6ea2a061SHan Gao pinctrl-names = "default"; 232*6ea2a061SHan Gao status = "okay"; 233*6ea2a061SHan Gao}; 234