19439a0e8SChen Wang// SPDX-License-Identifier: GPL-2.0 OR MIT 29439a0e8SChen Wang/* 39439a0e8SChen Wang * Copyright (C) 2022 Sophgo Technology Inc. All rights reserved. 49439a0e8SChen Wang */ 59439a0e8SChen Wang 69439a0e8SChen Wang#include "sg2042.dtsi" 79439a0e8SChen Wang 8128bded4SChen Wang#include <dt-bindings/gpio/gpio.h> 9128bded4SChen Wang#include <dt-bindings/input/input.h> 10128bded4SChen Wang 119439a0e8SChen Wang/ { 129439a0e8SChen Wang model = "Milk-V Pioneer"; 139439a0e8SChen Wang compatible = "milkv,pioneer", "sophgo,sg2042"; 149439a0e8SChen Wang 159439a0e8SChen Wang chosen { 169439a0e8SChen Wang stdout-path = "serial0"; 179439a0e8SChen Wang }; 18128bded4SChen Wang 19128bded4SChen Wang gpio-power { 20128bded4SChen Wang compatible = "gpio-keys"; 21128bded4SChen Wang 22128bded4SChen Wang key-power { 23128bded4SChen Wang label = "Power Key"; 24128bded4SChen Wang linux,code = <KEY_POWER>; 25128bded4SChen Wang gpios = <&port0a 22 GPIO_ACTIVE_HIGH>; 26128bded4SChen Wang linux,input-type = <EV_KEY>; 27128bded4SChen Wang debounce-interval = <100>; 28128bded4SChen Wang }; 29128bded4SChen Wang }; 309439a0e8SChen Wang}; 319439a0e8SChen Wang 32b1240a39SChen Wang&cgi_main { 33b1240a39SChen Wang clock-frequency = <25000000>; 34b1240a39SChen Wang}; 35b1240a39SChen Wang 36b1240a39SChen Wang&cgi_dpll0 { 37b1240a39SChen Wang clock-frequency = <25000000>; 38b1240a39SChen Wang}; 39b1240a39SChen Wang 40b1240a39SChen Wang&cgi_dpll1 { 41b1240a39SChen Wang clock-frequency = <25000000>; 42b1240a39SChen Wang}; 43b1240a39SChen Wang 44014b839fSChen Wang&emmc { 45*1cb666ecSInochi Amaoto pinctrl-0 = <&emmc_cfg>; 46*1cb666ecSInochi Amaoto pinctrl-names = "default"; 47014b839fSChen Wang bus-width = <4>; 48014b839fSChen Wang no-sdio; 49014b839fSChen Wang no-sd; 50014b839fSChen Wang non-removable; 51014b839fSChen Wang wp-inverted; 52014b839fSChen Wang status = "okay"; 53014b839fSChen Wang}; 54014b839fSChen Wang 55585dcb21SInochi Amaoto&i2c1 { 56*1cb666ecSInochi Amaoto pinctrl-0 = <&i2c1_cfg>; 57*1cb666ecSInochi Amaoto pinctrl-names = "default"; 58585dcb21SInochi Amaoto status = "okay"; 59585dcb21SInochi Amaoto 60585dcb21SInochi Amaoto mcu: syscon@17 { 61585dcb21SInochi Amaoto compatible = "sophgo,sg2042-hwmon-mcu"; 62585dcb21SInochi Amaoto reg = <0x17>; 63585dcb21SInochi Amaoto #thermal-sensor-cells = <1>; 64585dcb21SInochi Amaoto }; 65585dcb21SInochi Amaoto}; 66585dcb21SInochi Amaoto 67*1cb666ecSInochi Amaoto&pinctrl { 68*1cb666ecSInochi Amaoto emmc_cfg: sdhci-emmc-cfg { 69*1cb666ecSInochi Amaoto sdhci-emmc-wp-pins { 70*1cb666ecSInochi Amaoto pinmux = <PINMUX(PIN_EMMC_WP, 0)>; 71*1cb666ecSInochi Amaoto bias-disable; 72*1cb666ecSInochi Amaoto drive-strength-microamp = <26800>; 73*1cb666ecSInochi Amaoto input-schmitt-disable; 74*1cb666ecSInochi Amaoto }; 75*1cb666ecSInochi Amaoto 76*1cb666ecSInochi Amaoto sdhci-emmc-cd-pins { 77*1cb666ecSInochi Amaoto pinmux = <PINMUX(PIN_EMMC_CD, 0)>; 78*1cb666ecSInochi Amaoto bias-pull-up; 79*1cb666ecSInochi Amaoto drive-strength-microamp = <26800>; 80*1cb666ecSInochi Amaoto input-schmitt-enable; 81*1cb666ecSInochi Amaoto }; 82*1cb666ecSInochi Amaoto 83*1cb666ecSInochi Amaoto sdhci-emmc-rst-pwr-pins { 84*1cb666ecSInochi Amaoto pinmux = <PINMUX(PIN_EMMC_RST, 0)>, 85*1cb666ecSInochi Amaoto <PINMUX(PIN_EMMC_PWR_EN, 0)>; 86*1cb666ecSInochi Amaoto bias-disable; 87*1cb666ecSInochi Amaoto drive-strength-microamp = <26800>; 88*1cb666ecSInochi Amaoto input-schmitt-disable; 89*1cb666ecSInochi Amaoto }; 90*1cb666ecSInochi Amaoto }; 91*1cb666ecSInochi Amaoto 92*1cb666ecSInochi Amaoto i2c1_cfg: i2c1-cfg { 93*1cb666ecSInochi Amaoto i2c1-pins { 94*1cb666ecSInochi Amaoto pinmux = <PINMUX(PIN_IIC1_SDA, 0)>, 95*1cb666ecSInochi Amaoto <PINMUX(PIN_IIC1_SCL, 0)>; 96*1cb666ecSInochi Amaoto bias-pull-up; 97*1cb666ecSInochi Amaoto drive-strength-microamp = <26800>; 98*1cb666ecSInochi Amaoto input-schmitt-enable; 99*1cb666ecSInochi Amaoto }; 100*1cb666ecSInochi Amaoto }; 101*1cb666ecSInochi Amaoto 102*1cb666ecSInochi Amaoto sd_cfg: sdhci-sd-cfg { 103*1cb666ecSInochi Amaoto sdhci-sd-cd-wp-pins { 104*1cb666ecSInochi Amaoto pinmux = <PINMUX(PIN_SDIO_CD, 0)>, 105*1cb666ecSInochi Amaoto <PINMUX(PIN_SDIO_WP, 0)>; 106*1cb666ecSInochi Amaoto bias-pull-up; 107*1cb666ecSInochi Amaoto drive-strength-microamp = <26800>; 108*1cb666ecSInochi Amaoto input-schmitt-enable; 109*1cb666ecSInochi Amaoto }; 110*1cb666ecSInochi Amaoto 111*1cb666ecSInochi Amaoto sdhci-sd-rst-pwr-pins { 112*1cb666ecSInochi Amaoto pinmux = <PINMUX(PIN_SDIO_RST, 0)>, 113*1cb666ecSInochi Amaoto <PINMUX(PIN_SDIO_PWR_EN, 0)>; 114*1cb666ecSInochi Amaoto bias-disable; 115*1cb666ecSInochi Amaoto drive-strength-microamp = <26800>; 116*1cb666ecSInochi Amaoto input-schmitt-disable; 117*1cb666ecSInochi Amaoto }; 118*1cb666ecSInochi Amaoto }; 119*1cb666ecSInochi Amaoto 120*1cb666ecSInochi Amaoto uart0_cfg: uart0-cfg { 121*1cb666ecSInochi Amaoto uart0-rx-pins { 122*1cb666ecSInochi Amaoto pinmux = <PINMUX(PIN_UART0_TX, 0)>, 123*1cb666ecSInochi Amaoto <PINMUX(PIN_UART0_RX, 0)>; 124*1cb666ecSInochi Amaoto bias-pull-up; 125*1cb666ecSInochi Amaoto drive-strength-microamp = <26800>; 126*1cb666ecSInochi Amaoto input-schmitt-enable; 127*1cb666ecSInochi Amaoto }; 128*1cb666ecSInochi Amaoto }; 129*1cb666ecSInochi Amaoto}; 130*1cb666ecSInochi Amaoto 131014b839fSChen Wang&sd { 132*1cb666ecSInochi Amaoto pinctrl-0 = <&sd_cfg>; 133*1cb666ecSInochi Amaoto pinctrl-names = "default"; 134014b839fSChen Wang bus-width = <4>; 135014b839fSChen Wang no-sdio; 136014b839fSChen Wang no-mmc; 137014b839fSChen Wang wp-inverted; 138014b839fSChen Wang status = "okay"; 139014b839fSChen Wang}; 140014b839fSChen Wang 1419439a0e8SChen Wang&uart0 { 142*1cb666ecSInochi Amaoto pinctrl-0 = <&uart0_cfg>; 143*1cb666ecSInochi Amaoto pinctrl-names = "default"; 1449439a0e8SChen Wang status = "okay"; 1459439a0e8SChen Wang}; 146585dcb21SInochi Amaoto 147585dcb21SInochi Amaoto/ { 14862cdf0a0SChen Wang pwmfan: pwm-fan { 14962cdf0a0SChen Wang compatible = "pwm-fan"; 15062cdf0a0SChen Wang cooling-levels = <103 128 179 230 255>; 15162cdf0a0SChen Wang pwms = <&pwm 0 40000 0>; 15262cdf0a0SChen Wang #cooling-cells = <2>; 15362cdf0a0SChen Wang }; 15462cdf0a0SChen Wang 155585dcb21SInochi Amaoto thermal-zones { 156585dcb21SInochi Amaoto soc-thermal { 157585dcb21SInochi Amaoto polling-delay-passive = <1000>; 158585dcb21SInochi Amaoto polling-delay = <1000>; 159585dcb21SInochi Amaoto thermal-sensors = <&mcu 0>; 160585dcb21SInochi Amaoto 161585dcb21SInochi Amaoto trips { 162585dcb21SInochi Amaoto soc_active1: soc-active1 { 163585dcb21SInochi Amaoto temperature = <30000>; 164585dcb21SInochi Amaoto hysteresis = <8000>; 165585dcb21SInochi Amaoto type = "active"; 166585dcb21SInochi Amaoto }; 167585dcb21SInochi Amaoto 168585dcb21SInochi Amaoto soc_active2: soc-active2 { 169585dcb21SInochi Amaoto temperature = <58000>; 170585dcb21SInochi Amaoto hysteresis = <12000>; 171585dcb21SInochi Amaoto type = "active"; 172585dcb21SInochi Amaoto }; 173585dcb21SInochi Amaoto 174585dcb21SInochi Amaoto soc_active3: soc-active3 { 175585dcb21SInochi Amaoto temperature = <70000>; 176585dcb21SInochi Amaoto hysteresis = <10000>; 177585dcb21SInochi Amaoto type = "active"; 178585dcb21SInochi Amaoto }; 179585dcb21SInochi Amaoto 180585dcb21SInochi Amaoto soc_hot: soc-hot { 181585dcb21SInochi Amaoto temperature = <80000>; 182585dcb21SInochi Amaoto hysteresis = <5000>; 183585dcb21SInochi Amaoto type = "hot"; 184585dcb21SInochi Amaoto }; 185585dcb21SInochi Amaoto }; 186f047a928SChen Wang 187f047a928SChen Wang cooling-maps { 188f047a928SChen Wang map0 { 189f047a928SChen Wang trip = <&soc_active1>; 190f047a928SChen Wang cooling-device = <&pwmfan 0 1>; 191f047a928SChen Wang }; 192f047a928SChen Wang 193f047a928SChen Wang map1 { 194f047a928SChen Wang trip = <&soc_active2>; 195f047a928SChen Wang cooling-device = <&pwmfan 1 2>; 196f047a928SChen Wang }; 197f047a928SChen Wang 198f047a928SChen Wang map2 { 199f047a928SChen Wang trip = <&soc_active3>; 200f047a928SChen Wang cooling-device = <&pwmfan 2 3>; 201f047a928SChen Wang }; 202f047a928SChen Wang 203f047a928SChen Wang map3 { 204f047a928SChen Wang trip = <&soc_hot>; 205f047a928SChen Wang cooling-device = <&pwmfan 3 4>; 206f047a928SChen Wang }; 207f047a928SChen Wang }; 208585dcb21SInochi Amaoto }; 209585dcb21SInochi Amaoto 210585dcb21SInochi Amaoto board-thermal { 211585dcb21SInochi Amaoto polling-delay-passive = <1000>; 212585dcb21SInochi Amaoto polling-delay = <1000>; 213585dcb21SInochi Amaoto thermal-sensors = <&mcu 1>; 214585dcb21SInochi Amaoto 215585dcb21SInochi Amaoto trips { 216585dcb21SInochi Amaoto board_active: board-active { 217585dcb21SInochi Amaoto temperature = <75000>; 218585dcb21SInochi Amaoto hysteresis = <8000>; 219585dcb21SInochi Amaoto type = "active"; 220585dcb21SInochi Amaoto }; 221585dcb21SInochi Amaoto }; 222f047a928SChen Wang 223f047a928SChen Wang cooling-maps { 224f047a928SChen Wang map4 { 225f047a928SChen Wang trip = <&board_active>; 226f047a928SChen Wang cooling-device = <&pwmfan 3 4>; 227f047a928SChen Wang }; 228f047a928SChen Wang }; 229585dcb21SInochi Amaoto }; 230585dcb21SInochi Amaoto }; 231585dcb21SInochi Amaoto}; 232