| // SPDX-License-Identifier: GPL-2.0+ |
| /* |
| * Device Tree file for the Kontron SMARC-sAL28 board. |
| * |
| * Copyright (C) 2021 Michael Walle <michael@walle.cc> |
| * |
| */ |
| |
| /dts-v1/; |
| #include "fsl-ls1028a.dtsi" |
| #include <dt-bindings/interrupt-controller/irq.h> |
| #include <dt-bindings/gpio/gpio.h> |
| #include <dt-bindings/input/input.h> |
| |
| / { |
| model = "Kontron SMARC-sAL28"; |
| compatible = "kontron,sl28", "fsl,ls1028a"; |
| |
| aliases { |
| crypto = &crypto; |
| serial0 = &duart0; |
| serial1 = &duart1; |
| serial2 = &lpuart1; |
| spi0 = &fspi; |
| spi1 = &dspi2; |
| mmc0 = &esdhc1; |
| mmc1 = &esdhc; |
| rtc0 = &rtc; |
| rtc1 = &ftm_alarm0; |
| }; |
| |
| buttons0 { |
| compatible = "gpio-keys"; |
| |
| power-button { |
| interrupts-extended = <&sl28cpld_intc |
| 4 IRQ_TYPE_EDGE_BOTH>; |
| linux,code = <KEY_POWER>; |
| label = "Power"; |
| }; |
| |
| sleep-button { |
| interrupts-extended = <&sl28cpld_intc |
| 5 IRQ_TYPE_EDGE_BOTH>; |
| linux,code = <KEY_SLEEP>; |
| label = "Sleep"; |
| }; |
| }; |
| |
| buttons1 { |
| compatible = "gpio-keys-polled"; |
| poll-interval = <200>; |
| |
| lid-switch { |
| linux,input-type = <EV_SW>; |
| linux,code = <SW_LID>; |
| gpios = <&sl28cpld_gpio3 4 GPIO_ACTIVE_LOW>; |
| label = "Lid"; |
| }; |
| }; |
| |
| chosen { |
| stdout-path = "serial0:115200n8"; |
| }; |
| }; |
| |
| &can0 { |
| status = "okay"; |
| }; |
| |
| &dspi2 { |
| status = "okay"; |
| }; |
| |
| &duart0 { |
| status = "okay"; |
| }; |
| |
| &duart1 { |
| status = "okay"; |
| }; |
| |
| &enetc_mdio_pf3 { |
| phy0: ethernet-phy@5 { |
| reg = <0x5>; |
| eee-broken-1000t; |
| eee-broken-100tx; |
| }; |
| }; |
| |
| &enetc_port0 { |
| phy-handle = <&phy0>; |
| phy-mode = "sgmii"; |
| managed = "in-band-status"; |
| status = "okay"; |
| }; |
| |
| &esdhc { |
| sd-uhs-sdr104; |
| sd-uhs-sdr50; |
| sd-uhs-sdr25; |
| sd-uhs-sdr12; |
| status = "okay"; |
| }; |
| |
| &esdhc1 { |
| mmc-hs200-1_8v; |
| mmc-hs400-1_8v; |
| bus-width = <8>; |
| status = "okay"; |
| }; |
| |
| &fspi { |
| status = "okay"; |
| |
| flash@0 { |
| compatible = "jedec,spi-nor"; |
| m25p,fast-read; |
| spi-max-frequency = <133000000>; |
| reg = <0>; |
| /* The following setting enables 1-1-2 (CMD-ADDR-DATA) mode */ |
| spi-rx-bus-width = <2>; /* 2 SPI Rx lines */ |
| spi-tx-bus-width = <1>; /* 1 SPI Tx line */ |
| |
| partitions { |
| compatible = "fixed-partitions"; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| |
| partition@0 { |
| reg = <0x000000 0x010000>; |
| label = "rcw"; |
| read-only; |
| }; |
| |
| partition@10000 { |
| reg = <0x010000 0x1d0000>; |
| label = "failsafe bootloader"; |
| read-only; |
| }; |
| |
| partition@200000 { |
| reg = <0x200000 0x010000>; |
| label = "configuration store"; |
| }; |
| |
| partition@210000 { |
| reg = <0x210000 0x1d0000>; |
| label = "bootloader"; |
| }; |
| |
| partition@3e0000 { |
| reg = <0x3e0000 0x020000>; |
| label = "bootloader environment"; |
| }; |
| }; |
| }; |
| }; |
| |
| &ftm_alarm0 { |
| status = "okay"; |
| }; |
| |
| &gpio1 { |
| gpio-line-names = |
| "", "", "", "", "", "", "", "", |
| "", "", "", "", "", "", "", "", |
| "", "", "", "", "", "", "TDO", "TCK", |
| "", "", "", "", "", "", "", ""; |
| }; |
| |
| &gpio2 { |
| gpio-line-names = |
| "", "", "", "", "", "", "TMS", "TDI", |
| "", "", "", "", "", "", "", "", |
| "", "", "", "", "", "", "", "", |
| "", "", "", "", "", "", "", ""; |
| }; |
| |
| &i2c0 { |
| status = "okay"; |
| |
| rtc: rtc@32 { |
| compatible = "microcrystal,rv8803"; |
| reg = <0x32>; |
| }; |
| |
| sl28cpld@4a { |
| compatible = "kontron,sl28cpld"; |
| reg = <0x4a>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| watchdog@4 { |
| compatible = "kontron,sl28cpld-wdt"; |
| reg = <0x4>; |
| kontron,assert-wdt-timeout-pin; |
| }; |
| |
| hwmon@b { |
| compatible = "kontron,sl28cpld-fan"; |
| reg = <0xb>; |
| }; |
| |
| sl28cpld_pwm0: pwm@c { |
| compatible = "kontron,sl28cpld-pwm"; |
| reg = <0xc>; |
| #pwm-cells = <2>; |
| }; |
| |
| sl28cpld_pwm1: pwm@e { |
| compatible = "kontron,sl28cpld-pwm"; |
| reg = <0xe>; |
| #pwm-cells = <2>; |
| }; |
| |
| sl28cpld_gpio0: gpio@10 { |
| compatible = "kontron,sl28cpld-gpio"; |
| reg = <0x10>; |
| interrupts-extended = <&gpio2 6 |
| IRQ_TYPE_EDGE_FALLING>; |
| |
| gpio-controller; |
| #gpio-cells = <2>; |
| gpio-line-names = |
| "GPIO0_CAM0_PWR_N", "GPIO1_CAM1_PWR_N", |
| "GPIO2_CAM0_RST_N", "GPIO3_CAM1_RST_N", |
| "GPIO4_HDA_RST_N", "GPIO5_PWM_OUT", |
| "GPIO6_TACHIN", "GPIO7"; |
| |
| interrupt-controller; |
| #interrupt-cells = <2>; |
| }; |
| |
| sl28cpld_gpio1: gpio@15 { |
| compatible = "kontron,sl28cpld-gpio"; |
| reg = <0x15>; |
| interrupts-extended = <&gpio2 6 |
| IRQ_TYPE_EDGE_FALLING>; |
| |
| gpio-controller; |
| #gpio-cells = <2>; |
| gpio-line-names = |
| "GPIO8", "GPIO9", "GPIO10", "GPIO11", |
| "", "", "", ""; |
| |
| interrupt-controller; |
| #interrupt-cells = <2>; |
| }; |
| |
| sl28cpld_gpio2: gpio@1a { |
| compatible = "kontron,sl28cpld-gpo"; |
| reg = <0x1a>; |
| |
| gpio-controller; |
| #gpio-cells = <2>; |
| gpio-line-names = |
| "LCD0 voltage enable", |
| "LCD0 backlight enable", |
| "eMMC reset", "LVDS bridge reset", |
| "LVDS bridge power-down", |
| "SDIO power enable", |
| "", ""; |
| }; |
| |
| sl28cpld_gpio3: gpio@1b { |
| compatible = "kontron,sl28cpld-gpi"; |
| reg = <0x1b>; |
| |
| gpio-controller; |
| #gpio-cells = <2>; |
| gpio-line-names = |
| "Power button", "Force recovery", "Sleep", |
| "Battery low", "Lid state", "Charging", |
| "Charger present", ""; |
| }; |
| |
| sl28cpld_intc: interrupt-controller@1c { |
| compatible = "kontron,sl28cpld-intc"; |
| reg = <0x1c>; |
| interrupts-extended = <&gpio2 6 |
| IRQ_TYPE_EDGE_FALLING>; |
| |
| interrupt-controller; |
| #interrupt-cells = <2>; |
| }; |
| }; |
| |
| eeprom@50 { |
| compatible = "atmel,24c32"; |
| reg = <0x50>; |
| pagesize = <32>; |
| }; |
| }; |
| |
| &i2c3 { |
| status = "okay"; |
| }; |
| |
| &i2c4 { |
| status = "okay"; |
| |
| eeprom@50 { |
| compatible = "atmel,24c32"; |
| reg = <0x50>; |
| pagesize = <32>; |
| }; |
| }; |
| |
| &lpuart1 { |
| status = "okay"; |
| }; |
| |
| &usb0 { |
| status = "okay"; |
| }; |
| |
| &usb1 { |
| status = "okay"; |
| }; |