| // 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 <dt-bindings/gpio/gpio.h> |
| #include <dt-bindings/input/input.h> |
| #include <dt-bindings/leds/common.h> |
| |
| / { |
| 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 = <KEY_VOLUMEDOWN>; |
| gpios = <&gpa1 0 GPIO_ACTIVE_LOW>; |
| }; |
| |
| volume-up-key { |
| label = "Volume Up"; |
| linux,code = <KEY_VOLUMEUP>; |
| 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 = <LED_COLOR_ID_YELLOW>; |
| function = LED_FUNCTION_HEARTBEAT; |
| linux,default-trigger = "heartbeat"; |
| }; |
| |
| /* eMMC_LED */ |
| user_led2: led-2 { |
| label = "yellow:user2"; |
| gpios = <&gpg2 3 GPIO_ACTIVE_HIGH>; |
| color = <LED_COLOR_ID_YELLOW>; |
| linux,default-trigger = "mmc0"; |
| }; |
| |
| /* SD_LED */ |
| user_led3: led-3 { |
| label = "white:user3"; |
| gpios = <&gpg2 4 GPIO_ACTIVE_HIGH>; |
| color = <LED_COLOR_ID_WHITE>; |
| 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 = <LED_COLOR_ID_YELLOW>; |
| 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 = <LED_COLOR_ID_BLUE>; |
| 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 = <EXYNOS_PIN_FUNC_EINT>; |
| samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; |
| samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; |
| }; |
| |
| key_volup_pins: key-volup-pins { |
| samsung,pins = "gpa0-7"; |
| samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>; |
| samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; |
| samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; |
| }; |
| |
| micro_usb_det_pins: micro-usb-det-pins { |
| samsung,pins = "gpa0-0"; |
| samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; |
| samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; |
| }; |
| }; |
| |
| &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"; |
| }; |