162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0+ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Turris 1.x Device Tree Source 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright 2013 - 2022 CZ.NIC z.s.p.o. (http://www.nic.cz/) 662306a36Sopenharmony_ci * 762306a36Sopenharmony_ci * Pinout, Schematics and Altium hardware design files are open source 862306a36Sopenharmony_ci * and available at: https://docs.turris.cz/hw/turris-1x/turris-1x/ 962306a36Sopenharmony_ci */ 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci#include <dt-bindings/gpio/gpio.h> 1262306a36Sopenharmony_ci#include <dt-bindings/interrupt-controller/irq.h> 1362306a36Sopenharmony_ci#include <dt-bindings/leds/common.h> 1462306a36Sopenharmony_ci/include/ "fsl/p2020si-pre.dtsi" 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci/ { 1762306a36Sopenharmony_ci model = "Turris 1.x"; 1862306a36Sopenharmony_ci compatible = "cznic,turris1x"; 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci aliases { 2162306a36Sopenharmony_ci ethernet0 = &enet0; 2262306a36Sopenharmony_ci ethernet1 = &enet1; 2362306a36Sopenharmony_ci ethernet2 = &enet2; 2462306a36Sopenharmony_ci serial0 = &serial0; 2562306a36Sopenharmony_ci serial1 = &serial1; 2662306a36Sopenharmony_ci pci0 = &pci0; 2762306a36Sopenharmony_ci pci1 = &pci1; 2862306a36Sopenharmony_ci pci2 = &pci2; 2962306a36Sopenharmony_ci spi0 = &spi0; 3062306a36Sopenharmony_ci }; 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci memory { 3362306a36Sopenharmony_ci device_type = "memory"; 3462306a36Sopenharmony_ci }; 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci soc: soc@ffe00000 { 3762306a36Sopenharmony_ci ranges = <0x0 0x0 0xffe00000 0x00100000>; 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci i2c@3000 { 4062306a36Sopenharmony_ci /* PCA9557PW GPIO controller for boot config */ 4162306a36Sopenharmony_ci gpio-controller@18 { 4262306a36Sopenharmony_ci compatible = "nxp,pca9557"; 4362306a36Sopenharmony_ci label = "bootcfg"; 4462306a36Sopenharmony_ci reg = <0x18>; 4562306a36Sopenharmony_ci #gpio-cells = <2>; 4662306a36Sopenharmony_ci gpio-controller; 4762306a36Sopenharmony_ci polarity = <0x00>; 4862306a36Sopenharmony_ci }; 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci /* STM32F030R8T6 MCU for power control */ 5162306a36Sopenharmony_ci power-control@2a { 5262306a36Sopenharmony_ci /* 5362306a36Sopenharmony_ci * Turris Power Control firmware runs on STM32F0 MCU. 5462306a36Sopenharmony_ci * This firmware is open source and available at: 5562306a36Sopenharmony_ci * https://gitlab.nic.cz/turris/hw/turris_power_control 5662306a36Sopenharmony_ci */ 5762306a36Sopenharmony_ci reg = <0x2a>; 5862306a36Sopenharmony_ci }; 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ci /* DDR3 SPD/EEPROM PSWP instruction */ 6162306a36Sopenharmony_ci eeprom@32 { 6262306a36Sopenharmony_ci reg = <0x32>; 6362306a36Sopenharmony_ci }; 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ci /* SA56004ED temperature control */ 6662306a36Sopenharmony_ci temperature-sensor@4c { 6762306a36Sopenharmony_ci compatible = "nxp,sa56004"; 6862306a36Sopenharmony_ci reg = <0x4c>; 6962306a36Sopenharmony_ci interrupt-parent = <&gpio>; 7062306a36Sopenharmony_ci interrupts = <12 IRQ_TYPE_LEVEL_LOW>, /* GPIO12 - ALERT pin */ 7162306a36Sopenharmony_ci <13 IRQ_TYPE_LEVEL_LOW>; /* GPIO13 - CRIT pin */ 7262306a36Sopenharmony_ci #address-cells = <1>; 7362306a36Sopenharmony_ci #size-cells = <0>; 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ci /* Local temperature sensor (SA56004ED internal) */ 7662306a36Sopenharmony_ci channel@0 { 7762306a36Sopenharmony_ci reg = <0>; 7862306a36Sopenharmony_ci label = "board"; 7962306a36Sopenharmony_ci }; 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ci /* Remote temperature sensor (D+/D- connected to P2020 CPU Temperature Diode) */ 8262306a36Sopenharmony_ci channel@1 { 8362306a36Sopenharmony_ci reg = <1>; 8462306a36Sopenharmony_ci label = "cpu"; 8562306a36Sopenharmony_ci }; 8662306a36Sopenharmony_ci }; 8762306a36Sopenharmony_ci 8862306a36Sopenharmony_ci /* DDR3 SPD/EEPROM */ 8962306a36Sopenharmony_ci eeprom@52 { 9062306a36Sopenharmony_ci compatible = "atmel,spd"; 9162306a36Sopenharmony_ci reg = <0x52>; 9262306a36Sopenharmony_ci }; 9362306a36Sopenharmony_ci 9462306a36Sopenharmony_ci /* MCP79402-I/ST Protected EEPROM */ 9562306a36Sopenharmony_ci eeprom@57 { 9662306a36Sopenharmony_ci reg = <0x57>; 9762306a36Sopenharmony_ci }; 9862306a36Sopenharmony_ci 9962306a36Sopenharmony_ci /* ATSHA204-TH-DA-T crypto module */ 10062306a36Sopenharmony_ci crypto@64 { 10162306a36Sopenharmony_ci compatible = "atmel,atsha204"; 10262306a36Sopenharmony_ci reg = <0x64>; 10362306a36Sopenharmony_ci }; 10462306a36Sopenharmony_ci 10562306a36Sopenharmony_ci /* IDT6V49205BNLGI clock generator */ 10662306a36Sopenharmony_ci clock-generator@69 { 10762306a36Sopenharmony_ci compatible = "idt,6v49205b"; 10862306a36Sopenharmony_ci reg = <0x69>; 10962306a36Sopenharmony_ci }; 11062306a36Sopenharmony_ci 11162306a36Sopenharmony_ci /* MCP79402-I/ST RTC */ 11262306a36Sopenharmony_ci rtc@6f { 11362306a36Sopenharmony_ci compatible = "microchip,mcp7940x"; 11462306a36Sopenharmony_ci reg = <0x6f>; 11562306a36Sopenharmony_ci interrupt-parent = <&gpio>; 11662306a36Sopenharmony_ci interrupts = <14 0>; /* GPIO14 - MFP pin */ 11762306a36Sopenharmony_ci }; 11862306a36Sopenharmony_ci }; 11962306a36Sopenharmony_ci 12062306a36Sopenharmony_ci /* SPI on connector P1 */ 12162306a36Sopenharmony_ci spi0: spi@7000 { 12262306a36Sopenharmony_ci }; 12362306a36Sopenharmony_ci 12462306a36Sopenharmony_ci gpio: gpio-controller@fc00 { 12562306a36Sopenharmony_ci #interrupt-cells = <2>; 12662306a36Sopenharmony_ci interrupt-controller; 12762306a36Sopenharmony_ci }; 12862306a36Sopenharmony_ci 12962306a36Sopenharmony_ci /* Connected to SMSC USB2412-DZK 2-Port USB 2.0 Hub Controller */ 13062306a36Sopenharmony_ci usb@22000 { 13162306a36Sopenharmony_ci phy_type = "ulpi"; 13262306a36Sopenharmony_ci dr_mode = "host"; 13362306a36Sopenharmony_ci }; 13462306a36Sopenharmony_ci 13562306a36Sopenharmony_ci enet0: ethernet@24000 { 13662306a36Sopenharmony_ci /* Connected to port 6 of QCA8337N-AL3C switch */ 13762306a36Sopenharmony_ci phy-connection-type = "rgmii-id"; 13862306a36Sopenharmony_ci 13962306a36Sopenharmony_ci fixed-link { 14062306a36Sopenharmony_ci speed = <1000>; 14162306a36Sopenharmony_ci full-duplex; 14262306a36Sopenharmony_ci }; 14362306a36Sopenharmony_ci }; 14462306a36Sopenharmony_ci 14562306a36Sopenharmony_ci mdio@24520 { 14662306a36Sopenharmony_ci /* KSZ9031RNXCA ethernet phy for WAN port */ 14762306a36Sopenharmony_ci phy: ethernet-phy@7 { 14862306a36Sopenharmony_ci interrupts = <3 1 0 0>; 14962306a36Sopenharmony_ci reg = <0x7>; 15062306a36Sopenharmony_ci }; 15162306a36Sopenharmony_ci 15262306a36Sopenharmony_ci /* QCA8337N-AL3C switch with integrated ethernet PHYs for LAN ports */ 15362306a36Sopenharmony_ci switch@10 { 15462306a36Sopenharmony_ci compatible = "qca,qca8337"; 15562306a36Sopenharmony_ci interrupts = <2 1 0 0>; 15662306a36Sopenharmony_ci reg = <0x10>; 15762306a36Sopenharmony_ci 15862306a36Sopenharmony_ci ports { 15962306a36Sopenharmony_ci #address-cells = <1>; 16062306a36Sopenharmony_ci #size-cells = <0>; 16162306a36Sopenharmony_ci 16262306a36Sopenharmony_ci port@0 { 16362306a36Sopenharmony_ci reg = <0>; 16462306a36Sopenharmony_ci label = "cpu"; 16562306a36Sopenharmony_ci ethernet = <&enet1>; 16662306a36Sopenharmony_ci phy-mode = "rgmii-id"; 16762306a36Sopenharmony_ci 16862306a36Sopenharmony_ci fixed-link { 16962306a36Sopenharmony_ci speed = <1000>; 17062306a36Sopenharmony_ci full-duplex; 17162306a36Sopenharmony_ci }; 17262306a36Sopenharmony_ci }; 17362306a36Sopenharmony_ci 17462306a36Sopenharmony_ci port@1 { 17562306a36Sopenharmony_ci reg = <1>; 17662306a36Sopenharmony_ci label = "lan5"; 17762306a36Sopenharmony_ci }; 17862306a36Sopenharmony_ci 17962306a36Sopenharmony_ci port@2 { 18062306a36Sopenharmony_ci reg = <2>; 18162306a36Sopenharmony_ci label = "lan4"; 18262306a36Sopenharmony_ci }; 18362306a36Sopenharmony_ci 18462306a36Sopenharmony_ci port@3 { 18562306a36Sopenharmony_ci reg = <3>; 18662306a36Sopenharmony_ci label = "lan3"; 18762306a36Sopenharmony_ci }; 18862306a36Sopenharmony_ci 18962306a36Sopenharmony_ci port@4 { 19062306a36Sopenharmony_ci reg = <4>; 19162306a36Sopenharmony_ci label = "lan2"; 19262306a36Sopenharmony_ci }; 19362306a36Sopenharmony_ci 19462306a36Sopenharmony_ci port@5 { 19562306a36Sopenharmony_ci reg = <5>; 19662306a36Sopenharmony_ci label = "lan1"; 19762306a36Sopenharmony_ci }; 19862306a36Sopenharmony_ci 19962306a36Sopenharmony_ci port@6 { 20062306a36Sopenharmony_ci reg = <6>; 20162306a36Sopenharmony_ci label = "cpu"; 20262306a36Sopenharmony_ci ethernet = <&enet0>; 20362306a36Sopenharmony_ci phy-mode = "rgmii-id"; 20462306a36Sopenharmony_ci 20562306a36Sopenharmony_ci fixed-link { 20662306a36Sopenharmony_ci speed = <1000>; 20762306a36Sopenharmony_ci full-duplex; 20862306a36Sopenharmony_ci }; 20962306a36Sopenharmony_ci }; 21062306a36Sopenharmony_ci }; 21162306a36Sopenharmony_ci }; 21262306a36Sopenharmony_ci }; 21362306a36Sopenharmony_ci 21462306a36Sopenharmony_ci ptp_clock@24e00 { 21562306a36Sopenharmony_ci fsl,tclk-period = <5>; 21662306a36Sopenharmony_ci fsl,tmr-prsc = <200>; 21762306a36Sopenharmony_ci fsl,tmr-add = <0xcccccccd>; 21862306a36Sopenharmony_ci fsl,tmr-fiper1 = <0x3b9ac9fb>; 21962306a36Sopenharmony_ci fsl,tmr-fiper2 = <0x0001869b>; 22062306a36Sopenharmony_ci fsl,max-adj = <249999999>; 22162306a36Sopenharmony_ci }; 22262306a36Sopenharmony_ci 22362306a36Sopenharmony_ci enet1: ethernet@25000 { 22462306a36Sopenharmony_ci /* Connected to port 0 of QCA8337N-AL3C switch */ 22562306a36Sopenharmony_ci phy-connection-type = "rgmii-id"; 22662306a36Sopenharmony_ci 22762306a36Sopenharmony_ci fixed-link { 22862306a36Sopenharmony_ci speed = <1000>; 22962306a36Sopenharmony_ci full-duplex; 23062306a36Sopenharmony_ci }; 23162306a36Sopenharmony_ci }; 23262306a36Sopenharmony_ci 23362306a36Sopenharmony_ci mdio@25520 { 23462306a36Sopenharmony_ci status = "disabled"; 23562306a36Sopenharmony_ci }; 23662306a36Sopenharmony_ci 23762306a36Sopenharmony_ci enet2: ethernet@26000 { 23862306a36Sopenharmony_ci /* Connected to KSZ9031RNXCA ethernet phy (WAN port) */ 23962306a36Sopenharmony_ci label = "wan"; 24062306a36Sopenharmony_ci phy-handle = <&phy>; 24162306a36Sopenharmony_ci phy-connection-type = "rgmii-id"; 24262306a36Sopenharmony_ci }; 24362306a36Sopenharmony_ci 24462306a36Sopenharmony_ci mdio@26520 { 24562306a36Sopenharmony_ci status = "disabled"; 24662306a36Sopenharmony_ci }; 24762306a36Sopenharmony_ci 24862306a36Sopenharmony_ci sdhc@2e000 { 24962306a36Sopenharmony_ci bus-width = <4>; 25062306a36Sopenharmony_ci cd-gpios = <&gpio 8 GPIO_ACTIVE_LOW>; 25162306a36Sopenharmony_ci }; 25262306a36Sopenharmony_ci }; 25362306a36Sopenharmony_ci 25462306a36Sopenharmony_ci lbc: localbus@ffe05000 { 25562306a36Sopenharmony_ci reg = <0 0xffe05000 0 0x1000>; 25662306a36Sopenharmony_ci 25762306a36Sopenharmony_ci ranges = <0x0 0x0 0x0 0xef000000 0x01000000>, /* NOR */ 25862306a36Sopenharmony_ci <0x1 0x0 0x0 0xff800000 0x00040000>, /* NAND */ 25962306a36Sopenharmony_ci <0x3 0x0 0x0 0xffa00000 0x00020000>; /* CPLD */ 26062306a36Sopenharmony_ci 26162306a36Sopenharmony_ci /* S29GL128P90TFIR10 NOR */ 26262306a36Sopenharmony_ci nor@0,0 { 26362306a36Sopenharmony_ci compatible = "cfi-flash"; 26462306a36Sopenharmony_ci reg = <0x0 0x0 0x01000000>; 26562306a36Sopenharmony_ci bank-width = <2>; 26662306a36Sopenharmony_ci device-width = <1>; 26762306a36Sopenharmony_ci 26862306a36Sopenharmony_ci partitions { 26962306a36Sopenharmony_ci compatible = "fixed-partitions"; 27062306a36Sopenharmony_ci #address-cells = <1>; 27162306a36Sopenharmony_ci #size-cells = <1>; 27262306a36Sopenharmony_ci 27362306a36Sopenharmony_ci partition@0 { 27462306a36Sopenharmony_ci /* 128 kB for Device Tree Blob */ 27562306a36Sopenharmony_ci reg = <0x00000000 0x00020000>; 27662306a36Sopenharmony_ci label = "dtb"; 27762306a36Sopenharmony_ci }; 27862306a36Sopenharmony_ci 27962306a36Sopenharmony_ci partition@20000 { 28062306a36Sopenharmony_ci /* 1.7 MB for Linux Kernel Image */ 28162306a36Sopenharmony_ci reg = <0x00020000 0x001a0000>; 28262306a36Sopenharmony_ci label = "kernel"; 28362306a36Sopenharmony_ci }; 28462306a36Sopenharmony_ci 28562306a36Sopenharmony_ci partition@1c0000 { 28662306a36Sopenharmony_ci /* 1.5 MB for Rescue JFFS2 Root File System */ 28762306a36Sopenharmony_ci reg = <0x001c0000 0x00180000>; 28862306a36Sopenharmony_ci label = "rescue"; 28962306a36Sopenharmony_ci }; 29062306a36Sopenharmony_ci 29162306a36Sopenharmony_ci partition@340000 { 29262306a36Sopenharmony_ci /* 11 MB for TAR.XZ Archive with Factory content of NAND Root File System */ 29362306a36Sopenharmony_ci reg = <0x00340000 0x00b00000>; 29462306a36Sopenharmony_ci label = "factory"; 29562306a36Sopenharmony_ci }; 29662306a36Sopenharmony_ci 29762306a36Sopenharmony_ci partition@e40000 { 29862306a36Sopenharmony_ci /* 768 kB for Certificates JFFS2 File System */ 29962306a36Sopenharmony_ci reg = <0x00e40000 0x000c0000>; 30062306a36Sopenharmony_ci label = "certificates"; 30162306a36Sopenharmony_ci }; 30262306a36Sopenharmony_ci 30362306a36Sopenharmony_ci /* free unused space 0x00f00000-0x00f20000 */ 30462306a36Sopenharmony_ci 30562306a36Sopenharmony_ci partition@f20000 { 30662306a36Sopenharmony_ci /* 128 kB for U-Boot Environment Variables */ 30762306a36Sopenharmony_ci reg = <0x00f20000 0x00020000>; 30862306a36Sopenharmony_ci label = "u-boot-env"; 30962306a36Sopenharmony_ci }; 31062306a36Sopenharmony_ci 31162306a36Sopenharmony_ci partition@f40000 { 31262306a36Sopenharmony_ci /* 768 kB for U-Boot Bootloader Image */ 31362306a36Sopenharmony_ci reg = <0x00f40000 0x000c0000>; 31462306a36Sopenharmony_ci label = "u-boot"; 31562306a36Sopenharmony_ci }; 31662306a36Sopenharmony_ci }; 31762306a36Sopenharmony_ci }; 31862306a36Sopenharmony_ci 31962306a36Sopenharmony_ci /* MT29F2G08ABAEAWP:E NAND */ 32062306a36Sopenharmony_ci nand@1,0 { 32162306a36Sopenharmony_ci compatible = "fsl,p2020-fcm-nand", "fsl,elbc-fcm-nand"; 32262306a36Sopenharmony_ci reg = <0x1 0x0 0x00040000>; 32362306a36Sopenharmony_ci nand-ecc-mode = "soft"; 32462306a36Sopenharmony_ci nand-ecc-algo = "bch"; 32562306a36Sopenharmony_ci 32662306a36Sopenharmony_ci partitions { 32762306a36Sopenharmony_ci compatible = "fixed-partitions"; 32862306a36Sopenharmony_ci #address-cells = <1>; 32962306a36Sopenharmony_ci #size-cells = <1>; 33062306a36Sopenharmony_ci 33162306a36Sopenharmony_ci partition@0 { 33262306a36Sopenharmony_ci /* 256 MB for UBI with one volume: UBIFS Root File System */ 33362306a36Sopenharmony_ci reg = <0x00000000 0x10000000>; 33462306a36Sopenharmony_ci label = "rootfs"; 33562306a36Sopenharmony_ci }; 33662306a36Sopenharmony_ci }; 33762306a36Sopenharmony_ci }; 33862306a36Sopenharmony_ci 33962306a36Sopenharmony_ci /* LCMXO1200C-3FTN256C FPGA */ 34062306a36Sopenharmony_ci cpld@3,0 { 34162306a36Sopenharmony_ci /* 34262306a36Sopenharmony_ci * Turris CPLD firmware which runs on this Lattice FPGA, 34362306a36Sopenharmony_ci * is extended version of P1021RDB-PC CPLD v4.1 firmware. 34462306a36Sopenharmony_ci * It is backward compatible with its original version 34562306a36Sopenharmony_ci * and the only extension is support for Turris LEDs. 34662306a36Sopenharmony_ci * Turris CPLD firmware is open source and available at: 34762306a36Sopenharmony_ci * https://gitlab.nic.cz/turris/hw/turris_cpld/-/blob/master/CZ_NIC_Router_CPLD.v 34862306a36Sopenharmony_ci */ 34962306a36Sopenharmony_ci compatible = "cznic,turris1x-cpld", "fsl,p1021rdb-pc-cpld", "simple-bus", "syscon"; 35062306a36Sopenharmony_ci reg = <0x3 0x0 0x30>; 35162306a36Sopenharmony_ci #address-cells = <1>; 35262306a36Sopenharmony_ci #size-cells = <1>; 35362306a36Sopenharmony_ci ranges = <0x0 0x3 0x0 0x00020000>; 35462306a36Sopenharmony_ci 35562306a36Sopenharmony_ci /* MAX6370KA+T watchdog */ 35662306a36Sopenharmony_ci watchdog@2 { 35762306a36Sopenharmony_ci /* 35862306a36Sopenharmony_ci * CPLD firmware maps SET0, SET1 and SET2 35962306a36Sopenharmony_ci * input logic of MAX6370KA+T chip to CPLD 36062306a36Sopenharmony_ci * memory space at byte offset 0x2. WDI 36162306a36Sopenharmony_ci * input logic is outside of the CPLD and 36262306a36Sopenharmony_ci * connected via external GPIO. 36362306a36Sopenharmony_ci */ 36462306a36Sopenharmony_ci compatible = "maxim,max6370"; 36562306a36Sopenharmony_ci reg = <0x02 0x01>; 36662306a36Sopenharmony_ci gpios = <&gpio 11 GPIO_ACTIVE_LOW>; 36762306a36Sopenharmony_ci }; 36862306a36Sopenharmony_ci 36962306a36Sopenharmony_ci reboot@d { 37062306a36Sopenharmony_ci /* 37162306a36Sopenharmony_ci * CPLD firmware which manages system reset and 37262306a36Sopenharmony_ci * watchdog registers has bugs. It does not 37362306a36Sopenharmony_ci * autoclear system reset register after change 37462306a36Sopenharmony_ci * and watchdog ignores reset line on immediate 37562306a36Sopenharmony_ci * succeeding reset cycle triggered by watchdog. 37662306a36Sopenharmony_ci * These bugs have to be workarounded in U-Boot 37762306a36Sopenharmony_ci * bootloader. So use system reset via syscon as 37862306a36Sopenharmony_ci * a last resort because older U-Boot versions 37962306a36Sopenharmony_ci * do not have workaround for watchdog. 38062306a36Sopenharmony_ci * 38162306a36Sopenharmony_ci * Reset method via rstcr's global-utilities 38262306a36Sopenharmony_ci * (the preferred one) has priority level 128, 38362306a36Sopenharmony_ci * watchdog has priority level 0 and default 38462306a36Sopenharmony_ci * syscon-reboot priority level is 192. 38562306a36Sopenharmony_ci * 38662306a36Sopenharmony_ci * So define syscon-reboot with custom priority 38762306a36Sopenharmony_ci * level 64 (between rstcr and watchdog) because 38862306a36Sopenharmony_ci * rstcr should stay as default preferred reset 38962306a36Sopenharmony_ci * method and reset via watchdog is more broken 39062306a36Sopenharmony_ci * than system reset via syscon. 39162306a36Sopenharmony_ci */ 39262306a36Sopenharmony_ci compatible = "syscon-reboot"; 39362306a36Sopenharmony_ci reg = <0x0d 0x01>; 39462306a36Sopenharmony_ci offset = <0x0d>; 39562306a36Sopenharmony_ci mask = <0x01>; 39662306a36Sopenharmony_ci value = <0x01>; 39762306a36Sopenharmony_ci priority = <64>; 39862306a36Sopenharmony_ci }; 39962306a36Sopenharmony_ci 40062306a36Sopenharmony_ci led-controller@13 { 40162306a36Sopenharmony_ci /* 40262306a36Sopenharmony_ci * LEDs are controlled by CPLD firmware. 40362306a36Sopenharmony_ci * All five LAN LEDs share common RGB settings 40462306a36Sopenharmony_ci * and so it is not possible to set different 40562306a36Sopenharmony_ci * colors on different LAN ports. 40662306a36Sopenharmony_ci */ 40762306a36Sopenharmony_ci compatible = "cznic,turris1x-leds"; 40862306a36Sopenharmony_ci reg = <0x13 0x1d>; 40962306a36Sopenharmony_ci #address-cells = <1>; 41062306a36Sopenharmony_ci #size-cells = <0>; 41162306a36Sopenharmony_ci 41262306a36Sopenharmony_ci multi-led@0 { 41362306a36Sopenharmony_ci reg = <0x0>; 41462306a36Sopenharmony_ci color = <LED_COLOR_ID_RGB>; 41562306a36Sopenharmony_ci function = LED_FUNCTION_WAN; 41662306a36Sopenharmony_ci }; 41762306a36Sopenharmony_ci 41862306a36Sopenharmony_ci multi-led@1 { 41962306a36Sopenharmony_ci reg = <0x1>; 42062306a36Sopenharmony_ci color = <LED_COLOR_ID_RGB>; 42162306a36Sopenharmony_ci function = LED_FUNCTION_LAN; 42262306a36Sopenharmony_ci function-enumerator = <5>; 42362306a36Sopenharmony_ci }; 42462306a36Sopenharmony_ci 42562306a36Sopenharmony_ci multi-led@2 { 42662306a36Sopenharmony_ci reg = <0x2>; 42762306a36Sopenharmony_ci color = <LED_COLOR_ID_RGB>; 42862306a36Sopenharmony_ci function = LED_FUNCTION_LAN; 42962306a36Sopenharmony_ci function-enumerator = <4>; 43062306a36Sopenharmony_ci }; 43162306a36Sopenharmony_ci 43262306a36Sopenharmony_ci multi-led@3 { 43362306a36Sopenharmony_ci reg = <0x3>; 43462306a36Sopenharmony_ci color = <LED_COLOR_ID_RGB>; 43562306a36Sopenharmony_ci function = LED_FUNCTION_LAN; 43662306a36Sopenharmony_ci function-enumerator = <3>; 43762306a36Sopenharmony_ci }; 43862306a36Sopenharmony_ci 43962306a36Sopenharmony_ci multi-led@4 { 44062306a36Sopenharmony_ci reg = <0x4>; 44162306a36Sopenharmony_ci color = <LED_COLOR_ID_RGB>; 44262306a36Sopenharmony_ci function = LED_FUNCTION_LAN; 44362306a36Sopenharmony_ci function-enumerator = <2>; 44462306a36Sopenharmony_ci }; 44562306a36Sopenharmony_ci 44662306a36Sopenharmony_ci multi-led@5 { 44762306a36Sopenharmony_ci reg = <0x5>; 44862306a36Sopenharmony_ci color = <LED_COLOR_ID_RGB>; 44962306a36Sopenharmony_ci function = LED_FUNCTION_LAN; 45062306a36Sopenharmony_ci function-enumerator = <1>; 45162306a36Sopenharmony_ci }; 45262306a36Sopenharmony_ci 45362306a36Sopenharmony_ci multi-led@6 { 45462306a36Sopenharmony_ci reg = <0x6>; 45562306a36Sopenharmony_ci color = <LED_COLOR_ID_RGB>; 45662306a36Sopenharmony_ci function = LED_FUNCTION_WLAN; 45762306a36Sopenharmony_ci }; 45862306a36Sopenharmony_ci 45962306a36Sopenharmony_ci multi-led@7 { 46062306a36Sopenharmony_ci reg = <0x7>; 46162306a36Sopenharmony_ci color = <LED_COLOR_ID_RGB>; 46262306a36Sopenharmony_ci function = LED_FUNCTION_POWER; 46362306a36Sopenharmony_ci }; 46462306a36Sopenharmony_ci }; 46562306a36Sopenharmony_ci }; 46662306a36Sopenharmony_ci }; 46762306a36Sopenharmony_ci 46862306a36Sopenharmony_ci pci2: pcie@ffe08000 { 46962306a36Sopenharmony_ci /* 47062306a36Sopenharmony_ci * PCIe bus for on-board TUSB7340RKM USB 3.0 xHCI controller. 47162306a36Sopenharmony_ci * This xHCI controller is available only on Turris 1.1 boards. 47262306a36Sopenharmony_ci * Turris 1.0 boards have nothing connected to this PCIe bus, 47362306a36Sopenharmony_ci * so system would see only PCIe Root Port of this PCIe Root 47462306a36Sopenharmony_ci * Complex. TUSB7340RKM xHCI controller has four SuperSpeed 47562306a36Sopenharmony_ci * channels. Channel 0 is connected to the front USB 3.0 port, 47662306a36Sopenharmony_ci * channel 1 (but only USB 2.0 subset) to USB 2.0 pins on mPCIe 47762306a36Sopenharmony_ci * slot 1 (CN5), channels 2 and 3 to connector P600. 47862306a36Sopenharmony_ci * 47962306a36Sopenharmony_ci * P2020 PCIe Root Port does not use PCIe MEM and xHCI controller 48062306a36Sopenharmony_ci * uses 64kB + 8kB of PCIe MEM. No PCIe IO is used or required. 48162306a36Sopenharmony_ci * So allocate 128kB of PCIe MEM for this PCIe bus. 48262306a36Sopenharmony_ci */ 48362306a36Sopenharmony_ci reg = <0 0xffe08000 0 0x1000>; 48462306a36Sopenharmony_ci ranges = <0x02000000 0x0 0xc0000000 0 0xc0000000 0x0 0x00020000>, /* MEM */ 48562306a36Sopenharmony_ci <0x01000000 0x0 0x00000000 0 0xffc20000 0x0 0x00010000>; /* IO */ 48662306a36Sopenharmony_ci 48762306a36Sopenharmony_ci pcie@0 { 48862306a36Sopenharmony_ci ranges; 48962306a36Sopenharmony_ci }; 49062306a36Sopenharmony_ci }; 49162306a36Sopenharmony_ci 49262306a36Sopenharmony_ci pci1: pcie@ffe09000 { 49362306a36Sopenharmony_ci /* PCIe bus on mPCIe slot 2 (CN6) for expansion mPCIe card */ 49462306a36Sopenharmony_ci reg = <0 0xffe09000 0 0x1000>; 49562306a36Sopenharmony_ci ranges = <0x02000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000>, /* MEM */ 49662306a36Sopenharmony_ci <0x01000000 0x0 0x00000000 0 0xffc10000 0x0 0x00010000>; /* IO */ 49762306a36Sopenharmony_ci 49862306a36Sopenharmony_ci pcie@0 { 49962306a36Sopenharmony_ci ranges; 50062306a36Sopenharmony_ci }; 50162306a36Sopenharmony_ci }; 50262306a36Sopenharmony_ci 50362306a36Sopenharmony_ci pci0: pcie@ffe0a000 { 50462306a36Sopenharmony_ci /* 50562306a36Sopenharmony_ci * PCIe bus on mPCIe slot 1 (CN5) for expansion mPCIe card. 50662306a36Sopenharmony_ci * Turris 1.1 boards have in this mPCIe slot additional USB 2.0 50762306a36Sopenharmony_ci * pins via channel 1 of TUSB7340RKM xHCI controller and also 50862306a36Sopenharmony_ci * additional SIM card slot, both for USB-based WWAN cards. 50962306a36Sopenharmony_ci */ 51062306a36Sopenharmony_ci reg = <0 0xffe0a000 0 0x1000>; 51162306a36Sopenharmony_ci ranges = <0x02000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000>, /* MEM */ 51262306a36Sopenharmony_ci <0x01000000 0x0 0x00000000 0 0xffc00000 0x0 0x00010000>; /* IO */ 51362306a36Sopenharmony_ci 51462306a36Sopenharmony_ci pcie@0 { 51562306a36Sopenharmony_ci ranges; 51662306a36Sopenharmony_ci }; 51762306a36Sopenharmony_ci }; 51862306a36Sopenharmony_ci}; 51962306a36Sopenharmony_ci 52062306a36Sopenharmony_ci/include/ "fsl/p2020si-post.dtsi" 521