// SPDX-License-Identifier: GPL-2.0 /* * WinLink E850-96 board device tree source * * Copyright (C) 2018 Samsung Electronics Co., Ltd. * Copyright (C) 2021 Linaro Ltd. * * Device tree source file for WinLink's E850-96 board which is based on * Samsung Exynos850 SoC. */ /dts-v1/; #include "exynos850.dtsi" #include #include #include / { model = "WinLink E850-96 board"; compatible = "winlink,e850-96", "samsung,exynos850"; aliases { mmc0 = &mmc_0; serial0 = &serial_0; }; chosen { stdout-path = &serial_0; }; connector { compatible = "gpio-usb-b-connector", "usb-b-connector"; label = "micro-USB"; type = "micro"; vbus-supply = <®_usb_host_vbus>; id-gpios = <&gpa0 0 GPIO_ACTIVE_LOW>; pinctrl-names = "default"; pinctrl-0 = <µ_usb_det_pins>; port { usb_dr_connector: endpoint { remote-endpoint = <&usb1_drd_sw>; }; }; }; /* * RAM: 4 GiB (eMCP): * - 2 GiB at 0x80000000 * - 2 GiB at 0x880000000 * * 0xbab00000..0xbfffffff: secure memory (85 MiB). */ memory@80000000 { device_type = "memory"; reg = <0x0 0x80000000 0x3ab00000>, <0x0 0xc0000000 0x40000000>, <0x8 0x80000000 0x80000000>; }; gpio-keys { compatible = "gpio-keys"; pinctrl-names = "default"; pinctrl-0 = <&key_voldown_pins &key_volup_pins>; volume-down-key { label = "Volume Down"; linux,code = ; gpios = <&gpa1 0 GPIO_ACTIVE_LOW>; }; volume-up-key { label = "Volume Up"; linux,code = ; gpios = <&gpa0 7 GPIO_ACTIVE_LOW>; }; }; leds { compatible = "gpio-leds"; /* HEART_BEAT_LED */ user_led1: led-1 { label = "yellow:user1"; gpios = <&gpg2 2 GPIO_ACTIVE_HIGH>; color = ; function = LED_FUNCTION_HEARTBEAT; linux,default-trigger = "heartbeat"; }; /* eMMC_LED */ user_led2: led-2 { label = "yellow:user2"; gpios = <&gpg2 3 GPIO_ACTIVE_HIGH>; color = ; linux,default-trigger = "mmc0"; }; /* SD_LED */ user_led3: led-3 { label = "white:user3"; gpios = <&gpg2 4 GPIO_ACTIVE_HIGH>; color = ; function = LED_FUNCTION_SD; linux,default-trigger = "mmc2"; }; /* WIFI_LED */ wlan_active_led: led-4 { label = "yellow:wlan"; gpios = <&gpg2 6 GPIO_ACTIVE_HIGH>; color = ; function = LED_FUNCTION_WLAN; linux,default-trigger = "phy0tx"; default-state = "off"; }; /* BLUETOOTH_LED */ bt_active_led: led-5 { label = "blue:bt"; gpios = <&gpg2 7 GPIO_ACTIVE_HIGH>; color = ; function = LED_FUNCTION_BLUETOOTH; linux,default-trigger = "hci0-power"; default-state = "off"; }; }; /* TODO: Remove this once PMIC is implemented */ reg_dummy: regulator-0 { compatible = "regulator-fixed"; regulator-name = "dummy_reg"; }; reg_usb_host_vbus: regulator-1 { compatible = "regulator-fixed"; regulator-name = "usb_host_vbus"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; gpio = <&gpa3 5 GPIO_ACTIVE_LOW>; }; reserved-memory { #address-cells = <2>; #size-cells = <1>; ranges; ramoops@f0000000 { compatible = "ramoops"; reg = <0x0 0xf0000000 0x200000>; record-size = <0x20000>; console-size = <0x20000>; ftrace-size = <0x100000>; pmsg-size = <0x20000>; }; }; /* * RTC clock (XrtcXTI); external, must be 32.768 kHz. * * TODO: Remove this once RTC clock is implemented properly as part of * PMIC driver. */ rtcclk: clock-rtcclk { compatible = "fixed-clock"; clock-output-names = "rtcclk"; #clock-cells = <0>; clock-frequency = <32768>; }; }; &cmu_hsi { clocks = <&oscclk>, <&rtcclk>, <&cmu_top CLK_DOUT_HSI_BUS>, <&cmu_top CLK_DOUT_HSI_MMC_CARD>, <&cmu_top CLK_DOUT_HSI_USB20DRD>; clock-names = "oscclk", "rtcclk", "dout_hsi_bus", "dout_hsi_mmc_card", "dout_hsi_usb20drd"; }; &mmc_0 { status = "okay"; mmc-hs200-1_8v; mmc-hs400-1_8v; cap-mmc-highspeed; non-removable; mmc-hs400-enhanced-strobe; card-detect-delay = <200>; clock-frequency = <800000000>; bus-width = <8>; samsung,dw-mshc-ciu-div = <3>; samsung,dw-mshc-sdr-timing = <0 4>; samsung,dw-mshc-ddr-timing = <2 4>; samsung,dw-mshc-hs400-timing = <0 2>; pinctrl-names = "default"; pinctrl-0 = <&sd0_clk_pins &sd0_cmd_pins &sd0_rdqs_pins &sd0_nreset_pins &sd0_bus1_pins &sd0_bus4_pins &sd0_bus8_pins>; }; &oscclk { clock-frequency = <26000000>; }; &pinctrl_alive { key_voldown_pins: key-voldown-pins { samsung,pins = "gpa1-0"; samsung,pin-function = ; samsung,pin-pud = ; samsung,pin-drv = ; }; key_volup_pins: key-volup-pins { samsung,pins = "gpa0-7"; samsung,pin-function = ; samsung,pin-pud = ; samsung,pin-drv = ; }; micro_usb_det_pins: micro-usb-det-pins { samsung,pins = "gpa0-0"; samsung,pin-function = ; samsung,pin-pud = ; }; }; &rtc { status = "okay"; clocks = <&cmu_apm CLK_GOUT_RTC_PCLK>, <&rtcclk>; clock-names = "rtc", "rtc_src"; }; &serial_0 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&uart1_pins>; }; &usbdrd { status = "okay"; vdd10-supply = <®_dummy>; vdd33-supply = <®_dummy>; }; &usbdrd_dwc3 { dr_mode = "otg"; usb-role-switch; role-switch-default-mode = "host"; port { usb1_drd_sw: endpoint { remote-endpoint = <&usb_dr_connector>; }; }; }; &usbdrd_phy { status = "okay"; }; &usi_uart { samsung,clkreq-on; /* needed for UART mode */ status = "okay"; }; &watchdog_cl0 { status = "okay"; }; &watchdog_cl1 { status = "okay"; };