18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0+ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Device Tree file for the Kontron SMARC-sAL28 board. 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (C) 2019 Michael Walle <michael@walle.cc> 68c2ecf20Sopenharmony_ci * 78c2ecf20Sopenharmony_ci */ 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci/dts-v1/; 108c2ecf20Sopenharmony_ci#include "fsl-ls1028a.dtsi" 118c2ecf20Sopenharmony_ci#include <dt-bindings/interrupt-controller/irq.h> 128c2ecf20Sopenharmony_ci#include <dt-bindings/gpio/gpio.h> 138c2ecf20Sopenharmony_ci#include <dt-bindings/input/input.h> 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ci/ { 168c2ecf20Sopenharmony_ci model = "Kontron SMARC-sAL28"; 178c2ecf20Sopenharmony_ci compatible = "kontron,sl28", "fsl,ls1028a"; 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ci aliases { 208c2ecf20Sopenharmony_ci crypto = &crypto; 218c2ecf20Sopenharmony_ci serial0 = &duart0; 228c2ecf20Sopenharmony_ci serial1 = &duart1; 238c2ecf20Sopenharmony_ci serial2 = &lpuart1; 248c2ecf20Sopenharmony_ci spi0 = &fspi; 258c2ecf20Sopenharmony_ci spi1 = &dspi2; 268c2ecf20Sopenharmony_ci }; 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_ci buttons0 { 298c2ecf20Sopenharmony_ci compatible = "gpio-keys"; 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ci power-button { 328c2ecf20Sopenharmony_ci interrupts-extended = <&sl28cpld_intc 338c2ecf20Sopenharmony_ci 4 IRQ_TYPE_EDGE_BOTH>; 348c2ecf20Sopenharmony_ci linux,code = <KEY_POWER>; 358c2ecf20Sopenharmony_ci label = "Power"; 368c2ecf20Sopenharmony_ci }; 378c2ecf20Sopenharmony_ci 388c2ecf20Sopenharmony_ci sleep-button { 398c2ecf20Sopenharmony_ci interrupts-extended = <&sl28cpld_intc 408c2ecf20Sopenharmony_ci 5 IRQ_TYPE_EDGE_BOTH>; 418c2ecf20Sopenharmony_ci linux,code = <KEY_SLEEP>; 428c2ecf20Sopenharmony_ci label = "Sleep"; 438c2ecf20Sopenharmony_ci }; 448c2ecf20Sopenharmony_ci }; 458c2ecf20Sopenharmony_ci 468c2ecf20Sopenharmony_ci buttons1 { 478c2ecf20Sopenharmony_ci compatible = "gpio-keys-polled"; 488c2ecf20Sopenharmony_ci poll-interval = <200>; 498c2ecf20Sopenharmony_ci 508c2ecf20Sopenharmony_ci lid-switch { 518c2ecf20Sopenharmony_ci linux,input-type = <EV_SW>; 528c2ecf20Sopenharmony_ci linux,code = <SW_LID>; 538c2ecf20Sopenharmony_ci gpios = <&sl28cpld_gpio3 4 GPIO_ACTIVE_LOW>; 548c2ecf20Sopenharmony_ci label = "Lid"; 558c2ecf20Sopenharmony_ci }; 568c2ecf20Sopenharmony_ci }; 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ci chosen { 598c2ecf20Sopenharmony_ci stdout-path = "serial0:115200n8"; 608c2ecf20Sopenharmony_ci }; 618c2ecf20Sopenharmony_ci}; 628c2ecf20Sopenharmony_ci 638c2ecf20Sopenharmony_ci&dspi2 { 648c2ecf20Sopenharmony_ci status = "okay"; 658c2ecf20Sopenharmony_ci}; 668c2ecf20Sopenharmony_ci 678c2ecf20Sopenharmony_ci&duart0 { 688c2ecf20Sopenharmony_ci status = "okay"; 698c2ecf20Sopenharmony_ci}; 708c2ecf20Sopenharmony_ci 718c2ecf20Sopenharmony_ci&duart1 { 728c2ecf20Sopenharmony_ci status = "okay"; 738c2ecf20Sopenharmony_ci}; 748c2ecf20Sopenharmony_ci 758c2ecf20Sopenharmony_ci&enetc_port0 { 768c2ecf20Sopenharmony_ci phy-handle = <&phy0>; 778c2ecf20Sopenharmony_ci phy-connection-type = "sgmii"; 788c2ecf20Sopenharmony_ci managed = "in-band-status"; 798c2ecf20Sopenharmony_ci status = "okay"; 808c2ecf20Sopenharmony_ci 818c2ecf20Sopenharmony_ci mdio { 828c2ecf20Sopenharmony_ci #address-cells = <1>; 838c2ecf20Sopenharmony_ci #size-cells = <0>; 848c2ecf20Sopenharmony_ci 858c2ecf20Sopenharmony_ci phy0: ethernet-phy@5 { 868c2ecf20Sopenharmony_ci reg = <0x5>; 878c2ecf20Sopenharmony_ci eee-broken-1000t; 888c2ecf20Sopenharmony_ci eee-broken-100tx; 898c2ecf20Sopenharmony_ci }; 908c2ecf20Sopenharmony_ci }; 918c2ecf20Sopenharmony_ci}; 928c2ecf20Sopenharmony_ci 938c2ecf20Sopenharmony_ci&esdhc { 948c2ecf20Sopenharmony_ci sd-uhs-sdr104; 958c2ecf20Sopenharmony_ci sd-uhs-sdr50; 968c2ecf20Sopenharmony_ci sd-uhs-sdr25; 978c2ecf20Sopenharmony_ci sd-uhs-sdr12; 988c2ecf20Sopenharmony_ci status = "okay"; 998c2ecf20Sopenharmony_ci}; 1008c2ecf20Sopenharmony_ci 1018c2ecf20Sopenharmony_ci&esdhc1 { 1028c2ecf20Sopenharmony_ci mmc-hs200-1_8v; 1038c2ecf20Sopenharmony_ci mmc-hs400-1_8v; 1048c2ecf20Sopenharmony_ci bus-width = <8>; 1058c2ecf20Sopenharmony_ci status = "okay"; 1068c2ecf20Sopenharmony_ci}; 1078c2ecf20Sopenharmony_ci 1088c2ecf20Sopenharmony_ci&fspi { 1098c2ecf20Sopenharmony_ci status = "okay"; 1108c2ecf20Sopenharmony_ci 1118c2ecf20Sopenharmony_ci flash@0 { 1128c2ecf20Sopenharmony_ci #address-cells = <1>; 1138c2ecf20Sopenharmony_ci #size-cells = <1>; 1148c2ecf20Sopenharmony_ci compatible = "jedec,spi-nor"; 1158c2ecf20Sopenharmony_ci m25p,fast-read; 1168c2ecf20Sopenharmony_ci spi-max-frequency = <133000000>; 1178c2ecf20Sopenharmony_ci reg = <0>; 1188c2ecf20Sopenharmony_ci /* The following setting enables 1-1-2 (CMD-ADDR-DATA) mode */ 1198c2ecf20Sopenharmony_ci spi-rx-bus-width = <2>; /* 2 SPI Rx lines */ 1208c2ecf20Sopenharmony_ci spi-tx-bus-width = <1>; /* 1 SPI Tx line */ 1218c2ecf20Sopenharmony_ci 1228c2ecf20Sopenharmony_ci partition@0 { 1238c2ecf20Sopenharmony_ci reg = <0x000000 0x010000>; 1248c2ecf20Sopenharmony_ci label = "rcw"; 1258c2ecf20Sopenharmony_ci read-only; 1268c2ecf20Sopenharmony_ci }; 1278c2ecf20Sopenharmony_ci 1288c2ecf20Sopenharmony_ci partition@10000 { 1298c2ecf20Sopenharmony_ci reg = <0x010000 0x0f0000>; 1308c2ecf20Sopenharmony_ci label = "failsafe bootloader"; 1318c2ecf20Sopenharmony_ci read-only; 1328c2ecf20Sopenharmony_ci }; 1338c2ecf20Sopenharmony_ci 1348c2ecf20Sopenharmony_ci partition@100000 { 1358c2ecf20Sopenharmony_ci reg = <0x100000 0x040000>; 1368c2ecf20Sopenharmony_ci label = "failsafe DP firmware"; 1378c2ecf20Sopenharmony_ci read-only; 1388c2ecf20Sopenharmony_ci }; 1398c2ecf20Sopenharmony_ci 1408c2ecf20Sopenharmony_ci partition@140000 { 1418c2ecf20Sopenharmony_ci reg = <0x140000 0x0a0000>; 1428c2ecf20Sopenharmony_ci label = "failsafe trusted firmware"; 1438c2ecf20Sopenharmony_ci read-only; 1448c2ecf20Sopenharmony_ci }; 1458c2ecf20Sopenharmony_ci 1468c2ecf20Sopenharmony_ci partition@1e0000 { 1478c2ecf20Sopenharmony_ci reg = <0x1e0000 0x020000>; 1488c2ecf20Sopenharmony_ci label = "reserved"; 1498c2ecf20Sopenharmony_ci read-only; 1508c2ecf20Sopenharmony_ci }; 1518c2ecf20Sopenharmony_ci 1528c2ecf20Sopenharmony_ci partition@200000 { 1538c2ecf20Sopenharmony_ci reg = <0x200000 0x010000>; 1548c2ecf20Sopenharmony_ci label = "configuration store"; 1558c2ecf20Sopenharmony_ci }; 1568c2ecf20Sopenharmony_ci 1578c2ecf20Sopenharmony_ci partition@210000 { 1588c2ecf20Sopenharmony_ci reg = <0x210000 0x1d0000>; 1598c2ecf20Sopenharmony_ci label = "bootloader"; 1608c2ecf20Sopenharmony_ci }; 1618c2ecf20Sopenharmony_ci 1628c2ecf20Sopenharmony_ci partition@3e0000 { 1638c2ecf20Sopenharmony_ci reg = <0x3e0000 0x020000>; 1648c2ecf20Sopenharmony_ci label = "bootloader environment"; 1658c2ecf20Sopenharmony_ci }; 1668c2ecf20Sopenharmony_ci }; 1678c2ecf20Sopenharmony_ci}; 1688c2ecf20Sopenharmony_ci 1698c2ecf20Sopenharmony_ci&gpio1 { 1708c2ecf20Sopenharmony_ci gpio-line-names = 1718c2ecf20Sopenharmony_ci "", "", "", "", "", "", "", "", 1728c2ecf20Sopenharmony_ci "", "", "", "", "", "", "", "", 1738c2ecf20Sopenharmony_ci "", "", "", "", "", "", "TDO", "TCK", 1748c2ecf20Sopenharmony_ci "", "", "", "", "", "", "", ""; 1758c2ecf20Sopenharmony_ci}; 1768c2ecf20Sopenharmony_ci 1778c2ecf20Sopenharmony_ci&gpio2 { 1788c2ecf20Sopenharmony_ci gpio-line-names = 1798c2ecf20Sopenharmony_ci "", "", "", "", "", "", "TMS", "TDI", 1808c2ecf20Sopenharmony_ci "", "", "", "", "", "", "", "", 1818c2ecf20Sopenharmony_ci "", "", "", "", "", "", "", "", 1828c2ecf20Sopenharmony_ci "", "", "", "", "", "", "", ""; 1838c2ecf20Sopenharmony_ci}; 1848c2ecf20Sopenharmony_ci 1858c2ecf20Sopenharmony_ci&i2c0 { 1868c2ecf20Sopenharmony_ci status = "okay"; 1878c2ecf20Sopenharmony_ci 1888c2ecf20Sopenharmony_ci rtc@32 { 1898c2ecf20Sopenharmony_ci compatible = "microcrystal,rv8803"; 1908c2ecf20Sopenharmony_ci reg = <0x32>; 1918c2ecf20Sopenharmony_ci }; 1928c2ecf20Sopenharmony_ci 1938c2ecf20Sopenharmony_ci sl28cpld@4a { 1948c2ecf20Sopenharmony_ci compatible = "kontron,sl28cpld"; 1958c2ecf20Sopenharmony_ci reg = <0x4a>; 1968c2ecf20Sopenharmony_ci #address-cells = <1>; 1978c2ecf20Sopenharmony_ci #size-cells = <0>; 1988c2ecf20Sopenharmony_ci 1998c2ecf20Sopenharmony_ci watchdog@4 { 2008c2ecf20Sopenharmony_ci compatible = "kontron,sl28cpld-wdt"; 2018c2ecf20Sopenharmony_ci reg = <0x4>; 2028c2ecf20Sopenharmony_ci kontron,assert-wdt-timeout-pin; 2038c2ecf20Sopenharmony_ci }; 2048c2ecf20Sopenharmony_ci 2058c2ecf20Sopenharmony_ci hwmon@b { 2068c2ecf20Sopenharmony_ci compatible = "kontron,sl28cpld-fan"; 2078c2ecf20Sopenharmony_ci reg = <0xb>; 2088c2ecf20Sopenharmony_ci }; 2098c2ecf20Sopenharmony_ci 2108c2ecf20Sopenharmony_ci sl28cpld_pwm0: pwm@c { 2118c2ecf20Sopenharmony_ci compatible = "kontron,sl28cpld-pwm"; 2128c2ecf20Sopenharmony_ci reg = <0xc>; 2138c2ecf20Sopenharmony_ci #pwm-cells = <2>; 2148c2ecf20Sopenharmony_ci }; 2158c2ecf20Sopenharmony_ci 2168c2ecf20Sopenharmony_ci sl28cpld_pwm1: pwm@e { 2178c2ecf20Sopenharmony_ci compatible = "kontron,sl28cpld-pwm"; 2188c2ecf20Sopenharmony_ci reg = <0xe>; 2198c2ecf20Sopenharmony_ci #pwm-cells = <2>; 2208c2ecf20Sopenharmony_ci }; 2218c2ecf20Sopenharmony_ci 2228c2ecf20Sopenharmony_ci sl28cpld_gpio0: gpio@10 { 2238c2ecf20Sopenharmony_ci compatible = "kontron,sl28cpld-gpio"; 2248c2ecf20Sopenharmony_ci reg = <0x10>; 2258c2ecf20Sopenharmony_ci interrupts-extended = <&gpio2 6 2268c2ecf20Sopenharmony_ci IRQ_TYPE_EDGE_FALLING>; 2278c2ecf20Sopenharmony_ci 2288c2ecf20Sopenharmony_ci gpio-controller; 2298c2ecf20Sopenharmony_ci #gpio-cells = <2>; 2308c2ecf20Sopenharmony_ci gpio-line-names = 2318c2ecf20Sopenharmony_ci "GPIO0_CAM0_PWR_N", "GPIO1_CAM1_PWR_N", 2328c2ecf20Sopenharmony_ci "GPIO2_CAM0_RST_N", "GPIO3_CAM1_RST_N", 2338c2ecf20Sopenharmony_ci "GPIO4_HDA_RST_N", "GPIO5_PWM_OUT", 2348c2ecf20Sopenharmony_ci "GPIO6_TACHIN", "GPIO7"; 2358c2ecf20Sopenharmony_ci 2368c2ecf20Sopenharmony_ci interrupt-controller; 2378c2ecf20Sopenharmony_ci #interrupt-cells = <2>; 2388c2ecf20Sopenharmony_ci }; 2398c2ecf20Sopenharmony_ci 2408c2ecf20Sopenharmony_ci sl28cpld_gpio1: gpio@15 { 2418c2ecf20Sopenharmony_ci compatible = "kontron,sl28cpld-gpio"; 2428c2ecf20Sopenharmony_ci reg = <0x15>; 2438c2ecf20Sopenharmony_ci interrupts-extended = <&gpio2 6 2448c2ecf20Sopenharmony_ci IRQ_TYPE_EDGE_FALLING>; 2458c2ecf20Sopenharmony_ci 2468c2ecf20Sopenharmony_ci gpio-controller; 2478c2ecf20Sopenharmony_ci #gpio-cells = <2>; 2488c2ecf20Sopenharmony_ci gpio-line-names = 2498c2ecf20Sopenharmony_ci "GPIO8", "GPIO9", "GPIO10", "GPIO11", 2508c2ecf20Sopenharmony_ci "", "", "", ""; 2518c2ecf20Sopenharmony_ci 2528c2ecf20Sopenharmony_ci interrupt-controller; 2538c2ecf20Sopenharmony_ci #interrupt-cells = <2>; 2548c2ecf20Sopenharmony_ci }; 2558c2ecf20Sopenharmony_ci 2568c2ecf20Sopenharmony_ci sl28cpld_gpio2: gpio@1a { 2578c2ecf20Sopenharmony_ci compatible = "kontron,sl28cpld-gpo"; 2588c2ecf20Sopenharmony_ci reg = <0x1a>; 2598c2ecf20Sopenharmony_ci 2608c2ecf20Sopenharmony_ci gpio-controller; 2618c2ecf20Sopenharmony_ci #gpio-cells = <2>; 2628c2ecf20Sopenharmony_ci gpio-line-names = 2638c2ecf20Sopenharmony_ci "LCD0 voltage enable", 2648c2ecf20Sopenharmony_ci "LCD0 backlight enable", 2658c2ecf20Sopenharmony_ci "eMMC reset", "LVDS bridge reset", 2668c2ecf20Sopenharmony_ci "LVDS bridge power-down", 2678c2ecf20Sopenharmony_ci "SDIO power enable", 2688c2ecf20Sopenharmony_ci "", ""; 2698c2ecf20Sopenharmony_ci }; 2708c2ecf20Sopenharmony_ci 2718c2ecf20Sopenharmony_ci sl28cpld_gpio3: gpio@1b { 2728c2ecf20Sopenharmony_ci compatible = "kontron,sl28cpld-gpi"; 2738c2ecf20Sopenharmony_ci reg = <0x1b>; 2748c2ecf20Sopenharmony_ci 2758c2ecf20Sopenharmony_ci gpio-controller; 2768c2ecf20Sopenharmony_ci #gpio-cells = <2>; 2778c2ecf20Sopenharmony_ci gpio-line-names = 2788c2ecf20Sopenharmony_ci "Power button", "Force recovery", "Sleep", 2798c2ecf20Sopenharmony_ci "Battery low", "Lid state", "Charging", 2808c2ecf20Sopenharmony_ci "Charger present", ""; 2818c2ecf20Sopenharmony_ci }; 2828c2ecf20Sopenharmony_ci 2838c2ecf20Sopenharmony_ci sl28cpld_intc: interrupt-controller@1c { 2848c2ecf20Sopenharmony_ci compatible = "kontron,sl28cpld-intc"; 2858c2ecf20Sopenharmony_ci reg = <0x1c>; 2868c2ecf20Sopenharmony_ci interrupts-extended = <&gpio2 6 2878c2ecf20Sopenharmony_ci IRQ_TYPE_EDGE_FALLING>; 2888c2ecf20Sopenharmony_ci 2898c2ecf20Sopenharmony_ci interrupt-controller; 2908c2ecf20Sopenharmony_ci #interrupt-cells = <2>; 2918c2ecf20Sopenharmony_ci }; 2928c2ecf20Sopenharmony_ci }; 2938c2ecf20Sopenharmony_ci 2948c2ecf20Sopenharmony_ci eeprom@50 { 2958c2ecf20Sopenharmony_ci compatible = "atmel,24c32"; 2968c2ecf20Sopenharmony_ci reg = <0x50>; 2978c2ecf20Sopenharmony_ci pagesize = <32>; 2988c2ecf20Sopenharmony_ci }; 2998c2ecf20Sopenharmony_ci}; 3008c2ecf20Sopenharmony_ci 3018c2ecf20Sopenharmony_ci&i2c3 { 3028c2ecf20Sopenharmony_ci status = "okay"; 3038c2ecf20Sopenharmony_ci}; 3048c2ecf20Sopenharmony_ci 3058c2ecf20Sopenharmony_ci&i2c4 { 3068c2ecf20Sopenharmony_ci status = "okay"; 3078c2ecf20Sopenharmony_ci 3088c2ecf20Sopenharmony_ci eeprom@50 { 3098c2ecf20Sopenharmony_ci compatible = "atmel,24c32"; 3108c2ecf20Sopenharmony_ci reg = <0x50>; 3118c2ecf20Sopenharmony_ci pagesize = <32>; 3128c2ecf20Sopenharmony_ci }; 3138c2ecf20Sopenharmony_ci}; 3148c2ecf20Sopenharmony_ci 3158c2ecf20Sopenharmony_ci&lpuart1 { 3168c2ecf20Sopenharmony_ci status = "okay"; 3178c2ecf20Sopenharmony_ci}; 318