19b911bedSBin Meng/* 29b911bedSBin Meng * Copyright (C) 2015, Bin Meng <bmeng.cn@gmail.com> 39b911bedSBin Meng * 49b911bedSBin Meng * SPDX-License-Identifier: GPL-2.0+ 59b911bedSBin Meng */ 69b911bedSBin Meng 79b911bedSBin Meng/dts-v1/; 89b911bedSBin Meng 95e74e5a6SBin Meng#include <asm/arch-baytrail/fsp/fsp_configs.h> 109b911bedSBin Meng#include <dt-bindings/gpio/x86-gpio.h> 11fe3fbd30SBin Meng#include <dt-bindings/interrupt-router/intel-irq.h> 129b911bedSBin Meng 139b911bedSBin Meng/include/ "skeleton.dtsi" 146b44ae6bSSimon Glass/include/ "keyboard.dtsi" 159b911bedSBin Meng/include/ "serial.dtsi" 169b911bedSBin Meng/include/ "rtc.dtsi" 1780af3984SBin Meng/include/ "tsc_timer.dtsi" 182d3c573eSBin Meng/include/ "coreboot_fb.dtsi" 199b911bedSBin Meng 209b911bedSBin Meng/ { 219b911bedSBin Meng model = "Intel Bayley Bay"; 229b911bedSBin Meng compatible = "intel,bayleybay", "intel,baytrail"; 239b911bedSBin Meng 249b911bedSBin Meng aliases { 259b911bedSBin Meng serial0 = &serial; 2681aaa3d9SBin Meng spi0 = &spi; 279b911bedSBin Meng }; 289b911bedSBin Meng 299b911bedSBin Meng config { 309b911bedSBin Meng silent_console = <0>; 319b911bedSBin Meng }; 329b911bedSBin Meng 339b911bedSBin Meng chosen { 349b911bedSBin Meng stdout-path = "/serial"; 359b911bedSBin Meng }; 369b911bedSBin Meng 379b911bedSBin Meng cpus { 389b911bedSBin Meng #address-cells = <1>; 399b911bedSBin Meng #size-cells = <0>; 409b911bedSBin Meng 419b911bedSBin Meng cpu@0 { 429b911bedSBin Meng device_type = "cpu"; 439b911bedSBin Meng compatible = "intel,baytrail-cpu"; 449b911bedSBin Meng reg = <0>; 459b911bedSBin Meng intel,apic-id = <0>; 469b911bedSBin Meng }; 479b911bedSBin Meng 489b911bedSBin Meng cpu@1 { 499b911bedSBin Meng device_type = "cpu"; 509b911bedSBin Meng compatible = "intel,baytrail-cpu"; 519b911bedSBin Meng reg = <1>; 529b911bedSBin Meng intel,apic-id = <2>; 539b911bedSBin Meng }; 549b911bedSBin Meng 559b911bedSBin Meng cpu@2 { 569b911bedSBin Meng device_type = "cpu"; 579b911bedSBin Meng compatible = "intel,baytrail-cpu"; 589b911bedSBin Meng reg = <2>; 599b911bedSBin Meng intel,apic-id = <4>; 609b911bedSBin Meng }; 619b911bedSBin Meng 629b911bedSBin Meng cpu@3 { 639b911bedSBin Meng device_type = "cpu"; 649b911bedSBin Meng compatible = "intel,baytrail-cpu"; 659b911bedSBin Meng reg = <3>; 669b911bedSBin Meng intel,apic-id = <6>; 679b911bedSBin Meng }; 689b911bedSBin Meng }; 699b911bedSBin Meng 70e264e3ccSBin Meng pch_pinctrl { 71e264e3ccSBin Meng compatible = "intel,x86-pinctrl"; 72e264e3ccSBin Meng reg = <0 0>; 73f7a01e48SBin Meng 74f7a01e48SBin Meng /* 75f7a01e48SBin Meng * As of today, the latest version FSP (gold4) for BayTrail 76f7a01e48SBin Meng * misses the PAD configuration of the SD controller's Card 77f7a01e48SBin Meng * Detect signal. The default PAD value for the CD pin sets 78f7a01e48SBin Meng * the pin to work in GPIO mode, which causes card detect 79f7a01e48SBin Meng * status cannot be reflected by the Present State register 80f7a01e48SBin Meng * in the SD controller (bit 16 & bit 18 are always zero). 81f7a01e48SBin Meng * 82f7a01e48SBin Meng * Configure this pin to function 1 (SD controller). 83f7a01e48SBin Meng */ 84f7a01e48SBin Meng sdmmc3_cd@0 { 85f7a01e48SBin Meng pad-offset = <0x3a0>; 86f7a01e48SBin Meng mode-func = <1>; 87f7a01e48SBin Meng }; 88e264e3ccSBin Meng }; 89e264e3ccSBin Meng 909b911bedSBin Meng pci { 919b911bedSBin Meng compatible = "pci-x86"; 929b911bedSBin Meng #address-cells = <3>; 939b911bedSBin Meng #size-cells = <2>; 949b911bedSBin Meng u-boot,dm-pre-reloc; 959b911bedSBin Meng ranges = <0x02000000 0x0 0x80000000 0x80000000 0 0x40000000 969b911bedSBin Meng 0x42000000 0x0 0xc0000000 0xc0000000 0 0x20000000 979b911bedSBin Meng 0x01000000 0x0 0x2000 0x2000 0 0xe000>; 98fe3fbd30SBin Meng 99f2b85ab5SSimon Glass pch@1f,0 { 100fe3fbd30SBin Meng reg = <0x0000f800 0 0 0 0>; 101f2b85ab5SSimon Glass compatible = "intel,pch9"; 1023ddc1c7bSBin Meng #address-cells = <1>; 1033ddc1c7bSBin Meng #size-cells = <1>; 104f2b85ab5SSimon Glass 105f2b85ab5SSimon Glass irq-router { 106fe3fbd30SBin Meng compatible = "intel,irq-router"; 107fe3fbd30SBin Meng intel,pirq-config = "ibase"; 108fe3fbd30SBin Meng intel,ibase-offset = <0x50>; 109ce8dd77dSBin Meng intel,actl-addr = <0>; 110fe3fbd30SBin Meng intel,pirq-link = <8 8>; 111fe3fbd30SBin Meng intel,pirq-mask = <0xdee0>; 112fe3fbd30SBin Meng intel,pirq-routing = < 113fe3fbd30SBin Meng /* BayTrail PCI devices */ 114fe3fbd30SBin Meng PCI_BDF(0, 2, 0) INTA PIRQA 115fe3fbd30SBin Meng PCI_BDF(0, 3, 0) INTA PIRQA 116fe3fbd30SBin Meng PCI_BDF(0, 16, 0) INTA PIRQA 117fe3fbd30SBin Meng PCI_BDF(0, 17, 0) INTA PIRQA 118fe3fbd30SBin Meng PCI_BDF(0, 18, 0) INTA PIRQA 119fe3fbd30SBin Meng PCI_BDF(0, 19, 0) INTA PIRQA 120fe3fbd30SBin Meng PCI_BDF(0, 20, 0) INTA PIRQA 121fe3fbd30SBin Meng PCI_BDF(0, 21, 0) INTA PIRQA 122fe3fbd30SBin Meng PCI_BDF(0, 22, 0) INTA PIRQA 123fe3fbd30SBin Meng PCI_BDF(0, 23, 0) INTA PIRQA 124fe3fbd30SBin Meng PCI_BDF(0, 24, 0) INTA PIRQA 125fe3fbd30SBin Meng PCI_BDF(0, 24, 1) INTC PIRQC 126fe3fbd30SBin Meng PCI_BDF(0, 24, 2) INTD PIRQD 127fe3fbd30SBin Meng PCI_BDF(0, 24, 3) INTB PIRQB 128fe3fbd30SBin Meng PCI_BDF(0, 24, 4) INTA PIRQA 129fe3fbd30SBin Meng PCI_BDF(0, 24, 5) INTC PIRQC 130fe3fbd30SBin Meng PCI_BDF(0, 24, 6) INTD PIRQD 131fe3fbd30SBin Meng PCI_BDF(0, 24, 7) INTB PIRQB 132fe3fbd30SBin Meng PCI_BDF(0, 26, 0) INTA PIRQA 133fe3fbd30SBin Meng PCI_BDF(0, 27, 0) INTA PIRQA 134fe3fbd30SBin Meng PCI_BDF(0, 28, 0) INTA PIRQA 135fe3fbd30SBin Meng PCI_BDF(0, 28, 1) INTB PIRQB 136fe3fbd30SBin Meng PCI_BDF(0, 28, 2) INTC PIRQC 137fe3fbd30SBin Meng PCI_BDF(0, 28, 3) INTD PIRQD 138fe3fbd30SBin Meng PCI_BDF(0, 29, 0) INTA PIRQA 139fe3fbd30SBin Meng PCI_BDF(0, 30, 0) INTA PIRQA 140fe3fbd30SBin Meng PCI_BDF(0, 30, 1) INTD PIRQD 141fe3fbd30SBin Meng PCI_BDF(0, 30, 2) INTB PIRQB 142fe3fbd30SBin Meng PCI_BDF(0, 30, 3) INTC PIRQC 143fe3fbd30SBin Meng PCI_BDF(0, 30, 4) INTD PIRQD 144fe3fbd30SBin Meng PCI_BDF(0, 30, 5) INTB PIRQB 145fe3fbd30SBin Meng PCI_BDF(0, 31, 3) INTB PIRQB 146fe3fbd30SBin Meng 147f2b85ab5SSimon Glass /* 148f2b85ab5SSimon Glass * PCIe root ports downstream 149f2b85ab5SSimon Glass * interrupts 150f2b85ab5SSimon Glass */ 151fe3fbd30SBin Meng PCI_BDF(1, 0, 0) INTA PIRQA 152fe3fbd30SBin Meng PCI_BDF(1, 0, 0) INTB PIRQB 153fe3fbd30SBin Meng PCI_BDF(1, 0, 0) INTC PIRQC 154fe3fbd30SBin Meng PCI_BDF(1, 0, 0) INTD PIRQD 155fe3fbd30SBin Meng PCI_BDF(2, 0, 0) INTA PIRQB 156fe3fbd30SBin Meng PCI_BDF(2, 0, 0) INTB PIRQC 157fe3fbd30SBin Meng PCI_BDF(2, 0, 0) INTC PIRQD 158fe3fbd30SBin Meng PCI_BDF(2, 0, 0) INTD PIRQA 159fe3fbd30SBin Meng PCI_BDF(3, 0, 0) INTA PIRQC 160fe3fbd30SBin Meng PCI_BDF(3, 0, 0) INTB PIRQD 161fe3fbd30SBin Meng PCI_BDF(3, 0, 0) INTC PIRQA 162fe3fbd30SBin Meng PCI_BDF(3, 0, 0) INTD PIRQB 163fe3fbd30SBin Meng PCI_BDF(4, 0, 0) INTA PIRQD 164fe3fbd30SBin Meng PCI_BDF(4, 0, 0) INTB PIRQA 165fe3fbd30SBin Meng PCI_BDF(4, 0, 0) INTC PIRQB 166fe3fbd30SBin Meng PCI_BDF(4, 0, 0) INTD PIRQC 167fe3fbd30SBin Meng >; 168fe3fbd30SBin Meng }; 169f2b85ab5SSimon Glass 17081aaa3d9SBin Meng spi: spi { 171f2b85ab5SSimon Glass #address-cells = <1>; 172f2b85ab5SSimon Glass #size-cells = <0>; 1731f9eb59dSBin Meng compatible = "intel,ich9-spi"; 174f2b85ab5SSimon Glass spi-flash@0 { 175f2b85ab5SSimon Glass #address-cells = <1>; 176f2b85ab5SSimon Glass #size-cells = <1>; 177f2b85ab5SSimon Glass reg = <0>; 178f2b85ab5SSimon Glass compatible = "winbond,w25q64dw", 179f2b85ab5SSimon Glass "spi-flash"; 180f2b85ab5SSimon Glass memory-map = <0xff800000 0x00800000>; 181f2b85ab5SSimon Glass rw-mrc-cache { 182f2b85ab5SSimon Glass label = "rw-mrc-cache"; 183f2b85ab5SSimon Glass reg = <0x006e0000 0x00010000>; 184f2b85ab5SSimon Glass }; 185f2b85ab5SSimon Glass }; 186f2b85ab5SSimon Glass }; 1873ddc1c7bSBin Meng 1883ddc1c7bSBin Meng gpioa { 1893ddc1c7bSBin Meng compatible = "intel,ich6-gpio"; 1903ddc1c7bSBin Meng u-boot,dm-pre-reloc; 1913ddc1c7bSBin Meng reg = <0 0x20>; 1923ddc1c7bSBin Meng bank-name = "A"; 193770ee017SBin Meng use-lvl-write-cache; 1943ddc1c7bSBin Meng }; 1953ddc1c7bSBin Meng 1963ddc1c7bSBin Meng gpiob { 1973ddc1c7bSBin Meng compatible = "intel,ich6-gpio"; 1983ddc1c7bSBin Meng u-boot,dm-pre-reloc; 1993ddc1c7bSBin Meng reg = <0x20 0x20>; 2003ddc1c7bSBin Meng bank-name = "B"; 201770ee017SBin Meng use-lvl-write-cache; 2023ddc1c7bSBin Meng }; 2033ddc1c7bSBin Meng 2043ddc1c7bSBin Meng gpioc { 2053ddc1c7bSBin Meng compatible = "intel,ich6-gpio"; 2063ddc1c7bSBin Meng u-boot,dm-pre-reloc; 2073ddc1c7bSBin Meng reg = <0x40 0x20>; 2083ddc1c7bSBin Meng bank-name = "C"; 209770ee017SBin Meng use-lvl-write-cache; 2103ddc1c7bSBin Meng }; 2113ddc1c7bSBin Meng 2123ddc1c7bSBin Meng gpiod { 2133ddc1c7bSBin Meng compatible = "intel,ich6-gpio"; 2143ddc1c7bSBin Meng u-boot,dm-pre-reloc; 2153ddc1c7bSBin Meng reg = <0x60 0x20>; 2163ddc1c7bSBin Meng bank-name = "D"; 217770ee017SBin Meng use-lvl-write-cache; 2183ddc1c7bSBin Meng }; 2193ddc1c7bSBin Meng 2203ddc1c7bSBin Meng gpioe { 2213ddc1c7bSBin Meng compatible = "intel,ich6-gpio"; 2223ddc1c7bSBin Meng u-boot,dm-pre-reloc; 2233ddc1c7bSBin Meng reg = <0x80 0x20>; 2243ddc1c7bSBin Meng bank-name = "E"; 225770ee017SBin Meng use-lvl-write-cache; 2263ddc1c7bSBin Meng }; 2273ddc1c7bSBin Meng 2283ddc1c7bSBin Meng gpiof { 2293ddc1c7bSBin Meng compatible = "intel,ich6-gpio"; 2303ddc1c7bSBin Meng u-boot,dm-pre-reloc; 2313ddc1c7bSBin Meng reg = <0xA0 0x20>; 2323ddc1c7bSBin Meng bank-name = "F"; 233770ee017SBin Meng use-lvl-write-cache; 2343ddc1c7bSBin Meng }; 235f2b85ab5SSimon Glass }; 2369b911bedSBin Meng }; 2379b911bedSBin Meng 238f3b84a30SAndrew Bradford fsp { 239f3b84a30SAndrew Bradford compatible = "intel,baytrail-fsp"; 2405e74e5a6SBin Meng fsp,mrc-init-tseg-size = <MRC_INIT_TSEG_SIZE_1MB>; 2415e74e5a6SBin Meng fsp,mrc-init-mmio-size = <MRC_INIT_MMIO_SIZE_2048MB>; 242f3b84a30SAndrew Bradford fsp,mrc-init-spd-addr1 = <0xa0>; 243f3b84a30SAndrew Bradford fsp,mrc-init-spd-addr2 = <0xa2>; 2445e74e5a6SBin Meng fsp,emmc-boot-mode = <EMMC_BOOT_MODE_AUTO>; 245f3b84a30SAndrew Bradford fsp,enable-sdio; 246f3b84a30SAndrew Bradford fsp,enable-sdcard; 247f3b84a30SAndrew Bradford fsp,enable-hsuart1; 248f3b84a30SAndrew Bradford fsp,enable-spi; 249f3b84a30SAndrew Bradford fsp,enable-sata; 2505e74e5a6SBin Meng fsp,sata-mode = <SATA_MODE_AHCI>; 251*f8f291b0SBin Meng fsp,lpe-mode = <LPE_MODE_PCI>; 252*f8f291b0SBin Meng fsp,lpss-sio-mode = <LPSS_SIO_MODE_PCI>; 253f3b84a30SAndrew Bradford fsp,enable-dma0; 254f3b84a30SAndrew Bradford fsp,enable-dma1; 255f3b84a30SAndrew Bradford fsp,enable-i2c0; 256f3b84a30SAndrew Bradford fsp,enable-i2c1; 257f3b84a30SAndrew Bradford fsp,enable-i2c2; 258f3b84a30SAndrew Bradford fsp,enable-i2c3; 259f3b84a30SAndrew Bradford fsp,enable-i2c4; 260f3b84a30SAndrew Bradford fsp,enable-i2c5; 261f3b84a30SAndrew Bradford fsp,enable-i2c6; 262f3b84a30SAndrew Bradford fsp,enable-pwm0; 263f3b84a30SAndrew Bradford fsp,enable-pwm1; 2645e74e5a6SBin Meng fsp,igd-dvmt50-pre-alloc = <IGD_DVMT50_PRE_ALLOC_64MB>; 2655e74e5a6SBin Meng fsp,aperture-size = <APERTURE_SIZE_256MB>; 2665e74e5a6SBin Meng fsp,gtt-size = <GTT_SIZE_2MB>; 267*f8f291b0SBin Meng fsp,scc-mode = <SCC_MODE_PCI>; 2685e74e5a6SBin Meng fsp,os-selection = <OS_SELECTION_LINUX>; 269f3b84a30SAndrew Bradford fsp,emmc45-ddr50-enabled; 270f3b84a30SAndrew Bradford fsp,emmc45-retune-timer-value = <8>; 271f3b84a30SAndrew Bradford fsp,enable-igd; 272f3b84a30SAndrew Bradford }; 273f3b84a30SAndrew Bradford 2749b911bedSBin Meng microcode { 2759b911bedSBin Meng update@0 { 2769b911bedSBin Meng#include "microcode/m0230671117.dtsi" 2779b911bedSBin Meng }; 2785fb01516SBin Meng update@1 { 279bab4b961SBin Meng#include "microcode/m0130673325.dtsi" 2805fb01516SBin Meng }; 2815fb01516SBin Meng update@2 { 282bab4b961SBin Meng#include "microcode/m0130679907.dtsi" 2835fb01516SBin Meng }; 2849b911bedSBin Meng }; 2859b911bedSBin Meng 2869b911bedSBin Meng}; 287