// 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 #include "apm82181.dtsi" / { model = "Meraki MR24 Access Point"; compatible = "meraki,mr24", "meraki,ikarem", "apm,bluestone"; aliases { serial0 = &UART1; }; chosen { stdout-path = "/plb/opb/serial@ef600400"; }; }; &CRYPTO { status = "okay"; }; &PKA { status = "okay"; }; &TRNG { status = "okay"; }; &ndfc { /* Ikarem has 32MB of NAND */ status = "okay"; nand { nand-is-boot-medium; partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; 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"; compatible = "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 { compatible = "linux,ubi"; label = "ubi"; reg = <0x00180000 0x01e80000>; volumes { ubi-volume-board-config { volume = "board-config"; nvmem-layout { compatible = "fixed-layout"; #address-cells = <1>; #size-cells = <1>; macaddr_board_66: macaddr@66 { reg = <0x66 0x6>; }; }; }; }; }; }; }; }; &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"; nvmem-cells = <&macaddr_board_66>; nvmem-cell-names = "mac-address"; 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"; led-0 { color = ; function = LED_FUNCTION_POWER; gpios = <&GPIO0 18 GPIO_ACTIVE_LOW>; }; led-1 { color = ; function = LED_FUNCTION_FAULT; gpios = <&GPIO0 19 GPIO_ACTIVE_LOW>; panic-indicator; }; led-2 { color = ; function = LED_FUNCTION_WAN; gpios = <&GPIO0 17 GPIO_ACTIVE_LOW>; }; led-3 { color = ; function = LED_FUNCTION_WLAN; function-enumerator = <0>; gpios = <&GPIO0 23 GPIO_ACTIVE_LOW>; }; led-4 { color = ; function = LED_FUNCTION_WLAN; function-enumerator = <1>; gpios = <&GPIO0 22 GPIO_ACTIVE_LOW>; }; led-5 { color = ; function = LED_FUNCTION_WLAN; function-enumerator = <2>; gpios = <&GPIO0 21 GPIO_ACTIVE_LOW>; }; led-6 { color = ; function = LED_FUNCTION_WLAN; function-enumerator = <3>; gpios = <&GPIO0 20 GPIO_ACTIVE_LOW>; }; }; keys { compatible = "gpio-keys"; button-restart { /* 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 */ }; }; }; }; };