1*4882a593Smuzhiyun/* 2*4882a593Smuzhiyun * Copyright (C) 2014, Bin Meng <bmeng.cn@gmail.com> 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * SPDX-License-Identifier: GPL-2.0+ 5*4882a593Smuzhiyun */ 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun/dts-v1/; 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun#include <dt-bindings/interrupt-router/intel-irq.h> 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun/include/ "skeleton.dtsi" 12*4882a593Smuzhiyun/include/ "serial.dtsi" 13*4882a593Smuzhiyun/include/ "keyboard.dtsi" 14*4882a593Smuzhiyun/include/ "rtc.dtsi" 15*4882a593Smuzhiyun/include/ "tsc_timer.dtsi" 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun/ { 18*4882a593Smuzhiyun model = "Intel Crown Bay"; 19*4882a593Smuzhiyun compatible = "intel,crownbay", "intel,queensbay"; 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun aliases { 22*4882a593Smuzhiyun spi0 = &spi; 23*4882a593Smuzhiyun }; 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun config { 26*4882a593Smuzhiyun silent_console = <0>; 27*4882a593Smuzhiyun }; 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun cpus { 30*4882a593Smuzhiyun #address-cells = <1>; 31*4882a593Smuzhiyun #size-cells = <0>; 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun cpu@0 { 34*4882a593Smuzhiyun device_type = "cpu"; 35*4882a593Smuzhiyun compatible = "cpu-x86"; 36*4882a593Smuzhiyun reg = <0>; 37*4882a593Smuzhiyun intel,apic-id = <0>; 38*4882a593Smuzhiyun }; 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun cpu@1 { 41*4882a593Smuzhiyun device_type = "cpu"; 42*4882a593Smuzhiyun compatible = "cpu-x86"; 43*4882a593Smuzhiyun reg = <1>; 44*4882a593Smuzhiyun intel,apic-id = <1>; 45*4882a593Smuzhiyun }; 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun }; 48*4882a593Smuzhiyun 49*4882a593Smuzhiyun chosen { 50*4882a593Smuzhiyun /* 51*4882a593Smuzhiyun * By default the legacy superio serial port is used as the 52*4882a593Smuzhiyun * U-Boot serial console. If we want to use UART from Topcliff 53*4882a593Smuzhiyun * PCH as the console, change this property to &pciuart#. 54*4882a593Smuzhiyun * 55*4882a593Smuzhiyun * For example, stdout-path = &pciuart0 will use the first 56*4882a593Smuzhiyun * UART on Topcliff PCH. 57*4882a593Smuzhiyun */ 58*4882a593Smuzhiyun stdout-path = "/serial"; 59*4882a593Smuzhiyun }; 60*4882a593Smuzhiyun 61*4882a593Smuzhiyun microcode { 62*4882a593Smuzhiyun update@0 { 63*4882a593Smuzhiyun#include "microcode/m0220661105_cv.dtsi" 64*4882a593Smuzhiyun }; 65*4882a593Smuzhiyun }; 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun pci { 68*4882a593Smuzhiyun #address-cells = <3>; 69*4882a593Smuzhiyun #size-cells = <2>; 70*4882a593Smuzhiyun compatible = "pci-x86"; 71*4882a593Smuzhiyun u-boot,dm-pre-reloc; 72*4882a593Smuzhiyun ranges = <0x02000000 0x0 0x40000000 0x40000000 0 0x80000000 73*4882a593Smuzhiyun 0x42000000 0x0 0xc0000000 0xc0000000 0 0x20000000 74*4882a593Smuzhiyun 0x01000000 0x0 0x2000 0x2000 0 0xe000>; 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun pcie@17,0 { 77*4882a593Smuzhiyun #address-cells = <3>; 78*4882a593Smuzhiyun #size-cells = <2>; 79*4882a593Smuzhiyun compatible = "pci-bridge"; 80*4882a593Smuzhiyun u-boot,dm-pre-reloc; 81*4882a593Smuzhiyun reg = <0x0000b800 0x0 0x0 0x0 0x0>; 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun topcliff@0,0 { 84*4882a593Smuzhiyun #address-cells = <3>; 85*4882a593Smuzhiyun #size-cells = <2>; 86*4882a593Smuzhiyun compatible = "pci-bridge"; 87*4882a593Smuzhiyun u-boot,dm-pre-reloc; 88*4882a593Smuzhiyun reg = <0x00010000 0x0 0x0 0x0 0x0>; 89*4882a593Smuzhiyun 90*4882a593Smuzhiyun pciuart0: uart@a,1 { 91*4882a593Smuzhiyun compatible = "pci8086,8811.00", 92*4882a593Smuzhiyun "pci8086,8811", 93*4882a593Smuzhiyun "pciclass,070002", 94*4882a593Smuzhiyun "pciclass,0700", 95*4882a593Smuzhiyun "ns16550"; 96*4882a593Smuzhiyun u-boot,dm-pre-reloc; 97*4882a593Smuzhiyun reg = <0x00025100 0x0 0x0 0x0 0x0 98*4882a593Smuzhiyun 0x01025110 0x0 0x0 0x0 0x0>; 99*4882a593Smuzhiyun reg-shift = <0>; 100*4882a593Smuzhiyun clock-frequency = <1843200>; 101*4882a593Smuzhiyun current-speed = <115200>; 102*4882a593Smuzhiyun }; 103*4882a593Smuzhiyun 104*4882a593Smuzhiyun pciuart1: uart@a,2 { 105*4882a593Smuzhiyun compatible = "pci8086,8812.00", 106*4882a593Smuzhiyun "pci8086,8812", 107*4882a593Smuzhiyun "pciclass,070002", 108*4882a593Smuzhiyun "pciclass,0700", 109*4882a593Smuzhiyun "ns16550"; 110*4882a593Smuzhiyun u-boot,dm-pre-reloc; 111*4882a593Smuzhiyun reg = <0x00025200 0x0 0x0 0x0 0x0 112*4882a593Smuzhiyun 0x01025210 0x0 0x0 0x0 0x0>; 113*4882a593Smuzhiyun reg-shift = <0>; 114*4882a593Smuzhiyun clock-frequency = <1843200>; 115*4882a593Smuzhiyun current-speed = <115200>; 116*4882a593Smuzhiyun }; 117*4882a593Smuzhiyun 118*4882a593Smuzhiyun pciuart2: uart@a,3 { 119*4882a593Smuzhiyun compatible = "pci8086,8813.00", 120*4882a593Smuzhiyun "pci8086,8813", 121*4882a593Smuzhiyun "pciclass,070002", 122*4882a593Smuzhiyun "pciclass,0700", 123*4882a593Smuzhiyun "ns16550"; 124*4882a593Smuzhiyun u-boot,dm-pre-reloc; 125*4882a593Smuzhiyun reg = <0x00025300 0x0 0x0 0x0 0x0 126*4882a593Smuzhiyun 0x01025310 0x0 0x0 0x0 0x0>; 127*4882a593Smuzhiyun reg-shift = <0>; 128*4882a593Smuzhiyun clock-frequency = <1843200>; 129*4882a593Smuzhiyun current-speed = <115200>; 130*4882a593Smuzhiyun }; 131*4882a593Smuzhiyun 132*4882a593Smuzhiyun pciuart3: uart@a,4 { 133*4882a593Smuzhiyun compatible = "pci8086,8814.00", 134*4882a593Smuzhiyun "pci8086,8814", 135*4882a593Smuzhiyun "pciclass,070002", 136*4882a593Smuzhiyun "pciclass,0700", 137*4882a593Smuzhiyun "ns16550"; 138*4882a593Smuzhiyun u-boot,dm-pre-reloc; 139*4882a593Smuzhiyun reg = <0x00025400 0x0 0x0 0x0 0x0 140*4882a593Smuzhiyun 0x01025410 0x0 0x0 0x0 0x0>; 141*4882a593Smuzhiyun reg-shift = <0>; 142*4882a593Smuzhiyun clock-frequency = <1843200>; 143*4882a593Smuzhiyun current-speed = <115200>; 144*4882a593Smuzhiyun }; 145*4882a593Smuzhiyun }; 146*4882a593Smuzhiyun }; 147*4882a593Smuzhiyun 148*4882a593Smuzhiyun pch@1f,0 { 149*4882a593Smuzhiyun reg = <0x0000f800 0 0 0 0>; 150*4882a593Smuzhiyun compatible = "intel,pch7"; 151*4882a593Smuzhiyun #address-cells = <1>; 152*4882a593Smuzhiyun #size-cells = <1>; 153*4882a593Smuzhiyun 154*4882a593Smuzhiyun irq-router { 155*4882a593Smuzhiyun compatible = "intel,queensbay-irq-router"; 156*4882a593Smuzhiyun intel,pirq-config = "pci"; 157*4882a593Smuzhiyun intel,actl-addr = <0x58>; 158*4882a593Smuzhiyun intel,pirq-link = <0x60 8>; 159*4882a593Smuzhiyun intel,pirq-mask = <0xcee0>; 160*4882a593Smuzhiyun intel,pirq-routing = < 161*4882a593Smuzhiyun /* TunnelCreek PCI devices */ 162*4882a593Smuzhiyun PCI_BDF(0, 2, 0) INTA PIRQE 163*4882a593Smuzhiyun PCI_BDF(0, 3, 0) INTA PIRQF 164*4882a593Smuzhiyun PCI_BDF(0, 23, 0) INTA PIRQA 165*4882a593Smuzhiyun PCI_BDF(0, 23, 0) INTB PIRQB 166*4882a593Smuzhiyun PCI_BDF(0, 23, 0) INTC PIRQC 167*4882a593Smuzhiyun PCI_BDF(0, 23, 0) INTD PIRQD 168*4882a593Smuzhiyun PCI_BDF(0, 24, 0) INTA PIRQB 169*4882a593Smuzhiyun PCI_BDF(0, 24, 0) INTB PIRQC 170*4882a593Smuzhiyun PCI_BDF(0, 24, 0) INTC PIRQD 171*4882a593Smuzhiyun PCI_BDF(0, 24, 0) INTD PIRQA 172*4882a593Smuzhiyun PCI_BDF(0, 25, 0) INTA PIRQC 173*4882a593Smuzhiyun PCI_BDF(0, 25, 0) INTB PIRQD 174*4882a593Smuzhiyun PCI_BDF(0, 25, 0) INTC PIRQA 175*4882a593Smuzhiyun PCI_BDF(0, 25, 0) INTD PIRQB 176*4882a593Smuzhiyun PCI_BDF(0, 26, 0) INTA PIRQD 177*4882a593Smuzhiyun PCI_BDF(0, 26, 0) INTB PIRQA 178*4882a593Smuzhiyun PCI_BDF(0, 26, 0) INTC PIRQB 179*4882a593Smuzhiyun PCI_BDF(0, 26, 0) INTD PIRQC 180*4882a593Smuzhiyun PCI_BDF(0, 27, 0) INTA PIRQG 181*4882a593Smuzhiyun /* 182*4882a593Smuzhiyun * Topcliff PCI devices 183*4882a593Smuzhiyun * 184*4882a593Smuzhiyun * Note on the Crown Bay board, Topcliff 185*4882a593Smuzhiyun * chipset is connected to TunnelCreek 186*4882a593Smuzhiyun * PCIe port 0, so its bus number is 1 187*4882a593Smuzhiyun * for its PCIe port and 2 for its PCI 188*4882a593Smuzhiyun * devices per U-Boot current PCI bus 189*4882a593Smuzhiyun * enumeration algorithm. 190*4882a593Smuzhiyun */ 191*4882a593Smuzhiyun PCI_BDF(1, 0, 0) INTA PIRQA 192*4882a593Smuzhiyun PCI_BDF(2, 0, 1) INTA PIRQA 193*4882a593Smuzhiyun PCI_BDF(2, 0, 2) INTA PIRQA 194*4882a593Smuzhiyun PCI_BDF(2, 2, 0) INTB PIRQD 195*4882a593Smuzhiyun PCI_BDF(2, 2, 1) INTB PIRQD 196*4882a593Smuzhiyun PCI_BDF(2, 2, 2) INTB PIRQD 197*4882a593Smuzhiyun PCI_BDF(2, 2, 3) INTB PIRQD 198*4882a593Smuzhiyun PCI_BDF(2, 2, 4) INTB PIRQD 199*4882a593Smuzhiyun PCI_BDF(2, 4, 0) INTC PIRQC 200*4882a593Smuzhiyun PCI_BDF(2, 4, 1) INTC PIRQC 201*4882a593Smuzhiyun PCI_BDF(2, 6, 0) INTD PIRQB 202*4882a593Smuzhiyun PCI_BDF(2, 8, 0) INTA PIRQA 203*4882a593Smuzhiyun PCI_BDF(2, 8, 1) INTA PIRQA 204*4882a593Smuzhiyun PCI_BDF(2, 8, 2) INTA PIRQA 205*4882a593Smuzhiyun PCI_BDF(2, 8, 3) INTA PIRQA 206*4882a593Smuzhiyun PCI_BDF(2, 10, 0) INTB PIRQD 207*4882a593Smuzhiyun PCI_BDF(2, 10, 1) INTB PIRQD 208*4882a593Smuzhiyun PCI_BDF(2, 10, 2) INTB PIRQD 209*4882a593Smuzhiyun PCI_BDF(2, 10, 3) INTB PIRQD 210*4882a593Smuzhiyun PCI_BDF(2, 10, 4) INTB PIRQD 211*4882a593Smuzhiyun PCI_BDF(2, 12, 0) INTC PIRQC 212*4882a593Smuzhiyun PCI_BDF(2, 12, 1) INTC PIRQC 213*4882a593Smuzhiyun PCI_BDF(2, 12, 2) INTC PIRQC 214*4882a593Smuzhiyun PCI_BDF(2, 12, 3) INTC PIRQC 215*4882a593Smuzhiyun PCI_BDF(2, 12, 4) INTC PIRQC 216*4882a593Smuzhiyun >; 217*4882a593Smuzhiyun }; 218*4882a593Smuzhiyun 219*4882a593Smuzhiyun spi: spi { 220*4882a593Smuzhiyun #address-cells = <1>; 221*4882a593Smuzhiyun #size-cells = <0>; 222*4882a593Smuzhiyun compatible = "intel,ich7-spi"; 223*4882a593Smuzhiyun spi-flash@0 { 224*4882a593Smuzhiyun reg = <0>; 225*4882a593Smuzhiyun compatible = "sst,25vf016b", 226*4882a593Smuzhiyun "spi-flash"; 227*4882a593Smuzhiyun memory-map = <0xffe00000 0x00200000>; 228*4882a593Smuzhiyun }; 229*4882a593Smuzhiyun }; 230*4882a593Smuzhiyun 231*4882a593Smuzhiyun gpioa { 232*4882a593Smuzhiyun compatible = "intel,ich6-gpio"; 233*4882a593Smuzhiyun u-boot,dm-pre-reloc; 234*4882a593Smuzhiyun reg = <0 0x20>; 235*4882a593Smuzhiyun bank-name = "A"; 236*4882a593Smuzhiyun }; 237*4882a593Smuzhiyun 238*4882a593Smuzhiyun gpiob { 239*4882a593Smuzhiyun compatible = "intel,ich6-gpio"; 240*4882a593Smuzhiyun u-boot,dm-pre-reloc; 241*4882a593Smuzhiyun reg = <0x20 0x20>; 242*4882a593Smuzhiyun bank-name = "B"; 243*4882a593Smuzhiyun }; 244*4882a593Smuzhiyun }; 245*4882a593Smuzhiyun }; 246*4882a593Smuzhiyun 247*4882a593Smuzhiyun}; 248