1*363e5299SSam Protsenko// SPDX-License-Identifier: GPL-2.0 2*363e5299SSam Protsenko/* 3*363e5299SSam Protsenko * WinLink E850-96 board device tree source 4*363e5299SSam Protsenko * 5*363e5299SSam Protsenko * Copyright (C) 2018 Samsung Electronics Co., Ltd. 6*363e5299SSam Protsenko * Copyright (C) 2021 Linaro Ltd. 7*363e5299SSam Protsenko * 8*363e5299SSam Protsenko * Device tree source file for WinLink's E850-96 board which is based on 9*363e5299SSam Protsenko * Samsung Exynos850 SoC. 10*363e5299SSam Protsenko */ 11*363e5299SSam Protsenko 12*363e5299SSam Protsenko/dts-v1/; 13*363e5299SSam Protsenko 14*363e5299SSam Protsenko#include "exynos850.dtsi" 15*363e5299SSam Protsenko#include <dt-bindings/gpio/gpio.h> 16*363e5299SSam Protsenko#include <dt-bindings/input/input.h> 17*363e5299SSam Protsenko#include <dt-bindings/leds/common.h> 18*363e5299SSam Protsenko 19*363e5299SSam Protsenko/ { 20*363e5299SSam Protsenko model = "WinLink E850-96 board"; 21*363e5299SSam Protsenko compatible = "winlink,e850-96", "samsung,exynos850"; 22*363e5299SSam Protsenko 23*363e5299SSam Protsenko chosen { 24*363e5299SSam Protsenko stdout-path = &serial_0; 25*363e5299SSam Protsenko }; 26*363e5299SSam Protsenko 27*363e5299SSam Protsenko /* 28*363e5299SSam Protsenko * RAM: 4 GiB (eMCP): 29*363e5299SSam Protsenko * - 2 GiB at 0x80000000 30*363e5299SSam Protsenko * - 2 GiB at 0x880000000 31*363e5299SSam Protsenko * 32*363e5299SSam Protsenko * 0xbab00000..0xbfffffff: secure memory (85 MiB). 33*363e5299SSam Protsenko */ 34*363e5299SSam Protsenko memory@80000000 { 35*363e5299SSam Protsenko device_type = "memory"; 36*363e5299SSam Protsenko reg = <0x0 0x80000000 0x3ab00000>, 37*363e5299SSam Protsenko <0x0 0xc0000000 0x40000000>, 38*363e5299SSam Protsenko <0x8 0x80000000 0x80000000>; 39*363e5299SSam Protsenko }; 40*363e5299SSam Protsenko 41*363e5299SSam Protsenko gpio-keys { 42*363e5299SSam Protsenko compatible = "gpio-keys"; 43*363e5299SSam Protsenko pinctrl-names = "default"; 44*363e5299SSam Protsenko pinctrl-0 = <&key_voldown_pins &key_volup_pins>; 45*363e5299SSam Protsenko 46*363e5299SSam Protsenko volume-down-key { 47*363e5299SSam Protsenko label = "Volume Down"; 48*363e5299SSam Protsenko linux,code = <KEY_VOLUMEDOWN>; 49*363e5299SSam Protsenko gpios = <&gpa1 0 GPIO_ACTIVE_LOW>; 50*363e5299SSam Protsenko }; 51*363e5299SSam Protsenko 52*363e5299SSam Protsenko volume-up-key { 53*363e5299SSam Protsenko label = "Volume Up"; 54*363e5299SSam Protsenko linux,code = <KEY_VOLUMEUP>; 55*363e5299SSam Protsenko gpios = <&gpa0 7 GPIO_ACTIVE_LOW>; 56*363e5299SSam Protsenko }; 57*363e5299SSam Protsenko }; 58*363e5299SSam Protsenko 59*363e5299SSam Protsenko leds { 60*363e5299SSam Protsenko compatible = "gpio-leds"; 61*363e5299SSam Protsenko 62*363e5299SSam Protsenko /* HEART_BEAT_LED */ 63*363e5299SSam Protsenko user_led1: led-1 { 64*363e5299SSam Protsenko label = "yellow:user1"; 65*363e5299SSam Protsenko gpios = <&gpg2 2 GPIO_ACTIVE_HIGH>; 66*363e5299SSam Protsenko color = <LED_COLOR_ID_YELLOW>; 67*363e5299SSam Protsenko function = LED_FUNCTION_HEARTBEAT; 68*363e5299SSam Protsenko linux,default-trigger = "heartbeat"; 69*363e5299SSam Protsenko }; 70*363e5299SSam Protsenko 71*363e5299SSam Protsenko /* eMMC_LED */ 72*363e5299SSam Protsenko user_led2: led-2 { 73*363e5299SSam Protsenko label = "yellow:user2"; 74*363e5299SSam Protsenko gpios = <&gpg2 3 GPIO_ACTIVE_HIGH>; 75*363e5299SSam Protsenko color = <LED_COLOR_ID_YELLOW>; 76*363e5299SSam Protsenko linux,default-trigger = "mmc0"; 77*363e5299SSam Protsenko }; 78*363e5299SSam Protsenko 79*363e5299SSam Protsenko /* SD_LED */ 80*363e5299SSam Protsenko user_led3: led-3 { 81*363e5299SSam Protsenko label = "white:user3"; 82*363e5299SSam Protsenko gpios = <&gpg2 4 GPIO_ACTIVE_HIGH>; 83*363e5299SSam Protsenko color = <LED_COLOR_ID_WHITE>; 84*363e5299SSam Protsenko function = LED_FUNCTION_SD; 85*363e5299SSam Protsenko linux,default-trigger = "mmc2"; 86*363e5299SSam Protsenko }; 87*363e5299SSam Protsenko 88*363e5299SSam Protsenko /* WIFI_LED */ 89*363e5299SSam Protsenko wlan_active_led: led-4 { 90*363e5299SSam Protsenko label = "yellow:wlan"; 91*363e5299SSam Protsenko gpios = <&gpg2 6 GPIO_ACTIVE_HIGH>; 92*363e5299SSam Protsenko color = <LED_COLOR_ID_YELLOW>; 93*363e5299SSam Protsenko function = LED_FUNCTION_WLAN; 94*363e5299SSam Protsenko linux,default-trigger = "phy0tx"; 95*363e5299SSam Protsenko default-state = "off"; 96*363e5299SSam Protsenko }; 97*363e5299SSam Protsenko 98*363e5299SSam Protsenko /* BLUETOOTH_LED */ 99*363e5299SSam Protsenko bt_active_led: led-5 { 100*363e5299SSam Protsenko label = "blue:bt"; 101*363e5299SSam Protsenko gpios = <&gpg2 7 GPIO_ACTIVE_HIGH>; 102*363e5299SSam Protsenko color = <LED_COLOR_ID_BLUE>; 103*363e5299SSam Protsenko function = LED_FUNCTION_BLUETOOTH; 104*363e5299SSam Protsenko linux,default-trigger = "hci0rx"; 105*363e5299SSam Protsenko default-state = "off"; 106*363e5299SSam Protsenko }; 107*363e5299SSam Protsenko }; 108*363e5299SSam Protsenko 109*363e5299SSam Protsenko /* 110*363e5299SSam Protsenko * RTC clock (XrtcXTI); external, must be 32.768 kHz. 111*363e5299SSam Protsenko * 112*363e5299SSam Protsenko * TODO: Remove this once RTC clock is implemented properly as part of 113*363e5299SSam Protsenko * PMIC driver. 114*363e5299SSam Protsenko */ 115*363e5299SSam Protsenko rtcclk: clock-rtcclk { 116*363e5299SSam Protsenko compatible = "fixed-clock"; 117*363e5299SSam Protsenko clock-output-names = "rtcclk"; 118*363e5299SSam Protsenko #clock-cells = <0>; 119*363e5299SSam Protsenko clock-frequency = <32768>; 120*363e5299SSam Protsenko }; 121*363e5299SSam Protsenko}; 122*363e5299SSam Protsenko 123*363e5299SSam Protsenko&cmu_hsi { 124*363e5299SSam Protsenko clocks = <&oscclk>, <&rtcclk>, 125*363e5299SSam Protsenko <&cmu_top CLK_DOUT_HSI_BUS>, 126*363e5299SSam Protsenko <&cmu_top CLK_DOUT_HSI_MMC_CARD>, 127*363e5299SSam Protsenko <&cmu_top CLK_DOUT_HSI_USB20DRD>; 128*363e5299SSam Protsenko clock-names = "oscclk", "rtcclk", "dout_hsi_bus", 129*363e5299SSam Protsenko "dout_hsi_mmc_card", "dout_hsi_usb20drd"; 130*363e5299SSam Protsenko}; 131*363e5299SSam Protsenko 132*363e5299SSam Protsenko&mmc_0 { 133*363e5299SSam Protsenko status = "okay"; 134*363e5299SSam Protsenko mmc-hs200-1_8v; 135*363e5299SSam Protsenko mmc-hs400-1_8v; 136*363e5299SSam Protsenko cap-mmc-highspeed; 137*363e5299SSam Protsenko non-removable; 138*363e5299SSam Protsenko mmc-hs400-enhanced-strobe; 139*363e5299SSam Protsenko card-detect-delay = <200>; 140*363e5299SSam Protsenko clock-frequency = <800000000>; 141*363e5299SSam Protsenko bus-width = <8>; 142*363e5299SSam Protsenko samsung,dw-mshc-ciu-div = <3>; 143*363e5299SSam Protsenko samsung,dw-mshc-sdr-timing = <0 4>; 144*363e5299SSam Protsenko samsung,dw-mshc-ddr-timing = <2 4>; 145*363e5299SSam Protsenko samsung,dw-mshc-hs400-timing = <0 2>; 146*363e5299SSam Protsenko 147*363e5299SSam Protsenko pinctrl-names = "default"; 148*363e5299SSam Protsenko pinctrl-0 = <&sd0_clk_pins &sd0_cmd_pins &sd0_rdqs_pins &sd0_nreset_pins 149*363e5299SSam Protsenko &sd0_bus1_pins &sd0_bus4_pins &sd0_bus8_pins>; 150*363e5299SSam Protsenko}; 151*363e5299SSam Protsenko 152*363e5299SSam Protsenko&oscclk { 153*363e5299SSam Protsenko clock-frequency = <26000000>; 154*363e5299SSam Protsenko}; 155*363e5299SSam Protsenko 156*363e5299SSam Protsenko&pinctrl_alive { 157*363e5299SSam Protsenko key_voldown_pins: key-voldown-pins { 158*363e5299SSam Protsenko samsung,pins = "gpa1-0"; 159*363e5299SSam Protsenko samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>; 160*363e5299SSam Protsenko samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 161*363e5299SSam Protsenko samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 162*363e5299SSam Protsenko }; 163*363e5299SSam Protsenko 164*363e5299SSam Protsenko key_volup_pins: key-volup-pins { 165*363e5299SSam Protsenko samsung,pins = "gpa0-7"; 166*363e5299SSam Protsenko samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>; 167*363e5299SSam Protsenko samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 168*363e5299SSam Protsenko samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 169*363e5299SSam Protsenko }; 170*363e5299SSam Protsenko}; 171*363e5299SSam Protsenko 172*363e5299SSam Protsenko&rtc { 173*363e5299SSam Protsenko status = "okay"; 174*363e5299SSam Protsenko clocks = <&cmu_apm CLK_GOUT_RTC_PCLK>, <&rtcclk>; 175*363e5299SSam Protsenko clock-names = "rtc", "rtc_src"; 176*363e5299SSam Protsenko}; 177*363e5299SSam Protsenko 178*363e5299SSam Protsenko&serial_0 { 179*363e5299SSam Protsenko status = "okay"; 180*363e5299SSam Protsenko pinctrl-names = "default"; 181*363e5299SSam Protsenko pinctrl-0 = <&uart1_pins>; 182*363e5299SSam Protsenko}; 183*363e5299SSam Protsenko 184*363e5299SSam Protsenko&usi_uart { 185*363e5299SSam Protsenko samsung,clkreq-on; /* needed for UART mode */ 186*363e5299SSam Protsenko status = "okay"; 187*363e5299SSam Protsenko}; 188*363e5299SSam Protsenko 189*363e5299SSam Protsenko&watchdog_cl0 { 190*363e5299SSam Protsenko status = "okay"; 191*363e5299SSam Protsenko}; 192*363e5299SSam Protsenko 193*363e5299SSam Protsenko&watchdog_cl1 { 194*363e5299SSam Protsenko status = "okay"; 195*363e5299SSam Protsenko}; 196