1// SPDX-License-Identifier: GPL-2.0+ 2/* 3 * Device Tree file for the Kontron SMARC-sAL28 board. 4 * 5 * Copyright (C) 2019 Michael Walle <michael@walle.cc> 6 * 7 */ 8 9/dts-v1/; 10#include "fsl-ls1028a.dtsi" 11#include <dt-bindings/interrupt-controller/irq.h> 12#include <dt-bindings/gpio/gpio.h> 13#include <dt-bindings/input/input.h> 14 15/ { 16 model = "Kontron SMARC-sAL28"; 17 compatible = "kontron,sl28", "fsl,ls1028a"; 18 19 aliases { 20 crypto = &crypto; 21 serial0 = &duart0; 22 serial1 = &duart1; 23 serial2 = &lpuart1; 24 spi0 = &fspi; 25 spi1 = &dspi2; 26 mmc0 = &esdhc1; 27 mmc1 = &esdhc; 28 }; 29 30 buttons0 { 31 compatible = "gpio-keys"; 32 33 power-button { 34 interrupts-extended = <&sl28cpld_intc 35 4 IRQ_TYPE_EDGE_BOTH>; 36 linux,code = <KEY_POWER>; 37 label = "Power"; 38 }; 39 40 sleep-button { 41 interrupts-extended = <&sl28cpld_intc 42 5 IRQ_TYPE_EDGE_BOTH>; 43 linux,code = <KEY_SLEEP>; 44 label = "Sleep"; 45 }; 46 }; 47 48 buttons1 { 49 compatible = "gpio-keys-polled"; 50 poll-interval = <200>; 51 52 lid-switch { 53 linux,input-type = <EV_SW>; 54 linux,code = <SW_LID>; 55 gpios = <&sl28cpld_gpio3 4 GPIO_ACTIVE_LOW>; 56 label = "Lid"; 57 }; 58 }; 59 60 chosen { 61 stdout-path = "serial0:115200n8"; 62 }; 63}; 64 65&can0 { 66 status = "okay"; 67}; 68 69&dspi2 { 70 status = "okay"; 71}; 72 73&duart0 { 74 status = "okay"; 75}; 76 77&duart1 { 78 status = "okay"; 79}; 80 81&enetc_port0 { 82 phy-handle = <&phy0>; 83 phy-connection-type = "sgmii"; 84 managed = "in-band-status"; 85 status = "okay"; 86 87 mdio { 88 #address-cells = <1>; 89 #size-cells = <0>; 90 91 phy0: ethernet-phy@5 { 92 reg = <0x5>; 93 eee-broken-1000t; 94 eee-broken-100tx; 95 }; 96 }; 97}; 98 99&esdhc { 100 sd-uhs-sdr104; 101 sd-uhs-sdr50; 102 sd-uhs-sdr25; 103 sd-uhs-sdr12; 104 status = "okay"; 105}; 106 107&esdhc1 { 108 mmc-hs200-1_8v; 109 mmc-hs400-1_8v; 110 bus-width = <8>; 111 status = "okay"; 112}; 113 114&fspi { 115 status = "okay"; 116 117 flash@0 { 118 #address-cells = <1>; 119 #size-cells = <1>; 120 compatible = "jedec,spi-nor"; 121 m25p,fast-read; 122 spi-max-frequency = <133000000>; 123 reg = <0>; 124 /* The following setting enables 1-1-2 (CMD-ADDR-DATA) mode */ 125 spi-rx-bus-width = <2>; /* 2 SPI Rx lines */ 126 spi-tx-bus-width = <1>; /* 1 SPI Tx line */ 127 128 partition@0 { 129 reg = <0x000000 0x010000>; 130 label = "rcw"; 131 read-only; 132 }; 133 134 partition@10000 { 135 reg = <0x010000 0x0f0000>; 136 label = "failsafe bootloader"; 137 read-only; 138 }; 139 140 partition@100000 { 141 reg = <0x100000 0x040000>; 142 label = "failsafe DP firmware"; 143 read-only; 144 }; 145 146 partition@140000 { 147 reg = <0x140000 0x0a0000>; 148 label = "failsafe trusted firmware"; 149 read-only; 150 }; 151 152 partition@1e0000 { 153 reg = <0x1e0000 0x020000>; 154 label = "reserved"; 155 read-only; 156 }; 157 158 partition@200000 { 159 reg = <0x200000 0x010000>; 160 label = "configuration store"; 161 }; 162 163 partition@210000 { 164 reg = <0x210000 0x1d0000>; 165 label = "bootloader"; 166 }; 167 168 partition@3e0000 { 169 reg = <0x3e0000 0x020000>; 170 label = "bootloader environment"; 171 }; 172 }; 173}; 174 175&gpio1 { 176 gpio-line-names = 177 "", "", "", "", "", "", "", "", 178 "", "", "", "", "", "", "", "", 179 "", "", "", "", "", "", "TDO", "TCK", 180 "", "", "", "", "", "", "", ""; 181}; 182 183&gpio2 { 184 gpio-line-names = 185 "", "", "", "", "", "", "TMS", "TDI", 186 "", "", "", "", "", "", "", "", 187 "", "", "", "", "", "", "", "", 188 "", "", "", "", "", "", "", ""; 189}; 190 191&i2c0 { 192 status = "okay"; 193 194 rtc@32 { 195 compatible = "microcrystal,rv8803"; 196 reg = <0x32>; 197 }; 198 199 sl28cpld@4a { 200 compatible = "kontron,sl28cpld"; 201 reg = <0x4a>; 202 #address-cells = <1>; 203 #size-cells = <0>; 204 205 watchdog@4 { 206 compatible = "kontron,sl28cpld-wdt"; 207 reg = <0x4>; 208 kontron,assert-wdt-timeout-pin; 209 }; 210 211 hwmon@b { 212 compatible = "kontron,sl28cpld-fan"; 213 reg = <0xb>; 214 }; 215 216 sl28cpld_pwm0: pwm@c { 217 compatible = "kontron,sl28cpld-pwm"; 218 reg = <0xc>; 219 #pwm-cells = <2>; 220 }; 221 222 sl28cpld_pwm1: pwm@e { 223 compatible = "kontron,sl28cpld-pwm"; 224 reg = <0xe>; 225 #pwm-cells = <2>; 226 }; 227 228 sl28cpld_gpio0: gpio@10 { 229 compatible = "kontron,sl28cpld-gpio"; 230 reg = <0x10>; 231 interrupts-extended = <&gpio2 6 232 IRQ_TYPE_EDGE_FALLING>; 233 234 gpio-controller; 235 #gpio-cells = <2>; 236 gpio-line-names = 237 "GPIO0_CAM0_PWR_N", "GPIO1_CAM1_PWR_N", 238 "GPIO2_CAM0_RST_N", "GPIO3_CAM1_RST_N", 239 "GPIO4_HDA_RST_N", "GPIO5_PWM_OUT", 240 "GPIO6_TACHIN", "GPIO7"; 241 242 interrupt-controller; 243 #interrupt-cells = <2>; 244 }; 245 246 sl28cpld_gpio1: gpio@15 { 247 compatible = "kontron,sl28cpld-gpio"; 248 reg = <0x15>; 249 interrupts-extended = <&gpio2 6 250 IRQ_TYPE_EDGE_FALLING>; 251 252 gpio-controller; 253 #gpio-cells = <2>; 254 gpio-line-names = 255 "GPIO8", "GPIO9", "GPIO10", "GPIO11", 256 "", "", "", ""; 257 258 interrupt-controller; 259 #interrupt-cells = <2>; 260 }; 261 262 sl28cpld_gpio2: gpio@1a { 263 compatible = "kontron,sl28cpld-gpo"; 264 reg = <0x1a>; 265 266 gpio-controller; 267 #gpio-cells = <2>; 268 gpio-line-names = 269 "LCD0 voltage enable", 270 "LCD0 backlight enable", 271 "eMMC reset", "LVDS bridge reset", 272 "LVDS bridge power-down", 273 "SDIO power enable", 274 "", ""; 275 }; 276 277 sl28cpld_gpio3: gpio@1b { 278 compatible = "kontron,sl28cpld-gpi"; 279 reg = <0x1b>; 280 281 gpio-controller; 282 #gpio-cells = <2>; 283 gpio-line-names = 284 "Power button", "Force recovery", "Sleep", 285 "Battery low", "Lid state", "Charging", 286 "Charger present", ""; 287 }; 288 289 sl28cpld_intc: interrupt-controller@1c { 290 compatible = "kontron,sl28cpld-intc"; 291 reg = <0x1c>; 292 interrupts-extended = <&gpio2 6 293 IRQ_TYPE_EDGE_FALLING>; 294 295 interrupt-controller; 296 #interrupt-cells = <2>; 297 }; 298 }; 299 300 eeprom@50 { 301 compatible = "atmel,24c32"; 302 reg = <0x50>; 303 pagesize = <32>; 304 }; 305}; 306 307&i2c3 { 308 status = "okay"; 309}; 310 311&i2c4 { 312 status = "okay"; 313 314 eeprom@50 { 315 compatible = "atmel,24c32"; 316 reg = <0x50>; 317 pagesize = <32>; 318 }; 319}; 320 321&lpuart1 { 322 status = "okay"; 323}; 324