1363e5299SSam Protsenko// SPDX-License-Identifier: GPL-2.0 2363e5299SSam Protsenko/* 3363e5299SSam Protsenko * WinLink E850-96 board device tree source 4363e5299SSam Protsenko * 5363e5299SSam Protsenko * Copyright (C) 2018 Samsung Electronics Co., Ltd. 6363e5299SSam Protsenko * Copyright (C) 2021 Linaro Ltd. 7363e5299SSam Protsenko * 8363e5299SSam Protsenko * Device tree source file for WinLink's E850-96 board which is based on 9363e5299SSam Protsenko * Samsung Exynos850 SoC. 10363e5299SSam Protsenko */ 11363e5299SSam Protsenko 12363e5299SSam Protsenko/dts-v1/; 13363e5299SSam Protsenko 14363e5299SSam Protsenko#include "exynos850.dtsi" 15363e5299SSam Protsenko#include <dt-bindings/gpio/gpio.h> 16363e5299SSam Protsenko#include <dt-bindings/input/input.h> 17363e5299SSam Protsenko#include <dt-bindings/leds/common.h> 18363e5299SSam Protsenko 19363e5299SSam Protsenko/ { 20363e5299SSam Protsenko model = "WinLink E850-96 board"; 21363e5299SSam Protsenko compatible = "winlink,e850-96", "samsung,exynos850"; 22363e5299SSam Protsenko 23*f4324583SKrzysztof Kozlowski aliases { 24*f4324583SKrzysztof Kozlowski mmc0 = &mmc_0; 25*f4324583SKrzysztof Kozlowski serial0 = &serial_0; 26*f4324583SKrzysztof Kozlowski }; 27*f4324583SKrzysztof Kozlowski 28363e5299SSam Protsenko chosen { 29363e5299SSam Protsenko stdout-path = &serial_0; 30363e5299SSam Protsenko }; 31363e5299SSam Protsenko 32363e5299SSam Protsenko /* 33363e5299SSam Protsenko * RAM: 4 GiB (eMCP): 34363e5299SSam Protsenko * - 2 GiB at 0x80000000 35363e5299SSam Protsenko * - 2 GiB at 0x880000000 36363e5299SSam Protsenko * 37363e5299SSam Protsenko * 0xbab00000..0xbfffffff: secure memory (85 MiB). 38363e5299SSam Protsenko */ 39363e5299SSam Protsenko memory@80000000 { 40363e5299SSam Protsenko device_type = "memory"; 41363e5299SSam Protsenko reg = <0x0 0x80000000 0x3ab00000>, 42363e5299SSam Protsenko <0x0 0xc0000000 0x40000000>, 43363e5299SSam Protsenko <0x8 0x80000000 0x80000000>; 44363e5299SSam Protsenko }; 45363e5299SSam Protsenko 46363e5299SSam Protsenko gpio-keys { 47363e5299SSam Protsenko compatible = "gpio-keys"; 48363e5299SSam Protsenko pinctrl-names = "default"; 49363e5299SSam Protsenko pinctrl-0 = <&key_voldown_pins &key_volup_pins>; 50363e5299SSam Protsenko 51363e5299SSam Protsenko volume-down-key { 52363e5299SSam Protsenko label = "Volume Down"; 53363e5299SSam Protsenko linux,code = <KEY_VOLUMEDOWN>; 54363e5299SSam Protsenko gpios = <&gpa1 0 GPIO_ACTIVE_LOW>; 55363e5299SSam Protsenko }; 56363e5299SSam Protsenko 57363e5299SSam Protsenko volume-up-key { 58363e5299SSam Protsenko label = "Volume Up"; 59363e5299SSam Protsenko linux,code = <KEY_VOLUMEUP>; 60363e5299SSam Protsenko gpios = <&gpa0 7 GPIO_ACTIVE_LOW>; 61363e5299SSam Protsenko }; 62363e5299SSam Protsenko }; 63363e5299SSam Protsenko 64363e5299SSam Protsenko leds { 65363e5299SSam Protsenko compatible = "gpio-leds"; 66363e5299SSam Protsenko 67363e5299SSam Protsenko /* HEART_BEAT_LED */ 68363e5299SSam Protsenko user_led1: led-1 { 69363e5299SSam Protsenko label = "yellow:user1"; 70363e5299SSam Protsenko gpios = <&gpg2 2 GPIO_ACTIVE_HIGH>; 71363e5299SSam Protsenko color = <LED_COLOR_ID_YELLOW>; 72363e5299SSam Protsenko function = LED_FUNCTION_HEARTBEAT; 73363e5299SSam Protsenko linux,default-trigger = "heartbeat"; 74363e5299SSam Protsenko }; 75363e5299SSam Protsenko 76363e5299SSam Protsenko /* eMMC_LED */ 77363e5299SSam Protsenko user_led2: led-2 { 78363e5299SSam Protsenko label = "yellow:user2"; 79363e5299SSam Protsenko gpios = <&gpg2 3 GPIO_ACTIVE_HIGH>; 80363e5299SSam Protsenko color = <LED_COLOR_ID_YELLOW>; 81363e5299SSam Protsenko linux,default-trigger = "mmc0"; 82363e5299SSam Protsenko }; 83363e5299SSam Protsenko 84363e5299SSam Protsenko /* SD_LED */ 85363e5299SSam Protsenko user_led3: led-3 { 86363e5299SSam Protsenko label = "white:user3"; 87363e5299SSam Protsenko gpios = <&gpg2 4 GPIO_ACTIVE_HIGH>; 88363e5299SSam Protsenko color = <LED_COLOR_ID_WHITE>; 89363e5299SSam Protsenko function = LED_FUNCTION_SD; 90363e5299SSam Protsenko linux,default-trigger = "mmc2"; 91363e5299SSam Protsenko }; 92363e5299SSam Protsenko 93363e5299SSam Protsenko /* WIFI_LED */ 94363e5299SSam Protsenko wlan_active_led: led-4 { 95363e5299SSam Protsenko label = "yellow:wlan"; 96363e5299SSam Protsenko gpios = <&gpg2 6 GPIO_ACTIVE_HIGH>; 97363e5299SSam Protsenko color = <LED_COLOR_ID_YELLOW>; 98363e5299SSam Protsenko function = LED_FUNCTION_WLAN; 99363e5299SSam Protsenko linux,default-trigger = "phy0tx"; 100363e5299SSam Protsenko default-state = "off"; 101363e5299SSam Protsenko }; 102363e5299SSam Protsenko 103363e5299SSam Protsenko /* BLUETOOTH_LED */ 104363e5299SSam Protsenko bt_active_led: led-5 { 105363e5299SSam Protsenko label = "blue:bt"; 106363e5299SSam Protsenko gpios = <&gpg2 7 GPIO_ACTIVE_HIGH>; 107363e5299SSam Protsenko color = <LED_COLOR_ID_BLUE>; 108363e5299SSam Protsenko function = LED_FUNCTION_BLUETOOTH; 109363e5299SSam Protsenko linux,default-trigger = "hci0rx"; 110363e5299SSam Protsenko default-state = "off"; 111363e5299SSam Protsenko }; 112363e5299SSam Protsenko }; 113363e5299SSam Protsenko 114363e5299SSam Protsenko /* 115363e5299SSam Protsenko * RTC clock (XrtcXTI); external, must be 32.768 kHz. 116363e5299SSam Protsenko * 117363e5299SSam Protsenko * TODO: Remove this once RTC clock is implemented properly as part of 118363e5299SSam Protsenko * PMIC driver. 119363e5299SSam Protsenko */ 120363e5299SSam Protsenko rtcclk: clock-rtcclk { 121363e5299SSam Protsenko compatible = "fixed-clock"; 122363e5299SSam Protsenko clock-output-names = "rtcclk"; 123363e5299SSam Protsenko #clock-cells = <0>; 124363e5299SSam Protsenko clock-frequency = <32768>; 125363e5299SSam Protsenko }; 126363e5299SSam Protsenko}; 127363e5299SSam Protsenko 128363e5299SSam Protsenko&cmu_hsi { 129363e5299SSam Protsenko clocks = <&oscclk>, <&rtcclk>, 130363e5299SSam Protsenko <&cmu_top CLK_DOUT_HSI_BUS>, 131363e5299SSam Protsenko <&cmu_top CLK_DOUT_HSI_MMC_CARD>, 132363e5299SSam Protsenko <&cmu_top CLK_DOUT_HSI_USB20DRD>; 133363e5299SSam Protsenko clock-names = "oscclk", "rtcclk", "dout_hsi_bus", 134363e5299SSam Protsenko "dout_hsi_mmc_card", "dout_hsi_usb20drd"; 135363e5299SSam Protsenko}; 136363e5299SSam Protsenko 137363e5299SSam Protsenko&mmc_0 { 138363e5299SSam Protsenko status = "okay"; 139363e5299SSam Protsenko mmc-hs200-1_8v; 140363e5299SSam Protsenko mmc-hs400-1_8v; 141363e5299SSam Protsenko cap-mmc-highspeed; 142363e5299SSam Protsenko non-removable; 143363e5299SSam Protsenko mmc-hs400-enhanced-strobe; 144363e5299SSam Protsenko card-detect-delay = <200>; 145363e5299SSam Protsenko clock-frequency = <800000000>; 146363e5299SSam Protsenko bus-width = <8>; 147363e5299SSam Protsenko samsung,dw-mshc-ciu-div = <3>; 148363e5299SSam Protsenko samsung,dw-mshc-sdr-timing = <0 4>; 149363e5299SSam Protsenko samsung,dw-mshc-ddr-timing = <2 4>; 150363e5299SSam Protsenko samsung,dw-mshc-hs400-timing = <0 2>; 151363e5299SSam Protsenko 152363e5299SSam Protsenko pinctrl-names = "default"; 153363e5299SSam Protsenko pinctrl-0 = <&sd0_clk_pins &sd0_cmd_pins &sd0_rdqs_pins &sd0_nreset_pins 154363e5299SSam Protsenko &sd0_bus1_pins &sd0_bus4_pins &sd0_bus8_pins>; 155363e5299SSam Protsenko}; 156363e5299SSam Protsenko 157363e5299SSam Protsenko&oscclk { 158363e5299SSam Protsenko clock-frequency = <26000000>; 159363e5299SSam Protsenko}; 160363e5299SSam Protsenko 161363e5299SSam Protsenko&pinctrl_alive { 162363e5299SSam Protsenko key_voldown_pins: key-voldown-pins { 163363e5299SSam Protsenko samsung,pins = "gpa1-0"; 164363e5299SSam Protsenko samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>; 165363e5299SSam Protsenko samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 166363e5299SSam Protsenko samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 167363e5299SSam Protsenko }; 168363e5299SSam Protsenko 169363e5299SSam Protsenko key_volup_pins: key-volup-pins { 170363e5299SSam Protsenko samsung,pins = "gpa0-7"; 171363e5299SSam Protsenko samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>; 172363e5299SSam Protsenko samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 173363e5299SSam Protsenko samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 174363e5299SSam Protsenko }; 175363e5299SSam Protsenko}; 176363e5299SSam Protsenko 177363e5299SSam Protsenko&rtc { 178363e5299SSam Protsenko status = "okay"; 179363e5299SSam Protsenko clocks = <&cmu_apm CLK_GOUT_RTC_PCLK>, <&rtcclk>; 180363e5299SSam Protsenko clock-names = "rtc", "rtc_src"; 181363e5299SSam Protsenko}; 182363e5299SSam Protsenko 183363e5299SSam Protsenko&serial_0 { 184363e5299SSam Protsenko status = "okay"; 185363e5299SSam Protsenko pinctrl-names = "default"; 186363e5299SSam Protsenko pinctrl-0 = <&uart1_pins>; 187363e5299SSam Protsenko}; 188363e5299SSam Protsenko 189363e5299SSam Protsenko&usi_uart { 190363e5299SSam Protsenko samsung,clkreq-on; /* needed for UART mode */ 191363e5299SSam Protsenko status = "okay"; 192363e5299SSam Protsenko}; 193363e5299SSam Protsenko 194363e5299SSam Protsenko&watchdog_cl0 { 195363e5299SSam Protsenko status = "okay"; 196363e5299SSam Protsenko}; 197363e5299SSam Protsenko 198363e5299SSam Protsenko&watchdog_cl1 { 199363e5299SSam Protsenko status = "okay"; 200363e5299SSam Protsenko}; 201