1568868ddSBin Meng/* 2568868ddSBin Meng * Copyright (C) 2014, Bin Meng <bmeng.cn@gmail.com> 3568868ddSBin Meng * 4568868ddSBin Meng * SPDX-License-Identifier: GPL-2.0+ 5568868ddSBin Meng */ 6568868ddSBin Meng 7568868ddSBin Meng/dts-v1/; 8568868ddSBin Meng 99c7dea60SBin Meng#include <dt-bindings/interrupt-router/intel-irq.h> 109c7dea60SBin Meng 11120c4169SBin Meng/include/ "skeleton.dtsi" 129ca5a0caSBin Meng/include/ "serial.dtsi" 1360fe1018SBin Meng/include/ "keyboard.dtsi" 14b0014b64SBin Meng/include/ "rtc.dtsi" 1580af3984SBin Meng/include/ "tsc_timer.dtsi" 16568868ddSBin Meng 17568868ddSBin Meng/ { 18568868ddSBin Meng model = "Intel Crown Bay"; 19568868ddSBin Meng compatible = "intel,crownbay", "intel,queensbay"; 20568868ddSBin Meng 210a9bb489SBin Meng aliases { 2281aaa3d9SBin Meng spi0 = &spi; 230a9bb489SBin Meng }; 240a9bb489SBin Meng 25568868ddSBin Meng config { 26568868ddSBin Meng silent_console = <0>; 27568868ddSBin Meng }; 28568868ddSBin Meng 29990acd0dSBin Meng cpus { 30990acd0dSBin Meng #address-cells = <1>; 31990acd0dSBin Meng #size-cells = <0>; 32990acd0dSBin Meng 33990acd0dSBin Meng cpu@0 { 34990acd0dSBin Meng device_type = "cpu"; 35990acd0dSBin Meng compatible = "cpu-x86"; 36990acd0dSBin Meng reg = <0>; 37990acd0dSBin Meng intel,apic-id = <0>; 38990acd0dSBin Meng }; 39990acd0dSBin Meng 40990acd0dSBin Meng cpu@1 { 41990acd0dSBin Meng device_type = "cpu"; 42990acd0dSBin Meng compatible = "cpu-x86"; 43990acd0dSBin Meng reg = <1>; 44990acd0dSBin Meng intel,apic-id = <1>; 45990acd0dSBin Meng }; 46990acd0dSBin Meng 47990acd0dSBin Meng }; 48990acd0dSBin Meng 49120c4169SBin Meng chosen { 50b21b2081SBin Meng /* 51b21b2081SBin Meng * By default the legacy superio serial port is used as the 52b21b2081SBin Meng * U-Boot serial console. If we want to use UART from Topcliff 53b21b2081SBin Meng * PCH as the console, change this property to &pciuart#. 54b21b2081SBin Meng * 55b21b2081SBin Meng * For example, stdout-path = &pciuart0 will use the first 56b21b2081SBin Meng * UART on Topcliff PCH. 57b21b2081SBin Meng */ 58120c4169SBin Meng stdout-path = "/serial"; 59568868ddSBin Meng }; 60568868ddSBin Meng 610f61de8dSSimon Glass microcode { 620f61de8dSSimon Glass update@0 { 630f61de8dSSimon Glass#include "microcode/m0220661105_cv.dtsi" 640f61de8dSSimon Glass }; 650f61de8dSSimon Glass }; 660f61de8dSSimon Glass 67b21b2081SBin Meng pci { 68b21b2081SBin Meng #address-cells = <3>; 69b21b2081SBin Meng #size-cells = <2>; 70a2771943SBin Meng compatible = "pci-x86"; 71a2771943SBin Meng u-boot,dm-pre-reloc; 72a2771943SBin Meng ranges = <0x02000000 0x0 0x40000000 0x40000000 0 0x80000000 73a2771943SBin Meng 0x42000000 0x0 0xc0000000 0xc0000000 0 0x20000000 74a2771943SBin Meng 0x01000000 0x0 0x2000 0x2000 0 0xe000>; 75b21b2081SBin Meng 76b21b2081SBin Meng pcie@17,0 { 77b21b2081SBin Meng #address-cells = <3>; 78b21b2081SBin Meng #size-cells = <2>; 79a1f1582bSBin Meng compatible = "pci-bridge"; 80a1f1582bSBin Meng u-boot,dm-pre-reloc; 81a1f1582bSBin Meng reg = <0x0000b800 0x0 0x0 0x0 0x0>; 82b21b2081SBin Meng 83b21b2081SBin Meng topcliff@0,0 { 84b21b2081SBin Meng #address-cells = <3>; 85b21b2081SBin Meng #size-cells = <2>; 86a1f1582bSBin Meng compatible = "pci-bridge"; 87a1f1582bSBin Meng u-boot,dm-pre-reloc; 88a1f1582bSBin Meng reg = <0x00010000 0x0 0x0 0x0 0x0>; 89b21b2081SBin Meng 90b21b2081SBin Meng pciuart0: uart@a,1 { 91b21b2081SBin Meng compatible = "pci8086,8811.00", 92b21b2081SBin Meng "pci8086,8811", 93b21b2081SBin Meng "pciclass,070002", 94b21b2081SBin Meng "pciclass,0700", 95c5c5c201SBin Meng "ns16550"; 96a1f1582bSBin Meng u-boot,dm-pre-reloc; 97b21b2081SBin Meng reg = <0x00025100 0x0 0x0 0x0 0x0 98b21b2081SBin Meng 0x01025110 0x0 0x0 0x0 0x0>; 99b21b2081SBin Meng reg-shift = <0>; 100b21b2081SBin Meng clock-frequency = <1843200>; 101b21b2081SBin Meng current-speed = <115200>; 102b21b2081SBin Meng }; 103b21b2081SBin Meng 104b21b2081SBin Meng pciuart1: uart@a,2 { 105b21b2081SBin Meng compatible = "pci8086,8812.00", 106b21b2081SBin Meng "pci8086,8812", 107b21b2081SBin Meng "pciclass,070002", 108b21b2081SBin Meng "pciclass,0700", 109c5c5c201SBin Meng "ns16550"; 110a1f1582bSBin Meng u-boot,dm-pre-reloc; 111b21b2081SBin Meng reg = <0x00025200 0x0 0x0 0x0 0x0 112b21b2081SBin Meng 0x01025210 0x0 0x0 0x0 0x0>; 113b21b2081SBin Meng reg-shift = <0>; 114b21b2081SBin Meng clock-frequency = <1843200>; 115b21b2081SBin Meng current-speed = <115200>; 116b21b2081SBin Meng }; 117b21b2081SBin Meng 118b21b2081SBin Meng pciuart2: uart@a,3 { 119b21b2081SBin Meng compatible = "pci8086,8813.00", 120b21b2081SBin Meng "pci8086,8813", 121b21b2081SBin Meng "pciclass,070002", 122b21b2081SBin Meng "pciclass,0700", 123c5c5c201SBin Meng "ns16550"; 124a1f1582bSBin Meng u-boot,dm-pre-reloc; 125b21b2081SBin Meng reg = <0x00025300 0x0 0x0 0x0 0x0 126b21b2081SBin Meng 0x01025310 0x0 0x0 0x0 0x0>; 127b21b2081SBin Meng reg-shift = <0>; 128b21b2081SBin Meng clock-frequency = <1843200>; 129b21b2081SBin Meng current-speed = <115200>; 130b21b2081SBin Meng }; 131b21b2081SBin Meng 132b21b2081SBin Meng pciuart3: uart@a,4 { 133b21b2081SBin Meng compatible = "pci8086,8814.00", 134b21b2081SBin Meng "pci8086,8814", 135b21b2081SBin Meng "pciclass,070002", 136b21b2081SBin Meng "pciclass,0700", 137c5c5c201SBin Meng "ns16550"; 138a1f1582bSBin Meng u-boot,dm-pre-reloc; 139b21b2081SBin Meng reg = <0x00025400 0x0 0x0 0x0 0x0 140b21b2081SBin Meng 0x01025410 0x0 0x0 0x0 0x0>; 141b21b2081SBin Meng reg-shift = <0>; 142b21b2081SBin Meng clock-frequency = <1843200>; 143b21b2081SBin Meng current-speed = <115200>; 144b21b2081SBin Meng }; 145b21b2081SBin Meng }; 146b21b2081SBin Meng }; 1479c7dea60SBin Meng 148f2b85ab5SSimon Glass pch@1f,0 { 1499c7dea60SBin Meng reg = <0x0000f800 0 0 0 0>; 150f2b85ab5SSimon Glass compatible = "intel,pch7"; 1513ddc1c7bSBin Meng #address-cells = <1>; 1523ddc1c7bSBin Meng #size-cells = <1>; 153f2b85ab5SSimon Glass 154f2b85ab5SSimon Glass irq-router { 1550ac8b1f4SSimon Glass compatible = "intel,queensbay-irq-router"; 1569c7dea60SBin Meng intel,pirq-config = "pci"; 157*ce8dd77dSBin Meng intel,actl-addr = <0x58>; 1589c7dea60SBin Meng intel,pirq-link = <0x60 8>; 1594dd02a75SBin Meng intel,pirq-mask = <0xcee0>; 1609c7dea60SBin Meng intel,pirq-routing = < 1619c7dea60SBin Meng /* TunnelCreek PCI devices */ 1629c7dea60SBin Meng PCI_BDF(0, 2, 0) INTA PIRQE 1639c7dea60SBin Meng PCI_BDF(0, 3, 0) INTA PIRQF 164cdb6babeSBin Meng PCI_BDF(0, 23, 0) INTA PIRQA 165cdb6babeSBin Meng PCI_BDF(0, 23, 0) INTB PIRQB 166cdb6babeSBin Meng PCI_BDF(0, 23, 0) INTC PIRQC 167cdb6babeSBin Meng PCI_BDF(0, 23, 0) INTD PIRQD 168cdb6babeSBin Meng PCI_BDF(0, 24, 0) INTA PIRQB 169cdb6babeSBin Meng PCI_BDF(0, 24, 0) INTB PIRQC 170cdb6babeSBin Meng PCI_BDF(0, 24, 0) INTC PIRQD 171cdb6babeSBin Meng PCI_BDF(0, 24, 0) INTD PIRQA 172cdb6babeSBin Meng PCI_BDF(0, 25, 0) INTA PIRQC 173cdb6babeSBin Meng PCI_BDF(0, 25, 0) INTB PIRQD 174cdb6babeSBin Meng PCI_BDF(0, 25, 0) INTC PIRQA 175cdb6babeSBin Meng PCI_BDF(0, 25, 0) INTD PIRQB 176cdb6babeSBin Meng PCI_BDF(0, 26, 0) INTA PIRQD 177cdb6babeSBin Meng PCI_BDF(0, 26, 0) INTB PIRQA 178cdb6babeSBin Meng PCI_BDF(0, 26, 0) INTC PIRQB 179cdb6babeSBin Meng PCI_BDF(0, 26, 0) INTD PIRQC 1809c7dea60SBin Meng PCI_BDF(0, 27, 0) INTA PIRQG 1819c7dea60SBin Meng /* 1829c7dea60SBin Meng * Topcliff PCI devices 1839c7dea60SBin Meng * 184f2b85ab5SSimon Glass * Note on the Crown Bay board, Topcliff 185f2b85ab5SSimon Glass * chipset is connected to TunnelCreek 186f2b85ab5SSimon Glass * PCIe port 0, so its bus number is 1 187f2b85ab5SSimon Glass * for its PCIe port and 2 for its PCI 188f2b85ab5SSimon Glass * devices per U-Boot current PCI bus 189f2b85ab5SSimon Glass * enumeration algorithm. 1909c7dea60SBin Meng */ 1919c7dea60SBin Meng PCI_BDF(1, 0, 0) INTA PIRQA 1929c7dea60SBin Meng PCI_BDF(2, 0, 1) INTA PIRQA 1939c7dea60SBin Meng PCI_BDF(2, 0, 2) INTA PIRQA 194d402f922SBin Meng PCI_BDF(2, 2, 0) INTB PIRQD 195d402f922SBin Meng PCI_BDF(2, 2, 1) INTB PIRQD 196d402f922SBin Meng PCI_BDF(2, 2, 2) INTB PIRQD 197d402f922SBin Meng PCI_BDF(2, 2, 3) INTB PIRQD 198d402f922SBin Meng PCI_BDF(2, 2, 4) INTB PIRQD 1999c7dea60SBin Meng PCI_BDF(2, 4, 0) INTC PIRQC 2009c7dea60SBin Meng PCI_BDF(2, 4, 1) INTC PIRQC 201d402f922SBin Meng PCI_BDF(2, 6, 0) INTD PIRQB 2029c7dea60SBin Meng PCI_BDF(2, 8, 0) INTA PIRQA 2039c7dea60SBin Meng PCI_BDF(2, 8, 1) INTA PIRQA 2049c7dea60SBin Meng PCI_BDF(2, 8, 2) INTA PIRQA 2059c7dea60SBin Meng PCI_BDF(2, 8, 3) INTA PIRQA 206d402f922SBin Meng PCI_BDF(2, 10, 0) INTB PIRQD 207d402f922SBin Meng PCI_BDF(2, 10, 1) INTB PIRQD 208d402f922SBin Meng PCI_BDF(2, 10, 2) INTB PIRQD 209d402f922SBin Meng PCI_BDF(2, 10, 3) INTB PIRQD 210d402f922SBin Meng PCI_BDF(2, 10, 4) INTB PIRQD 2119c7dea60SBin Meng PCI_BDF(2, 12, 0) INTC PIRQC 2129c7dea60SBin Meng PCI_BDF(2, 12, 1) INTC PIRQC 2139c7dea60SBin Meng PCI_BDF(2, 12, 2) INTC PIRQC 2149c7dea60SBin Meng PCI_BDF(2, 12, 3) INTC PIRQC 2159c7dea60SBin Meng PCI_BDF(2, 12, 4) INTC PIRQC 2169c7dea60SBin Meng >; 2179c7dea60SBin Meng }; 218f2b85ab5SSimon Glass 21981aaa3d9SBin Meng spi: spi { 220f2b85ab5SSimon Glass #address-cells = <1>; 221f2b85ab5SSimon Glass #size-cells = <0>; 2221f9eb59dSBin Meng compatible = "intel,ich7-spi"; 223f2b85ab5SSimon Glass spi-flash@0 { 224f2b85ab5SSimon Glass reg = <0>; 225f2b85ab5SSimon Glass compatible = "sst,25vf016b", 226f2b85ab5SSimon Glass "spi-flash"; 227f2b85ab5SSimon Glass memory-map = <0xffe00000 0x00200000>; 228f2b85ab5SSimon Glass }; 229f2b85ab5SSimon Glass }; 2303ddc1c7bSBin Meng 2313ddc1c7bSBin Meng gpioa { 2323ddc1c7bSBin Meng compatible = "intel,ich6-gpio"; 2333ddc1c7bSBin Meng u-boot,dm-pre-reloc; 2343ddc1c7bSBin Meng reg = <0 0x20>; 2353ddc1c7bSBin Meng bank-name = "A"; 2363ddc1c7bSBin Meng }; 2373ddc1c7bSBin Meng 2383ddc1c7bSBin Meng gpiob { 2393ddc1c7bSBin Meng compatible = "intel,ich6-gpio"; 2403ddc1c7bSBin Meng u-boot,dm-pre-reloc; 2413ddc1c7bSBin Meng reg = <0x20 0x20>; 2423ddc1c7bSBin Meng bank-name = "B"; 2433ddc1c7bSBin Meng }; 244f2b85ab5SSimon Glass }; 245b21b2081SBin Meng }; 246b21b2081SBin Meng 247568868ddSBin Meng}; 248