// SPDX-License-Identifier: GPL-2.0-only /* * Device Tree Source for Meraki MR24 (Ikarem) * * Copyright (C) 2016 Chris Blake * * Based on Cisco Meraki GPL Release r23-20150601 MR24 DTS */ /dts-v1/; #include "apm82181.dtsi" / { model = "Meraki MR24 Access Point"; compatible = "meraki,mr24", "meraki,ikarem", "apm,bluestone"; aliases { serial0 = &UART1; led-boot = &status; led-failsafe = &failsafe; led-running = &status; led-upgrade = &status; }; chosen { stdout-path = "/plb/opb/serial@ef600400"; }; }; &CRYPTO { status = "okay"; }; &PKA { status = "okay"; }; &TRNG { status = "okay"; }; &EBC0 { /* Ikarem has 32MB of NAND */ ndfc@1,0 { status = "okay"; /* 32 MiB NAND Flash */ nand { nand-is-boot-medium; partition@0 { label = "u-boot"; reg = <0x00000000 0x00150000>; read-only; }; partition@150000 { /* * The u-boot environment size is one NAND * block (16KiB). u-boot allocates four NAND * blocks (64KiB) in order to have spares * around for bad block management */ label = "u-boot-env"; reg = <0x00150000 0x00010000>; read-only; }; partition@160000 { /* * redundant u-boot environment. * has to be kept it in sync with the * data in "u-boot-env". */ label = "u-boot-env-redundant"; reg = <0x00160000 0x00010000>; read-only; }; partition@170000 { label = "oops"; reg = <0x00170000 0x00010000>; }; partition@180000 { label = "ubi"; reg = <0x00180000 0x01e80000>; }; }; }; }; &UART1 { status = "okay"; }; &GPIO0 { status = "okay"; }; &IIC0 { status = "okay"; /* Boot ROM is at 0x52-0x53, do not touch */ /* Unknown chip at 0x6e, not sure what it is */ }; &EMAC0 { status = "okay"; phy-mode = "rgmii-id"; phy-map = <0x2>; phy-address = <0x1>; phy-handle = <&phy>; mdio { #address-cells = <1>; #size-cells = <0>; phy: phy@1 { compatible = "ethernet-phy-ieee802.3-c22"; reg = <1>; }; }; }; &POB0 { leds { compatible = "gpio-leds"; status: power-green { label = "mr24:green:power"; gpios = <&GPIO0 18 GPIO_ACTIVE_LOW>; }; failsafe: power-orange { label = "mr24:orange:power"; gpios = <&GPIO0 19 GPIO_ACTIVE_LOW>; }; lan { label = "mr24:green:wan"; gpios = <&GPIO0 17 GPIO_ACTIVE_LOW>; }; ssi-0 { label = "mr24:green:wifi1"; gpios = <&GPIO0 23 GPIO_ACTIVE_LOW>; }; ssi-1 { label = "mr24:green:wifi2"; gpios = <&GPIO0 22 GPIO_ACTIVE_LOW>; }; ssi-2 { label = "mr24:green:wifi3"; gpios = <&GPIO0 21 GPIO_ACTIVE_LOW>; }; ssi-3 { label = "mr24:green:wifi4"; gpios = <&GPIO0 20 GPIO_ACTIVE_LOW>; }; }; keys { compatible = "gpio-keys"; reset { /* Label as per Meraki's "MR24 Installation Guide" */ label = "Factory Reset Button"; linux,code = ; interrupt-parent = <&UIC1>; interrupts = <0x15 IRQ_TYPE_EDGE_FALLING>; gpios = <&GPIO0 16 GPIO_ACTIVE_LOW>; debounce-interval = <60>; }; }; }; &PCIE0 { status = "okay"; /* * relevant lspci topology: * * -+-[0000:40]---00.0-[41-7f]----00.0-[42-45]--+-02.0-[43]----00.0 * +-03.0-[44]----00.0 * */ bridge@64,0 { reg = <0x00400000 0 0 0 0>; #address-cells = <3>; #size-cells = <2>; ranges; bridge@65,0 { /* IDT PES3T3 PCI Express Switch */ compatible = "pci111d,8039"; reg = <0x00410000 0 0 0 0>; #address-cells = <3>; #size-cells = <2>; ranges; bridge@66,2 { compatible = "pci111d,8039"; reg = <0x00421000 0 0 0 0>; #address-cells = <3>; #size-cells = <2>; ranges; wifi0: wifi@67,0 { /* Atheros AR9380 2.4GHz */ compatible = "pci168c,0030"; reg = <0x00430000 0 0 0 0>; interrupts = <3>; /* INTC 4.1.1 */ }; }; bridge@66,3 { compatible = "pci111d,8039"; reg = <0x00421800 0 0 0 0>; #address-cells = <3>; #size-cells = <2>; ranges; wifi1: wifi@68,0 { /* Atheros AR9380 5GHz */ compatible = "pci168c,0030"; reg = <0x00440000 0 0 0 0>; interrupts = <4>; /* INTD 4.1.1 */ }; }; }; }; }; &MSI { status = "okay"; };