// SPDX-License-Identifier: GPL-2.0+ /* * Copyright (C) 2015, Bin Meng <bmeng.cn@gmail.com> */ /dts-v1/; #include <asm/arch-baytrail/fsp/fsp_configs.h> #include <dt-bindings/gpio/x86-gpio.h> #include <dt-bindings/interrupt-router/intel-irq.h> /include/ "skeleton.dtsi" /include/ "keyboard.dtsi" /include/ "serial.dtsi" /include/ "rtc.dtsi" /include/ "tsc_timer.dtsi" /include/ "coreboot_fb.dtsi" / { model = "Intel Bayley Bay"; compatible = "intel,bayleybay", "intel,baytrail"; aliases { serial0 = &serial; spi0 = &spi; }; config { silent_console = <0>; }; chosen { stdout-path = "/serial"; }; cpus { #address-cells = <1>; #size-cells = <0>; cpu@0 { device_type = "cpu"; compatible = "intel,baytrail-cpu"; reg = <0>; intel,apic-id = <0>; }; cpu@1 { device_type = "cpu"; compatible = "intel,baytrail-cpu"; reg = <1>; intel,apic-id = <2>; }; cpu@2 { device_type = "cpu"; compatible = "intel,baytrail-cpu"; reg = <2>; intel,apic-id = <4>; }; cpu@3 { device_type = "cpu"; compatible = "intel,baytrail-cpu"; reg = <3>; intel,apic-id = <6>; }; }; pch_pinctrl { compatible = "intel,x86-pinctrl"; reg = <0 0>; /* * As of today, the latest version FSP (gold4) for BayTrail * misses the PAD configuration of the SD controller's Card * Detect signal. The default PAD value for the CD pin sets * the pin to work in GPIO mode, which causes card detect * status cannot be reflected by the Present State register * in the SD controller (bit 16 & bit 18 are always zero). * * Configure this pin to function 1 (SD controller). */ sdmmc3_cd@0 { pad-offset = <0x3a0>; mode-func = <1>; }; }; pci { compatible = "pci-x86"; #address-cells = <3>; #size-cells = <2>; u-boot,dm-pre-reloc; ranges = <0x02000000 0x0 0x80000000 0x80000000 0 0x40000000 0x42000000 0x0 0xc0000000 0xc0000000 0 0x20000000 0x01000000 0x0 0x2000 0x2000 0 0xe000>; pch@1f,0 { reg = <0x0000f800 0 0 0 0>; compatible = "intel,pch9"; #address-cells = <1>; #size-cells = <1>; irq-router { compatible = "intel,irq-router"; intel,pirq-config = "ibase"; intel,ibase-offset = <0x50>; intel,actl-addr = <0>; intel,pirq-link = <8 8>; intel,pirq-mask = <0xdee0>; intel,pirq-routing = < /* BayTrail PCI devices */ PCI_BDF(0, 2, 0) INTA PIRQA PCI_BDF(0, 3, 0) INTA PIRQA PCI_BDF(0, 16, 0) INTA PIRQA PCI_BDF(0, 17, 0) INTA PIRQA PCI_BDF(0, 18, 0) INTA PIRQA PCI_BDF(0, 19, 0) INTA PIRQA PCI_BDF(0, 20, 0) INTA PIRQA PCI_BDF(0, 21, 0) INTA PIRQA PCI_BDF(0, 22, 0) INTA PIRQA PCI_BDF(0, 23, 0) INTA PIRQA PCI_BDF(0, 24, 0) INTA PIRQA PCI_BDF(0, 24, 1) INTC PIRQC PCI_BDF(0, 24, 2) INTD PIRQD PCI_BDF(0, 24, 3) INTB PIRQB PCI_BDF(0, 24, 4) INTA PIRQA PCI_BDF(0, 24, 5) INTC PIRQC PCI_BDF(0, 24, 6) INTD PIRQD PCI_BDF(0, 24, 7) INTB PIRQB PCI_BDF(0, 26, 0) INTA PIRQA PCI_BDF(0, 27, 0) INTA PIRQA PCI_BDF(0, 28, 0) INTA PIRQA PCI_BDF(0, 28, 1) INTB PIRQB PCI_BDF(0, 28, 2) INTC PIRQC PCI_BDF(0, 28, 3) INTD PIRQD PCI_BDF(0, 29, 0) INTA PIRQA PCI_BDF(0, 30, 0) INTA PIRQA PCI_BDF(0, 30, 1) INTD PIRQD PCI_BDF(0, 30, 2) INTB PIRQB PCI_BDF(0, 30, 3) INTC PIRQC PCI_BDF(0, 30, 4) INTD PIRQD PCI_BDF(0, 30, 5) INTB PIRQB PCI_BDF(0, 31, 3) INTB PIRQB /* * PCIe root ports downstream * interrupts */ PCI_BDF(1, 0, 0) INTA PIRQA PCI_BDF(1, 0, 0) INTB PIRQB PCI_BDF(1, 0, 0) INTC PIRQC PCI_BDF(1, 0, 0) INTD PIRQD PCI_BDF(2, 0, 0) INTA PIRQB PCI_BDF(2, 0, 0) INTB PIRQC PCI_BDF(2, 0, 0) INTC PIRQD PCI_BDF(2, 0, 0) INTD PIRQA PCI_BDF(3, 0, 0) INTA PIRQC PCI_BDF(3, 0, 0) INTB PIRQD PCI_BDF(3, 0, 0) INTC PIRQA PCI_BDF(3, 0, 0) INTD PIRQB PCI_BDF(4, 0, 0) INTA PIRQD PCI_BDF(4, 0, 0) INTB PIRQA PCI_BDF(4, 0, 0) INTC PIRQB PCI_BDF(4, 0, 0) INTD PIRQC >; }; spi: spi { #address-cells = <1>; #size-cells = <0>; compatible = "intel,ich9-spi"; spi-flash@0 { #address-cells = <1>; #size-cells = <1>; reg = <0>; compatible = "winbond,w25q64dw", "spi-flash"; memory-map = <0xff800000 0x00800000>; rw-mrc-cache { label = "rw-mrc-cache"; reg = <0x006e0000 0x00010000>; }; }; }; gpioa { compatible = "intel,ich6-gpio"; u-boot,dm-pre-reloc; reg = <0 0x20>; bank-name = "A"; use-lvl-write-cache; }; gpiob { compatible = "intel,ich6-gpio"; u-boot,dm-pre-reloc; reg = <0x20 0x20>; bank-name = "B"; use-lvl-write-cache; }; gpioc { compatible = "intel,ich6-gpio"; u-boot,dm-pre-reloc; reg = <0x40 0x20>; bank-name = "C"; use-lvl-write-cache; }; gpiod { compatible = "intel,ich6-gpio"; u-boot,dm-pre-reloc; reg = <0x60 0x20>; bank-name = "D"; use-lvl-write-cache; }; gpioe { compatible = "intel,ich6-gpio"; u-boot,dm-pre-reloc; reg = <0x80 0x20>; bank-name = "E"; use-lvl-write-cache; }; gpiof { compatible = "intel,ich6-gpio"; u-boot,dm-pre-reloc; reg = <0xA0 0x20>; bank-name = "F"; use-lvl-write-cache; }; }; }; fsp { compatible = "intel,baytrail-fsp"; fsp,mrc-init-tseg-size = <MRC_INIT_TSEG_SIZE_1MB>; fsp,mrc-init-mmio-size = <MRC_INIT_MMIO_SIZE_2048MB>; fsp,mrc-init-spd-addr1 = <0xa0>; fsp,mrc-init-spd-addr2 = <0xa2>; fsp,emmc-boot-mode = <EMMC_BOOT_MODE_AUTO>; fsp,enable-sdio; fsp,enable-sdcard; fsp,enable-hsuart1; fsp,enable-spi; fsp,enable-sata; fsp,sata-mode = <SATA_MODE_AHCI>; fsp,lpe-mode = <LPE_MODE_PCI>; fsp,lpss-sio-mode = <LPSS_SIO_MODE_PCI>; fsp,enable-dma0; fsp,enable-dma1; fsp,enable-i2c0; fsp,enable-i2c1; fsp,enable-i2c2; fsp,enable-i2c3; fsp,enable-i2c4; fsp,enable-i2c5; fsp,enable-i2c6; fsp,enable-pwm0; fsp,enable-pwm1; fsp,igd-dvmt50-pre-alloc = <IGD_DVMT50_PRE_ALLOC_64MB>; fsp,aperture-size = <APERTURE_SIZE_256MB>; fsp,gtt-size = <GTT_SIZE_2MB>; fsp,scc-mode = <SCC_MODE_PCI>; fsp,os-selection = <OS_SELECTION_LINUX>; fsp,emmc45-ddr50-enabled; fsp,emmc45-retune-timer-value = <8>; fsp,enable-igd; }; microcode { update@0 { #include "microcode/m0230671117.dtsi" }; update@1 { #include "microcode/m0130673325.dtsi" }; update@2 { #include "microcode/m0130679907.dtsi" }; }; };