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