1*2846c905SEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*2846c905SEmmanuel Vadot/* 3*2846c905SEmmanuel Vadot * Copyright 2024 Linus Walleij <linus.walleij@linaro.org> 4*2846c905SEmmanuel Vadot */ 5*2846c905SEmmanuel Vadot 6*2846c905SEmmanuel Vadot/dts-v1/; 7*2846c905SEmmanuel Vadot 8*2846c905SEmmanuel Vadot#include "bcm6846.dtsi" 9*2846c905SEmmanuel Vadot#include <dt-bindings/gpio/gpio.h> 10*2846c905SEmmanuel Vadot#include <dt-bindings/input/input.h> 11*2846c905SEmmanuel Vadot#include <dt-bindings/leds/common.h> 12*2846c905SEmmanuel Vadot 13*2846c905SEmmanuel Vadot/ { 14*2846c905SEmmanuel Vadot model = "Genexis XG6846B Ethernet layer 2/3 router"; 15*2846c905SEmmanuel Vadot compatible = "genexis,xg6846b", "brcm,bcm6846", "brcm,bcmbca"; 16*2846c905SEmmanuel Vadot 17*2846c905SEmmanuel Vadot aliases { 18*2846c905SEmmanuel Vadot serial0 = &uart0; 19*2846c905SEmmanuel Vadot }; 20*2846c905SEmmanuel Vadot 21*2846c905SEmmanuel Vadot chosen { 22*2846c905SEmmanuel Vadot stdout-path = "serial0:115200n8"; 23*2846c905SEmmanuel Vadot }; 24*2846c905SEmmanuel Vadot 25*2846c905SEmmanuel Vadot /* Micron D9PTK 256 MB RAM */ 26*2846c905SEmmanuel Vadot memory@0 { 27*2846c905SEmmanuel Vadot device_type = "memory"; 28*2846c905SEmmanuel Vadot reg = <0x0 0x10000000>; 29*2846c905SEmmanuel Vadot }; 30*2846c905SEmmanuel Vadot 31*2846c905SEmmanuel Vadot reserved-memory { 32*2846c905SEmmanuel Vadot #address-cells = <1>; 33*2846c905SEmmanuel Vadot #size-cells = <1>; 34*2846c905SEmmanuel Vadot ranges; 35*2846c905SEmmanuel Vadot 36*2846c905SEmmanuel Vadot secondary-boot@0 { 37*2846c905SEmmanuel Vadot no-map; 38*2846c905SEmmanuel Vadot reg = <0x00000000 0x00008000>; 39*2846c905SEmmanuel Vadot }; 40*2846c905SEmmanuel Vadot pmc3-firmware@8000 { 41*2846c905SEmmanuel Vadot no-map; 42*2846c905SEmmanuel Vadot reg = <0x00008000 0x00100000>; 43*2846c905SEmmanuel Vadot }; 44*2846c905SEmmanuel Vadot }; 45*2846c905SEmmanuel Vadot 46*2846c905SEmmanuel Vadot gpio-keys { 47*2846c905SEmmanuel Vadot compatible = "gpio-keys-polled"; 48*2846c905SEmmanuel Vadot poll-interval = <20000>; 49*2846c905SEmmanuel Vadot 50*2846c905SEmmanuel Vadot /* Called "canyon rescue button" in the vendor DTB */ 51*2846c905SEmmanuel Vadot button-restart { 52*2846c905SEmmanuel Vadot label = "Reset"; 53*2846c905SEmmanuel Vadot linux,code = <KEY_RESTART>; 54*2846c905SEmmanuel Vadot gpios = <&gpio0 41 GPIO_ACTIVE_LOW>; 55*2846c905SEmmanuel Vadot }; 56*2846c905SEmmanuel Vadot }; 57*2846c905SEmmanuel Vadot}; 58*2846c905SEmmanuel Vadot 59*2846c905SEmmanuel Vadot&gpio0 { 60*2846c905SEmmanuel Vadot status = "okay"; 61*2846c905SEmmanuel Vadot}; 62*2846c905SEmmanuel Vadot 63*2846c905SEmmanuel Vadot&gpio1 { 64*2846c905SEmmanuel Vadot status = "okay"; 65*2846c905SEmmanuel Vadot}; 66*2846c905SEmmanuel Vadot 67*2846c905SEmmanuel Vadot&gpio2 { 68*2846c905SEmmanuel Vadot status = "okay"; 69*2846c905SEmmanuel Vadot /* Totally 79 GPIOs are available */ 70*2846c905SEmmanuel Vadot ngpios = <15>; 71*2846c905SEmmanuel Vadot}; 72*2846c905SEmmanuel Vadot 73*2846c905SEmmanuel Vadot&uart0 { 74*2846c905SEmmanuel Vadot status = "okay"; 75*2846c905SEmmanuel Vadot}; 76*2846c905SEmmanuel Vadot 77*2846c905SEmmanuel Vadot&leds { 78*2846c905SEmmanuel Vadot status = "okay"; 79*2846c905SEmmanuel Vadot brcm,serial-shift-bits = <16>; 80*2846c905SEmmanuel Vadot 81*2846c905SEmmanuel Vadot led@0 { 82*2846c905SEmmanuel Vadot reg = <0>; 83*2846c905SEmmanuel Vadot active-low; 84*2846c905SEmmanuel Vadot function = "ext"; 85*2846c905SEmmanuel Vadot color = <LED_COLOR_ID_GREEN>; 86*2846c905SEmmanuel Vadot }; 87*2846c905SEmmanuel Vadot 88*2846c905SEmmanuel Vadot led@1 { 89*2846c905SEmmanuel Vadot reg = <1>; 90*2846c905SEmmanuel Vadot active-low; 91*2846c905SEmmanuel Vadot function = "ext"; 92*2846c905SEmmanuel Vadot color = <LED_COLOR_ID_AMBER>; 93*2846c905SEmmanuel Vadot }; 94*2846c905SEmmanuel Vadot 95*2846c905SEmmanuel Vadot led@3 { 96*2846c905SEmmanuel Vadot reg = <3>; 97*2846c905SEmmanuel Vadot active-low; 98*2846c905SEmmanuel Vadot function = LED_FUNCTION_WAN; 99*2846c905SEmmanuel Vadot color = <LED_COLOR_ID_AMBER>; 100*2846c905SEmmanuel Vadot }; 101*2846c905SEmmanuel Vadot 102*2846c905SEmmanuel Vadot led@4 { 103*2846c905SEmmanuel Vadot reg = <4>; 104*2846c905SEmmanuel Vadot active-low; 105*2846c905SEmmanuel Vadot function = LED_FUNCTION_WAN; 106*2846c905SEmmanuel Vadot color = <LED_COLOR_ID_GREEN>; 107*2846c905SEmmanuel Vadot }; 108*2846c905SEmmanuel Vadot 109*2846c905SEmmanuel Vadot led@5 { 110*2846c905SEmmanuel Vadot reg = <5>; 111*2846c905SEmmanuel Vadot active-low; 112*2846c905SEmmanuel Vadot function = LED_FUNCTION_POWER; 113*2846c905SEmmanuel Vadot color = <LED_COLOR_ID_GREEN>; 114*2846c905SEmmanuel Vadot }; 115*2846c905SEmmanuel Vadot 116*2846c905SEmmanuel Vadot led@6 { 117*2846c905SEmmanuel Vadot reg = <6>; 118*2846c905SEmmanuel Vadot active-low; 119*2846c905SEmmanuel Vadot function = LED_FUNCTION_POWER; 120*2846c905SEmmanuel Vadot color = <LED_COLOR_ID_RED>; 121*2846c905SEmmanuel Vadot }; 122*2846c905SEmmanuel Vadot 123*2846c905SEmmanuel Vadot led@15 { 124*2846c905SEmmanuel Vadot reg = <15>; 125*2846c905SEmmanuel Vadot active-low; 126*2846c905SEmmanuel Vadot function = LED_FUNCTION_USB; 127*2846c905SEmmanuel Vadot color = <LED_COLOR_ID_GREEN>; 128*2846c905SEmmanuel Vadot }; 129*2846c905SEmmanuel Vadot 130*2846c905SEmmanuel Vadot led@7 { 131*2846c905SEmmanuel Vadot /* Activity 03 */ 132*2846c905SEmmanuel Vadot reg = <7>; 133*2846c905SEmmanuel Vadot active-low; 134*2846c905SEmmanuel Vadot function = "lan1"; 135*2846c905SEmmanuel Vadot color = <LED_COLOR_ID_AMBER>; 136*2846c905SEmmanuel Vadot }; 137*2846c905SEmmanuel Vadot 138*2846c905SEmmanuel Vadot led@8 { 139*2846c905SEmmanuel Vadot /* Activity 04 */ 140*2846c905SEmmanuel Vadot reg = <8>; 141*2846c905SEmmanuel Vadot active-low; 142*2846c905SEmmanuel Vadot function = "lan1"; 143*2846c905SEmmanuel Vadot color = <LED_COLOR_ID_GREEN>; 144*2846c905SEmmanuel Vadot }; 145*2846c905SEmmanuel Vadot 146*2846c905SEmmanuel Vadot led@9 { 147*2846c905SEmmanuel Vadot /* Activity 03 */ 148*2846c905SEmmanuel Vadot reg = <9>; 149*2846c905SEmmanuel Vadot active-low; 150*2846c905SEmmanuel Vadot function = "lan2"; 151*2846c905SEmmanuel Vadot color = <LED_COLOR_ID_AMBER>; 152*2846c905SEmmanuel Vadot }; 153*2846c905SEmmanuel Vadot 154*2846c905SEmmanuel Vadot led@10 { 155*2846c905SEmmanuel Vadot /* Activity 04 */ 156*2846c905SEmmanuel Vadot reg = <10>; 157*2846c905SEmmanuel Vadot active-low; 158*2846c905SEmmanuel Vadot function = "lan2"; 159*2846c905SEmmanuel Vadot color = <LED_COLOR_ID_GREEN>; 160*2846c905SEmmanuel Vadot }; 161*2846c905SEmmanuel Vadot 162*2846c905SEmmanuel Vadot led@11 { 163*2846c905SEmmanuel Vadot /* Activity 03 */ 164*2846c905SEmmanuel Vadot reg = <11>; 165*2846c905SEmmanuel Vadot active-low; 166*2846c905SEmmanuel Vadot function = "lan3"; 167*2846c905SEmmanuel Vadot color = <LED_COLOR_ID_AMBER>; 168*2846c905SEmmanuel Vadot }; 169*2846c905SEmmanuel Vadot 170*2846c905SEmmanuel Vadot led@12 { 171*2846c905SEmmanuel Vadot /* Activity 04 */ 172*2846c905SEmmanuel Vadot reg = <12>; 173*2846c905SEmmanuel Vadot active-low; 174*2846c905SEmmanuel Vadot function = "lan3"; 175*2846c905SEmmanuel Vadot color = <LED_COLOR_ID_GREEN>; 176*2846c905SEmmanuel Vadot }; 177*2846c905SEmmanuel Vadot 178*2846c905SEmmanuel Vadot led@13 { 179*2846c905SEmmanuel Vadot /* Activity 03 */ 180*2846c905SEmmanuel Vadot reg = <13>; 181*2846c905SEmmanuel Vadot active-low; 182*2846c905SEmmanuel Vadot function = "lan4"; 183*2846c905SEmmanuel Vadot color = <LED_COLOR_ID_AMBER>; 184*2846c905SEmmanuel Vadot }; 185*2846c905SEmmanuel Vadot 186*2846c905SEmmanuel Vadot led@14 { 187*2846c905SEmmanuel Vadot /* Activity 04 */ 188*2846c905SEmmanuel Vadot reg = <14>; 189*2846c905SEmmanuel Vadot active-low; 190*2846c905SEmmanuel Vadot function = "lan4"; 191*2846c905SEmmanuel Vadot color = <LED_COLOR_ID_GREEN>; 192*2846c905SEmmanuel Vadot }; 193*2846c905SEmmanuel Vadot}; 194*2846c905SEmmanuel Vadot 195*2846c905SEmmanuel Vadot&hsspi { 196*2846c905SEmmanuel Vadot status = "okay"; 197*2846c905SEmmanuel Vadot}; 198*2846c905SEmmanuel Vadot 199*2846c905SEmmanuel Vadot&nand_controller { 200*2846c905SEmmanuel Vadot brcm,wp-not-connected; 201*2846c905SEmmanuel Vadot status = "okay"; 202*2846c905SEmmanuel Vadot}; 203*2846c905SEmmanuel Vadot 204*2846c905SEmmanuel Vadot&nandcs { 205*2846c905SEmmanuel Vadot nand-on-flash-bbt; 206*2846c905SEmmanuel Vadot brcm,nand-ecc-use-strap; 207*2846c905SEmmanuel Vadot 208*2846c905SEmmanuel Vadot /* Winbond W29N02GV, 256MB with 128KB erase blocks */ 209*2846c905SEmmanuel Vadot partitions { 210*2846c905SEmmanuel Vadot compatible = "fixed-partitions"; 211*2846c905SEmmanuel Vadot #address-cells = <1>; 212*2846c905SEmmanuel Vadot #size-cells = <1>; 213*2846c905SEmmanuel Vadot 214*2846c905SEmmanuel Vadot loader@0 { 215*2846c905SEmmanuel Vadot label = "loader"; 216*2846c905SEmmanuel Vadot reg = <0x00000000 0x00400000>; 217*2846c905SEmmanuel Vadot }; 218*2846c905SEmmanuel Vadot image@400000 { 219*2846c905SEmmanuel Vadot label = "image"; 220*2846c905SEmmanuel Vadot reg = <0x00400000 0x0fb00000>; 221*2846c905SEmmanuel Vadot }; 222*2846c905SEmmanuel Vadot /* 0x00ff0000-0x00ffffff: bad block list */ 223*2846c905SEmmanuel Vadot }; 224*2846c905SEmmanuel Vadot}; 225*2846c905SEmmanuel Vadot 226*2846c905SEmmanuel Vadot&mdio { 227*2846c905SEmmanuel Vadot status = "okay"; 228*2846c905SEmmanuel Vadot 229*2846c905SEmmanuel Vadot phy1: ethernet-phy@1 { 230*2846c905SEmmanuel Vadot reg = <1>; 231*2846c905SEmmanuel Vadot }; 232*2846c905SEmmanuel Vadot phy2: ethernet-phy@2 { 233*2846c905SEmmanuel Vadot reg = <2>; 234*2846c905SEmmanuel Vadot }; 235*2846c905SEmmanuel Vadot phy3: ethernet-phy@3 { 236*2846c905SEmmanuel Vadot reg = <3>; 237*2846c905SEmmanuel Vadot }; 238*2846c905SEmmanuel Vadot phy4: ethernet-phy@4 { 239*2846c905SEmmanuel Vadot reg = <4>; 240*2846c905SEmmanuel Vadot }; 241*2846c905SEmmanuel Vadot phy21: ethernet-phy@21 { 242*2846c905SEmmanuel Vadot reg = <21>; 243*2846c905SEmmanuel Vadot }; 244*2846c905SEmmanuel Vadot}; 245