1*f126890aSEmmanuel Vadot/* 2*f126890aSEmmanuel Vadot * BSD LICENSE 3*f126890aSEmmanuel Vadot * 4*f126890aSEmmanuel Vadot * Copyright(c) 2015 Broadcom Corporation. All rights reserved. 5*f126890aSEmmanuel Vadot * 6*f126890aSEmmanuel Vadot * Redistribution and use in source and binary forms, with or without 7*f126890aSEmmanuel Vadot * modification, are permitted provided that the following conditions 8*f126890aSEmmanuel Vadot * are met: 9*f126890aSEmmanuel Vadot * 10*f126890aSEmmanuel Vadot * * Redistributions of source code must retain the above copyright 11*f126890aSEmmanuel Vadot * notice, this list of conditions and the following disclaimer. 12*f126890aSEmmanuel Vadot * * Redistributions in binary form must reproduce the above copyright 13*f126890aSEmmanuel Vadot * notice, this list of conditions and the following disclaimer in 14*f126890aSEmmanuel Vadot * the documentation and/or other materials provided with the 15*f126890aSEmmanuel Vadot * distribution. 16*f126890aSEmmanuel Vadot * * Neither the name of Broadcom Corporation nor the names of its 17*f126890aSEmmanuel Vadot * contributors may be used to endorse or promote products derived 18*f126890aSEmmanuel Vadot * from this software without specific prior written permission. 19*f126890aSEmmanuel Vadot * 20*f126890aSEmmanuel Vadot * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21*f126890aSEmmanuel Vadot * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22*f126890aSEmmanuel Vadot * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23*f126890aSEmmanuel Vadot * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24*f126890aSEmmanuel Vadot * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25*f126890aSEmmanuel Vadot * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26*f126890aSEmmanuel Vadot * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27*f126890aSEmmanuel Vadot * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28*f126890aSEmmanuel Vadot * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29*f126890aSEmmanuel Vadot * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30*f126890aSEmmanuel Vadot * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31*f126890aSEmmanuel Vadot */ 32*f126890aSEmmanuel Vadot 33*f126890aSEmmanuel Vadot/dts-v1/; 34*f126890aSEmmanuel Vadot 35*f126890aSEmmanuel Vadot#include "bcm-nsp.dtsi" 36*f126890aSEmmanuel Vadot 37*f126890aSEmmanuel Vadot/ { 38*f126890aSEmmanuel Vadot model = "NorthStar Plus SVK (BCM958625K)"; 39*f126890aSEmmanuel Vadot compatible = "brcm,bcm958625k", "brcm,bcm58625", "brcm,nsp"; 40*f126890aSEmmanuel Vadot 41*f126890aSEmmanuel Vadot chosen { 42*f126890aSEmmanuel Vadot stdout-path = "serial0:115200n8"; 43*f126890aSEmmanuel Vadot }; 44*f126890aSEmmanuel Vadot 45*f126890aSEmmanuel Vadot memory@60000000 { 46*f126890aSEmmanuel Vadot device_type = "memory"; 47*f126890aSEmmanuel Vadot reg = <0x60000000 0x80000000>; 48*f126890aSEmmanuel Vadot }; 49*f126890aSEmmanuel Vadot}; 50*f126890aSEmmanuel Vadot 51*f126890aSEmmanuel Vadot&dma { 52*f126890aSEmmanuel Vadot status = "okay"; 53*f126890aSEmmanuel Vadot}; 54*f126890aSEmmanuel Vadot 55*f126890aSEmmanuel Vadot&amac0 { 56*f126890aSEmmanuel Vadot status = "okay"; 57*f126890aSEmmanuel Vadot}; 58*f126890aSEmmanuel Vadot 59*f126890aSEmmanuel Vadot&amac1 { 60*f126890aSEmmanuel Vadot status = "okay"; 61*f126890aSEmmanuel Vadot}; 62*f126890aSEmmanuel Vadot 63*f126890aSEmmanuel Vadot&amac2 { 64*f126890aSEmmanuel Vadot status = "okay"; 65*f126890aSEmmanuel Vadot}; 66*f126890aSEmmanuel Vadot 67*f126890aSEmmanuel Vadot&ehci0 { 68*f126890aSEmmanuel Vadot status = "okay"; 69*f126890aSEmmanuel Vadot}; 70*f126890aSEmmanuel Vadot 71*f126890aSEmmanuel Vadot&nand_controller { 72*f126890aSEmmanuel Vadot nand@0 { 73*f126890aSEmmanuel Vadot compatible = "brcm,nandcs"; 74*f126890aSEmmanuel Vadot reg = <0>; 75*f126890aSEmmanuel Vadot nand-on-flash-bbt; 76*f126890aSEmmanuel Vadot 77*f126890aSEmmanuel Vadot #address-cells = <1>; 78*f126890aSEmmanuel Vadot #size-cells = <1>; 79*f126890aSEmmanuel Vadot 80*f126890aSEmmanuel Vadot nand-ecc-strength = <24>; 81*f126890aSEmmanuel Vadot nand-ecc-step-size = <1024>; 82*f126890aSEmmanuel Vadot 83*f126890aSEmmanuel Vadot brcm,nand-oob-sector-size = <27>; 84*f126890aSEmmanuel Vadot 85*f126890aSEmmanuel Vadot partition@0 { 86*f126890aSEmmanuel Vadot label = "nboot"; 87*f126890aSEmmanuel Vadot reg = <0x00000000 0x00200000>; 88*f126890aSEmmanuel Vadot read-only; 89*f126890aSEmmanuel Vadot }; 90*f126890aSEmmanuel Vadot partition@200000 { 91*f126890aSEmmanuel Vadot label = "nenv"; 92*f126890aSEmmanuel Vadot reg = <0x00200000 0x00400000>; 93*f126890aSEmmanuel Vadot }; 94*f126890aSEmmanuel Vadot partition@600000 { 95*f126890aSEmmanuel Vadot label = "nsystem"; 96*f126890aSEmmanuel Vadot reg = <0x00600000 0x00a00000>; 97*f126890aSEmmanuel Vadot }; 98*f126890aSEmmanuel Vadot partition@1000000 { 99*f126890aSEmmanuel Vadot label = "nrootfs"; 100*f126890aSEmmanuel Vadot reg = <0x01000000 0x03000000>; 101*f126890aSEmmanuel Vadot }; 102*f126890aSEmmanuel Vadot partition@4000000 { 103*f126890aSEmmanuel Vadot label = "ncustfs"; 104*f126890aSEmmanuel Vadot reg = <0x04000000 0x3c000000>; 105*f126890aSEmmanuel Vadot }; 106*f126890aSEmmanuel Vadot }; 107*f126890aSEmmanuel Vadot}; 108*f126890aSEmmanuel Vadot 109*f126890aSEmmanuel Vadot&ohci0 { 110*f126890aSEmmanuel Vadot status = "okay"; 111*f126890aSEmmanuel Vadot}; 112*f126890aSEmmanuel Vadot 113*f126890aSEmmanuel Vadot&pcie0 { 114*f126890aSEmmanuel Vadot status = "okay"; 115*f126890aSEmmanuel Vadot}; 116*f126890aSEmmanuel Vadot 117*f126890aSEmmanuel Vadot&pcie1 { 118*f126890aSEmmanuel Vadot status = "okay"; 119*f126890aSEmmanuel Vadot}; 120*f126890aSEmmanuel Vadot 121*f126890aSEmmanuel Vadot&pcie2 { 122*f126890aSEmmanuel Vadot status = "okay"; 123*f126890aSEmmanuel Vadot}; 124*f126890aSEmmanuel Vadot 125*f126890aSEmmanuel Vadot&pinctrl { 126*f126890aSEmmanuel Vadot pinctrl-names = "default"; 127*f126890aSEmmanuel Vadot pinctrl-0 = <&nand_sel>, <&gpiobs>, <&pwmc>; 128*f126890aSEmmanuel Vadot 129*f126890aSEmmanuel Vadot nand_sel: nand_sel { 130*f126890aSEmmanuel Vadot function = "nand"; 131*f126890aSEmmanuel Vadot groups = "nand_grp"; 132*f126890aSEmmanuel Vadot }; 133*f126890aSEmmanuel Vadot 134*f126890aSEmmanuel Vadot gpiobs: gpiobs { 135*f126890aSEmmanuel Vadot function = "gpio_b"; 136*f126890aSEmmanuel Vadot groups = "gpio_b_0_grp", "gpio_b_1_grp", "gpio_b_2_grp", 137*f126890aSEmmanuel Vadot "gpio_b_3_grp"; 138*f126890aSEmmanuel Vadot }; 139*f126890aSEmmanuel Vadot 140*f126890aSEmmanuel Vadot pwmc: pwmc { 141*f126890aSEmmanuel Vadot function = "pwm"; 142*f126890aSEmmanuel Vadot groups = "pwm0_grp", "pwm1_grp", "pwm2_grp", "pwm3_grp"; 143*f126890aSEmmanuel Vadot }; 144*f126890aSEmmanuel Vadot 145*f126890aSEmmanuel Vadot emmc_sel: emmc_sel { 146*f126890aSEmmanuel Vadot function = "emmc"; 147*f126890aSEmmanuel Vadot groups = "emmc_grp"; 148*f126890aSEmmanuel Vadot }; 149*f126890aSEmmanuel Vadot}; 150*f126890aSEmmanuel Vadot 151*f126890aSEmmanuel Vadot&pwm { 152*f126890aSEmmanuel Vadot status = "okay"; 153*f126890aSEmmanuel Vadot}; 154*f126890aSEmmanuel Vadot 155*f126890aSEmmanuel Vadot&qspi { 156*f126890aSEmmanuel Vadot status = "okay"; 157*f126890aSEmmanuel Vadot bspi-sel = <0>; 158*f126890aSEmmanuel Vadot flash: flash@0 { 159*f126890aSEmmanuel Vadot #address-cells = <1>; 160*f126890aSEmmanuel Vadot #size-cells = <1>; 161*f126890aSEmmanuel Vadot compatible = "m25p80"; 162*f126890aSEmmanuel Vadot reg = <0x0>; 163*f126890aSEmmanuel Vadot spi-max-frequency = <12500000>; 164*f126890aSEmmanuel Vadot m25p,fast-read; 165*f126890aSEmmanuel Vadot spi-cpol; 166*f126890aSEmmanuel Vadot spi-cpha; 167*f126890aSEmmanuel Vadot 168*f126890aSEmmanuel Vadot partition@0 { 169*f126890aSEmmanuel Vadot label = "boot"; 170*f126890aSEmmanuel Vadot reg = <0x00000000 0x000a0000>; 171*f126890aSEmmanuel Vadot }; 172*f126890aSEmmanuel Vadot 173*f126890aSEmmanuel Vadot partition@a0000 { 174*f126890aSEmmanuel Vadot label = "env"; 175*f126890aSEmmanuel Vadot reg = <0x000a0000 0x00060000>; 176*f126890aSEmmanuel Vadot }; 177*f126890aSEmmanuel Vadot 178*f126890aSEmmanuel Vadot partition@100000 { 179*f126890aSEmmanuel Vadot label = "system"; 180*f126890aSEmmanuel Vadot reg = <0x00100000 0x00600000>; 181*f126890aSEmmanuel Vadot }; 182*f126890aSEmmanuel Vadot 183*f126890aSEmmanuel Vadot partition@700000 { 184*f126890aSEmmanuel Vadot label = "rootfs"; 185*f126890aSEmmanuel Vadot reg = <0x00700000 0x01900000>; 186*f126890aSEmmanuel Vadot }; 187*f126890aSEmmanuel Vadot }; 188*f126890aSEmmanuel Vadot}; 189*f126890aSEmmanuel Vadot 190*f126890aSEmmanuel Vadot&sata_phy0 { 191*f126890aSEmmanuel Vadot status = "okay"; 192*f126890aSEmmanuel Vadot}; 193*f126890aSEmmanuel Vadot 194*f126890aSEmmanuel Vadot&sata_phy1 { 195*f126890aSEmmanuel Vadot status = "okay"; 196*f126890aSEmmanuel Vadot}; 197*f126890aSEmmanuel Vadot 198*f126890aSEmmanuel Vadot&sata { 199*f126890aSEmmanuel Vadot status = "okay"; 200*f126890aSEmmanuel Vadot}; 201*f126890aSEmmanuel Vadot 202*f126890aSEmmanuel Vadot/* 203*f126890aSEmmanuel Vadot * By default the sd slot is functional. For emmc to work add "<&emmc_sel>" 204*f126890aSEmmanuel Vadot * and delete "<&nand_sel>" in "pinctrl-0" property of pinctrl node. Remove the 205*f126890aSEmmanuel Vadot * bus-width property here and disable the nand node with status = "disabled";. 206*f126890aSEmmanuel Vadot * 207*f126890aSEmmanuel Vadot * Ex: pinctrl-0 = <&emmc_sel>, <&gpiobs>, <&pwmc>; 208*f126890aSEmmanuel Vadot */ 209*f126890aSEmmanuel Vadot&sdio { 210*f126890aSEmmanuel Vadot bus-width = <4>; 211*f126890aSEmmanuel Vadot no-1-8-v; 212*f126890aSEmmanuel Vadot status = "okay"; 213*f126890aSEmmanuel Vadot}; 214*f126890aSEmmanuel Vadot 215*f126890aSEmmanuel Vadot&srab { 216*f126890aSEmmanuel Vadot compatible = "brcm,bcm58625-srab", "brcm,nsp-srab"; 217*f126890aSEmmanuel Vadot status = "okay"; 218*f126890aSEmmanuel Vadot 219*f126890aSEmmanuel Vadot ports { 220*f126890aSEmmanuel Vadot port@0 { 221*f126890aSEmmanuel Vadot label = "port0"; 222*f126890aSEmmanuel Vadot reg = <0>; 223*f126890aSEmmanuel Vadot }; 224*f126890aSEmmanuel Vadot 225*f126890aSEmmanuel Vadot port@1 { 226*f126890aSEmmanuel Vadot label = "port1"; 227*f126890aSEmmanuel Vadot reg = <1>; 228*f126890aSEmmanuel Vadot }; 229*f126890aSEmmanuel Vadot 230*f126890aSEmmanuel Vadot port@2 { 231*f126890aSEmmanuel Vadot label = "port2"; 232*f126890aSEmmanuel Vadot reg = <2>; 233*f126890aSEmmanuel Vadot }; 234*f126890aSEmmanuel Vadot 235*f126890aSEmmanuel Vadot port@3 { 236*f126890aSEmmanuel Vadot label = "port3"; 237*f126890aSEmmanuel Vadot reg = <3>; 238*f126890aSEmmanuel Vadot }; 239*f126890aSEmmanuel Vadot 240*f126890aSEmmanuel Vadot port@4 { 241*f126890aSEmmanuel Vadot label = "port4"; 242*f126890aSEmmanuel Vadot reg = <4>; 243*f126890aSEmmanuel Vadot }; 244*f126890aSEmmanuel Vadot 245*f126890aSEmmanuel Vadot port@8 { 246*f126890aSEmmanuel Vadot ethernet = <&amac2>; 247*f126890aSEmmanuel Vadot label = "cpu"; 248*f126890aSEmmanuel Vadot reg = <8>; 249*f126890aSEmmanuel Vadot fixed-link { 250*f126890aSEmmanuel Vadot speed = <1000>; 251*f126890aSEmmanuel Vadot full-duplex; 252*f126890aSEmmanuel Vadot }; 253*f126890aSEmmanuel Vadot }; 254*f126890aSEmmanuel Vadot }; 255*f126890aSEmmanuel Vadot}; 256*f126890aSEmmanuel Vadot 257*f126890aSEmmanuel Vadot&uart0 { 258*f126890aSEmmanuel Vadot status = "okay"; 259*f126890aSEmmanuel Vadot}; 260*f126890aSEmmanuel Vadot 261*f126890aSEmmanuel Vadot&uart1 { 262*f126890aSEmmanuel Vadot status = "okay"; 263*f126890aSEmmanuel Vadot}; 264*f126890aSEmmanuel Vadot 265*f126890aSEmmanuel Vadot&usb3_phy { 266*f126890aSEmmanuel Vadot status = "okay"; 267*f126890aSEmmanuel Vadot}; 268*f126890aSEmmanuel Vadot 269*f126890aSEmmanuel Vadot&xhci { 270*f126890aSEmmanuel Vadot status = "okay"; 271*f126890aSEmmanuel Vadot}; 272