1815364d0SMichael Walle// SPDX-License-Identifier: GPL-2.0+ 2815364d0SMichael Walle/* 3815364d0SMichael Walle * Device Tree file for the Kontron SMARC-sAL28 board. 4815364d0SMichael Walle * 567833805SMichael Walle * Copyright (C) 2021 Michael Walle <michael@walle.cc> 6815364d0SMichael Walle * 7815364d0SMichael Walle */ 8815364d0SMichael Walle 9815364d0SMichael Walle/dts-v1/; 10815364d0SMichael Walle#include "fsl-ls1028a.dtsi" 11c86e4202SMichael Walle#include <dt-bindings/interrupt-controller/irq.h> 12945710bbSMichael Walle#include <dt-bindings/gpio/gpio.h> 13945710bbSMichael Walle#include <dt-bindings/input/input.h> 14815364d0SMichael Walle 15815364d0SMichael Walle/ { 16815364d0SMichael Walle model = "Kontron SMARC-sAL28"; 17815364d0SMichael Walle compatible = "kontron,sl28", "fsl,ls1028a"; 18815364d0SMichael Walle 19815364d0SMichael Walle aliases { 20815364d0SMichael Walle crypto = &crypto; 21815364d0SMichael Walle serial0 = &duart0; 22815364d0SMichael Walle serial1 = &duart1; 23a0a44420SMichael Walle serial2 = &lpuart1; 241bc72a42SMichael Walle spi0 = &fspi; 251bc72a42SMichael Walle spi1 = &dspi2; 262e6cde96SVladimir Oltean mmc0 = &esdhc1; 272e6cde96SVladimir Oltean mmc1 = &esdhc; 2851c8eaa1SMichael Walle rtc0 = &rtc; 29c75dc98bSMichael Walle rtc1 = &ftm_alarm0; 30815364d0SMichael Walle }; 31815364d0SMichael Walle 32945710bbSMichael Walle buttons0 { 33945710bbSMichael Walle compatible = "gpio-keys"; 34945710bbSMichael Walle 35945710bbSMichael Walle power-button { 36945710bbSMichael Walle interrupts-extended = <&sl28cpld_intc 37945710bbSMichael Walle 4 IRQ_TYPE_EDGE_BOTH>; 38945710bbSMichael Walle linux,code = <KEY_POWER>; 39945710bbSMichael Walle label = "Power"; 40945710bbSMichael Walle }; 41945710bbSMichael Walle 42945710bbSMichael Walle sleep-button { 43945710bbSMichael Walle interrupts-extended = <&sl28cpld_intc 44945710bbSMichael Walle 5 IRQ_TYPE_EDGE_BOTH>; 45945710bbSMichael Walle linux,code = <KEY_SLEEP>; 46945710bbSMichael Walle label = "Sleep"; 47945710bbSMichael Walle }; 48945710bbSMichael Walle }; 49945710bbSMichael Walle 50945710bbSMichael Walle buttons1 { 51945710bbSMichael Walle compatible = "gpio-keys-polled"; 52945710bbSMichael Walle poll-interval = <200>; 53945710bbSMichael Walle 54945710bbSMichael Walle lid-switch { 55945710bbSMichael Walle linux,input-type = <EV_SW>; 56945710bbSMichael Walle linux,code = <SW_LID>; 57945710bbSMichael Walle gpios = <&sl28cpld_gpio3 4 GPIO_ACTIVE_LOW>; 58945710bbSMichael Walle label = "Lid"; 59945710bbSMichael Walle }; 60945710bbSMichael Walle }; 61945710bbSMichael Walle 62815364d0SMichael Walle chosen { 63815364d0SMichael Walle stdout-path = "serial0:115200n8"; 64815364d0SMichael Walle }; 65815364d0SMichael Walle}; 66815364d0SMichael Walle 677e2ac9deSMichael Walle&can0 { 687e2ac9deSMichael Walle status = "okay"; 697e2ac9deSMichael Walle}; 707e2ac9deSMichael Walle 711bc72a42SMichael Walle&dspi2 { 721bc72a42SMichael Walle status = "okay"; 731bc72a42SMichael Walle}; 741bc72a42SMichael Walle 75815364d0SMichael Walle&duart0 { 76815364d0SMichael Walle status = "okay"; 77815364d0SMichael Walle}; 78815364d0SMichael Walle 79815364d0SMichael Walle&duart1 { 80815364d0SMichael Walle status = "okay"; 81815364d0SMichael Walle}; 82815364d0SMichael Walle 8367833805SMichael Walle&enetc_mdio_pf3 { 84815364d0SMichael Walle phy0: ethernet-phy@5 { 85815364d0SMichael Walle reg = <0x5>; 86815364d0SMichael Walle eee-broken-1000t; 87815364d0SMichael Walle eee-broken-100tx; 88815364d0SMichael Walle }; 89815364d0SMichael Walle}; 9067833805SMichael Walle 9167833805SMichael Walle&enetc_port0 { 9267833805SMichael Walle phy-handle = <&phy0>; 93caa355c5SMichael Walle phy-mode = "sgmii"; 9467833805SMichael Walle managed = "in-band-status"; 95*06b944f4SMichael Walle nvmem-cells = <&base_mac_address 0>; 96*06b944f4SMichael Walle nvmem-cell-names = "mac-address"; 9767833805SMichael Walle status = "okay"; 98815364d0SMichael Walle}; 99815364d0SMichael Walle 100815364d0SMichael Walle&esdhc { 101815364d0SMichael Walle sd-uhs-sdr104; 102815364d0SMichael Walle sd-uhs-sdr50; 103815364d0SMichael Walle sd-uhs-sdr25; 104815364d0SMichael Walle sd-uhs-sdr12; 105815364d0SMichael Walle status = "okay"; 106815364d0SMichael Walle}; 107815364d0SMichael Walle 108815364d0SMichael Walle&esdhc1 { 109815364d0SMichael Walle mmc-hs200-1_8v; 110815364d0SMichael Walle mmc-hs400-1_8v; 111815364d0SMichael Walle bus-width = <8>; 112815364d0SMichael Walle status = "okay"; 113815364d0SMichael Walle}; 114815364d0SMichael Walle 115815364d0SMichael Walle&fspi { 116815364d0SMichael Walle status = "okay"; 117815364d0SMichael Walle 118815364d0SMichael Walle flash@0 { 119815364d0SMichael Walle compatible = "jedec,spi-nor"; 120815364d0SMichael Walle m25p,fast-read; 121815364d0SMichael Walle spi-max-frequency = <133000000>; 122815364d0SMichael Walle reg = <0>; 123815364d0SMichael Walle /* The following setting enables 1-1-2 (CMD-ADDR-DATA) mode */ 124815364d0SMichael Walle spi-rx-bus-width = <2>; /* 2 SPI Rx lines */ 125815364d0SMichael Walle spi-tx-bus-width = <1>; /* 1 SPI Tx line */ 126815364d0SMichael Walle 127aa494330SMichael Walle partitions { 128aa494330SMichael Walle compatible = "fixed-partitions"; 129aa494330SMichael Walle #address-cells = <1>; 130aa494330SMichael Walle #size-cells = <1>; 131aa494330SMichael Walle 132815364d0SMichael Walle partition@0 { 133815364d0SMichael Walle reg = <0x000000 0x010000>; 134815364d0SMichael Walle label = "rcw"; 135815364d0SMichael Walle read-only; 136815364d0SMichael Walle }; 137815364d0SMichael Walle 138815364d0SMichael Walle partition@10000 { 139b3535535SMichael Walle reg = <0x010000 0x1d0000>; 140815364d0SMichael Walle label = "failsafe bootloader"; 141815364d0SMichael Walle read-only; 142815364d0SMichael Walle }; 143815364d0SMichael Walle 144815364d0SMichael Walle partition@200000 { 145815364d0SMichael Walle reg = <0x200000 0x010000>; 146815364d0SMichael Walle label = "configuration store"; 147815364d0SMichael Walle }; 148815364d0SMichael Walle 149815364d0SMichael Walle partition@210000 { 15091ab1c12SMichael Walle reg = <0x210000 0x1d0000>; 151815364d0SMichael Walle label = "bootloader"; 152815364d0SMichael Walle }; 153815364d0SMichael Walle 154815364d0SMichael Walle partition@3e0000 { 155815364d0SMichael Walle reg = <0x3e0000 0x020000>; 156815364d0SMichael Walle label = "bootloader environment"; 157815364d0SMichael Walle }; 158815364d0SMichael Walle }; 159*06b944f4SMichael Walle 160*06b944f4SMichael Walle otp-1 { 161*06b944f4SMichael Walle compatible = "user-otp"; 162*06b944f4SMichael Walle 163*06b944f4SMichael Walle nvmem-layout { 164*06b944f4SMichael Walle compatible = "kontron,sl28-vpd"; 165*06b944f4SMichael Walle 166*06b944f4SMichael Walle serial_number: serial-number { 167*06b944f4SMichael Walle }; 168*06b944f4SMichael Walle 169*06b944f4SMichael Walle base_mac_address: base-mac-address { 170*06b944f4SMichael Walle #nvmem-cell-cells = <1>; 171*06b944f4SMichael Walle }; 172*06b944f4SMichael Walle }; 173*06b944f4SMichael Walle }; 174815364d0SMichael Walle }; 175aa494330SMichael Walle}; 176815364d0SMichael Walle 177ff3cfc35SMichael Walle&ftm_alarm0 { 178ff3cfc35SMichael Walle status = "okay"; 179ff3cfc35SMichael Walle}; 180ff3cfc35SMichael Walle 181815364d0SMichael Walle&gpio1 { 182815364d0SMichael Walle gpio-line-names = 183815364d0SMichael Walle "", "", "", "", "", "", "", "", 184815364d0SMichael Walle "", "", "", "", "", "", "", "", 185815364d0SMichael Walle "", "", "", "", "", "", "TDO", "TCK", 186815364d0SMichael Walle "", "", "", "", "", "", "", ""; 187815364d0SMichael Walle}; 188815364d0SMichael Walle 189815364d0SMichael Walle&gpio2 { 190815364d0SMichael Walle gpio-line-names = 191815364d0SMichael Walle "", "", "", "", "", "", "TMS", "TDI", 192815364d0SMichael Walle "", "", "", "", "", "", "", "", 193815364d0SMichael Walle "", "", "", "", "", "", "", "", 194815364d0SMichael Walle "", "", "", "", "", "", "", ""; 195815364d0SMichael Walle}; 196815364d0SMichael Walle 197815364d0SMichael Walle&i2c0 { 198815364d0SMichael Walle status = "okay"; 199815364d0SMichael Walle 20051c8eaa1SMichael Walle rtc: rtc@32 { 201815364d0SMichael Walle compatible = "microcrystal,rv8803"; 202815364d0SMichael Walle reg = <0x32>; 203815364d0SMichael Walle }; 204815364d0SMichael Walle 205c86e4202SMichael Walle sl28cpld@4a { 206c86e4202SMichael Walle compatible = "kontron,sl28cpld"; 207c86e4202SMichael Walle reg = <0x4a>; 208c86e4202SMichael Walle #address-cells = <1>; 209c86e4202SMichael Walle #size-cells = <0>; 210c86e4202SMichael Walle 211c86e4202SMichael Walle watchdog@4 { 212c86e4202SMichael Walle compatible = "kontron,sl28cpld-wdt"; 213c86e4202SMichael Walle reg = <0x4>; 214c86e4202SMichael Walle kontron,assert-wdt-timeout-pin; 215c86e4202SMichael Walle }; 216c86e4202SMichael Walle 217c86e4202SMichael Walle hwmon@b { 218c86e4202SMichael Walle compatible = "kontron,sl28cpld-fan"; 219c86e4202SMichael Walle reg = <0xb>; 220c86e4202SMichael Walle }; 221c86e4202SMichael Walle 222c86e4202SMichael Walle sl28cpld_pwm0: pwm@c { 223c86e4202SMichael Walle compatible = "kontron,sl28cpld-pwm"; 224c86e4202SMichael Walle reg = <0xc>; 225c86e4202SMichael Walle #pwm-cells = <2>; 226c86e4202SMichael Walle }; 227c86e4202SMichael Walle 228c86e4202SMichael Walle sl28cpld_pwm1: pwm@e { 229c86e4202SMichael Walle compatible = "kontron,sl28cpld-pwm"; 230c86e4202SMichael Walle reg = <0xe>; 231c86e4202SMichael Walle #pwm-cells = <2>; 232c86e4202SMichael Walle }; 233c86e4202SMichael Walle 234c86e4202SMichael Walle sl28cpld_gpio0: gpio@10 { 235c86e4202SMichael Walle compatible = "kontron,sl28cpld-gpio"; 236c86e4202SMichael Walle reg = <0x10>; 237c86e4202SMichael Walle interrupts-extended = <&gpio2 6 238c86e4202SMichael Walle IRQ_TYPE_EDGE_FALLING>; 239c86e4202SMichael Walle 240c86e4202SMichael Walle gpio-controller; 241c86e4202SMichael Walle #gpio-cells = <2>; 242c86e4202SMichael Walle gpio-line-names = 243c86e4202SMichael Walle "GPIO0_CAM0_PWR_N", "GPIO1_CAM1_PWR_N", 244c86e4202SMichael Walle "GPIO2_CAM0_RST_N", "GPIO3_CAM1_RST_N", 245c86e4202SMichael Walle "GPIO4_HDA_RST_N", "GPIO5_PWM_OUT", 246c86e4202SMichael Walle "GPIO6_TACHIN", "GPIO7"; 247c86e4202SMichael Walle 248c86e4202SMichael Walle interrupt-controller; 249c86e4202SMichael Walle #interrupt-cells = <2>; 250c86e4202SMichael Walle }; 251c86e4202SMichael Walle 252c86e4202SMichael Walle sl28cpld_gpio1: gpio@15 { 253c86e4202SMichael Walle compatible = "kontron,sl28cpld-gpio"; 254c86e4202SMichael Walle reg = <0x15>; 255c86e4202SMichael Walle interrupts-extended = <&gpio2 6 256c86e4202SMichael Walle IRQ_TYPE_EDGE_FALLING>; 257c86e4202SMichael Walle 258c86e4202SMichael Walle gpio-controller; 259c86e4202SMichael Walle #gpio-cells = <2>; 260c86e4202SMichael Walle gpio-line-names = 261c86e4202SMichael Walle "GPIO8", "GPIO9", "GPIO10", "GPIO11", 262c86e4202SMichael Walle "", "", "", ""; 263c86e4202SMichael Walle 264c86e4202SMichael Walle interrupt-controller; 265c86e4202SMichael Walle #interrupt-cells = <2>; 266c86e4202SMichael Walle }; 267c86e4202SMichael Walle 268c86e4202SMichael Walle sl28cpld_gpio2: gpio@1a { 269c86e4202SMichael Walle compatible = "kontron,sl28cpld-gpo"; 270c86e4202SMichael Walle reg = <0x1a>; 271c86e4202SMichael Walle 272c86e4202SMichael Walle gpio-controller; 273c86e4202SMichael Walle #gpio-cells = <2>; 274c86e4202SMichael Walle gpio-line-names = 275c86e4202SMichael Walle "LCD0 voltage enable", 276c86e4202SMichael Walle "LCD0 backlight enable", 277c86e4202SMichael Walle "eMMC reset", "LVDS bridge reset", 278c86e4202SMichael Walle "LVDS bridge power-down", 279c86e4202SMichael Walle "SDIO power enable", 280c86e4202SMichael Walle "", ""; 281c86e4202SMichael Walle }; 282c86e4202SMichael Walle 283c86e4202SMichael Walle sl28cpld_gpio3: gpio@1b { 284c86e4202SMichael Walle compatible = "kontron,sl28cpld-gpi"; 285c86e4202SMichael Walle reg = <0x1b>; 286c86e4202SMichael Walle 287c86e4202SMichael Walle gpio-controller; 288c86e4202SMichael Walle #gpio-cells = <2>; 289c86e4202SMichael Walle gpio-line-names = 290c86e4202SMichael Walle "Power button", "Force recovery", "Sleep", 291c86e4202SMichael Walle "Battery low", "Lid state", "Charging", 292c86e4202SMichael Walle "Charger present", ""; 293c86e4202SMichael Walle }; 294c86e4202SMichael Walle 295c86e4202SMichael Walle sl28cpld_intc: interrupt-controller@1c { 296c86e4202SMichael Walle compatible = "kontron,sl28cpld-intc"; 297c86e4202SMichael Walle reg = <0x1c>; 298c86e4202SMichael Walle interrupts-extended = <&gpio2 6 299c86e4202SMichael Walle IRQ_TYPE_EDGE_FALLING>; 300c86e4202SMichael Walle 301c86e4202SMichael Walle interrupt-controller; 302c86e4202SMichael Walle #interrupt-cells = <2>; 303c86e4202SMichael Walle }; 304c86e4202SMichael Walle }; 305c86e4202SMichael Walle 306815364d0SMichael Walle eeprom@50 { 307815364d0SMichael Walle compatible = "atmel,24c32"; 308815364d0SMichael Walle reg = <0x50>; 309815364d0SMichael Walle pagesize = <32>; 310815364d0SMichael Walle }; 311815364d0SMichael Walle}; 312815364d0SMichael Walle 313815364d0SMichael Walle&i2c3 { 314815364d0SMichael Walle status = "okay"; 315815364d0SMichael Walle}; 316815364d0SMichael Walle 317815364d0SMichael Walle&i2c4 { 318815364d0SMichael Walle status = "okay"; 319f05cd1c2SMichael Walle 320f05cd1c2SMichael Walle eeprom@50 { 321f05cd1c2SMichael Walle compatible = "atmel,24c32"; 322f05cd1c2SMichael Walle reg = <0x50>; 323f05cd1c2SMichael Walle pagesize = <32>; 324f05cd1c2SMichael Walle }; 325815364d0SMichael Walle}; 326a0a44420SMichael Walle 327a0a44420SMichael Walle&lpuart1 { 328a0a44420SMichael Walle status = "okay"; 329a0a44420SMichael Walle}; 33070293beaSMichael Walle 331be0b178cSMichael Walle&mscc_felix_port4 { 332be0b178cSMichael Walle dsa-tag-protocol = "ocelot-8021q"; 333be0b178cSMichael Walle}; 334be0b178cSMichael Walle 335be0b178cSMichael Walle&mscc_felix_port5 { 336be0b178cSMichael Walle dsa-tag-protocol = "ocelot-8021q"; 337be0b178cSMichael Walle}; 338be0b178cSMichael Walle 33970293beaSMichael Walle&usb0 { 34070293beaSMichael Walle status = "okay"; 34170293beaSMichael Walle}; 34270293beaSMichael Walle 34370293beaSMichael Walle&usb1 { 34473d901d6SMichael Walle dr_mode = "host"; 34570293beaSMichael Walle status = "okay"; 34670293beaSMichael Walle}; 347