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