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