xref: /rk3399_rockchip-uboot/arch/x86/dts/conga-qeval20-qa3-e3845.dts (revision 66712c298d20453cee4b217d37d1698aae2b9f7a)
182ceba2cSStefan Roese/*
282ceba2cSStefan Roese * Copyright (C) 2014, Bin Meng <bmeng.cn@gmail.com>
382ceba2cSStefan Roese * Copyright (C) 2016 Stefan Roese <sr@denx.de>
482ceba2cSStefan Roese *
582ceba2cSStefan Roese * SPDX-License-Identifier:	GPL-2.0+
682ceba2cSStefan Roese */
782ceba2cSStefan Roese
882ceba2cSStefan Roese/dts-v1/;
982ceba2cSStefan Roese
105e74e5a6SBin Meng#include <asm/arch-baytrail/fsp/fsp_configs.h>
1182ceba2cSStefan Roese#include <dt-bindings/gpio/x86-gpio.h>
1282ceba2cSStefan Roese#include <dt-bindings/interrupt-router/intel-irq.h>
1382ceba2cSStefan Roese
1482ceba2cSStefan Roese/include/ "skeleton.dtsi"
1582ceba2cSStefan Roese/include/ "serial.dtsi"
1682ceba2cSStefan Roese/include/ "rtc.dtsi"
1782ceba2cSStefan Roese/include/ "tsc_timer.dtsi"
1882ceba2cSStefan Roese
1982ceba2cSStefan Roese/ {
2082ceba2cSStefan Roese	model = "congatec-QEVAL20-QA3-E3845";
2182ceba2cSStefan Roese	compatible = "congatec,qeval20-qa3-e3845", "intel,baytrail";
2282ceba2cSStefan Roese
2382ceba2cSStefan Roese	aliases {
2482ceba2cSStefan Roese		serial0 = &serial;
2582ceba2cSStefan Roese		spi0 = &spi;
2682ceba2cSStefan Roese	};
2782ceba2cSStefan Roese
2882ceba2cSStefan Roese	config {
2982ceba2cSStefan Roese		silent_console = <0>;
3082ceba2cSStefan Roese	};
3182ceba2cSStefan Roese
3282ceba2cSStefan Roese	pch_pinctrl {
3382ceba2cSStefan Roese		compatible = "intel,x86-pinctrl";
34e264e3ccSBin Meng		reg = <0 0>;
35f7a01e48SBin Meng
36f7a01e48SBin Meng		/*
37f7a01e48SBin Meng		 * As of today, the latest version FSP (gold4) for BayTrail
38f7a01e48SBin Meng		 * misses the PAD configuration of the SD controller's Card
39f7a01e48SBin Meng		 * Detect signal. The default PAD value for the CD pin sets
40f7a01e48SBin Meng		 * the pin to work in GPIO mode, which causes card detect
41f7a01e48SBin Meng		 * status cannot be reflected by the Present State register
42f7a01e48SBin Meng		 * in the SD controller (bit 16 & bit 18 are always zero).
43f7a01e48SBin Meng		 *
44f7a01e48SBin Meng		 * Configure this pin to function 1 (SD controller).
45f7a01e48SBin Meng		 */
46f7a01e48SBin Meng		sdmmc3_cd@0 {
47f7a01e48SBin Meng			pad-offset = <0x3a0>;
48f7a01e48SBin Meng			mode-func = <1>;
49f7a01e48SBin Meng		};
50303dfc2eSStefan Roese
51303dfc2eSStefan Roese		/* Add SMBus PAD configuration */
52303dfc2eSStefan Roese		smbus_clk@0 {
53303dfc2eSStefan Roese			pad-offset = <0x580>;
54303dfc2eSStefan Roese			mode-func = <1>;
55303dfc2eSStefan Roese		};
56303dfc2eSStefan Roese
57303dfc2eSStefan Roese		smbus_data@0 {
58303dfc2eSStefan Roese			pad-offset = <0x5a0>;
59303dfc2eSStefan Roese			mode-func = <1>;
60303dfc2eSStefan Roese		};
6182ceba2cSStefan Roese	};
6282ceba2cSStefan Roese
6382ceba2cSStefan Roese	chosen {
6482ceba2cSStefan Roese		stdout-path = "/serial";
6582ceba2cSStefan Roese	};
6682ceba2cSStefan Roese
6782ceba2cSStefan Roese	cpus {
6882ceba2cSStefan Roese		#address-cells = <1>;
6982ceba2cSStefan Roese		#size-cells = <0>;
7082ceba2cSStefan Roese
7182ceba2cSStefan Roese		cpu@0 {
7282ceba2cSStefan Roese			device_type = "cpu";
7382ceba2cSStefan Roese			compatible = "intel,baytrail-cpu";
7482ceba2cSStefan Roese			reg = <0>;
7582ceba2cSStefan Roese			intel,apic-id = <0>;
7682ceba2cSStefan Roese		};
7782ceba2cSStefan Roese
7882ceba2cSStefan Roese		cpu@1 {
7982ceba2cSStefan Roese			device_type = "cpu";
8082ceba2cSStefan Roese			compatible = "intel,baytrail-cpu";
8182ceba2cSStefan Roese			reg = <1>;
8282ceba2cSStefan Roese			intel,apic-id = <2>;
8382ceba2cSStefan Roese		};
8482ceba2cSStefan Roese
8582ceba2cSStefan Roese		cpu@2 {
8682ceba2cSStefan Roese			device_type = "cpu";
8782ceba2cSStefan Roese			compatible = "intel,baytrail-cpu";
8882ceba2cSStefan Roese			reg = <2>;
8982ceba2cSStefan Roese			intel,apic-id = <4>;
9082ceba2cSStefan Roese		};
9182ceba2cSStefan Roese
9282ceba2cSStefan Roese		cpu@3 {
9382ceba2cSStefan Roese			device_type = "cpu";
9482ceba2cSStefan Roese			compatible = "intel,baytrail-cpu";
9582ceba2cSStefan Roese			reg = <3>;
9682ceba2cSStefan Roese			intel,apic-id = <6>;
9782ceba2cSStefan Roese		};
9882ceba2cSStefan Roese	};
9982ceba2cSStefan Roese
10082ceba2cSStefan Roese	pci {
10182ceba2cSStefan Roese		compatible = "intel,pci-baytrail", "pci-x86";
10282ceba2cSStefan Roese		#address-cells = <3>;
10382ceba2cSStefan Roese		#size-cells = <2>;
10482ceba2cSStefan Roese		u-boot,dm-pre-reloc;
10582ceba2cSStefan Roese		ranges = <0x02000000 0x0 0x80000000 0x80000000 0 0x40000000
10682ceba2cSStefan Roese			  0x42000000 0x0 0xc0000000 0xc0000000 0 0x20000000
10782ceba2cSStefan Roese			  0x01000000 0x0 0x2000 0x2000 0 0xe000>;
10882ceba2cSStefan Roese
10982ceba2cSStefan Roese		pch@1f,0 {
11082ceba2cSStefan Roese			reg = <0x0000f800 0 0 0 0>;
11182ceba2cSStefan Roese			compatible = "pci8086,0f1c", "intel,pch9";
11282ceba2cSStefan Roese			#address-cells = <1>;
11382ceba2cSStefan Roese			#size-cells = <1>;
11482ceba2cSStefan Roese
11582ceba2cSStefan Roese			irq-router {
11682ceba2cSStefan Roese				compatible = "intel,irq-router";
11782ceba2cSStefan Roese				intel,pirq-config = "ibase";
11882ceba2cSStefan Roese				intel,ibase-offset = <0x50>;
119ce8dd77dSBin Meng				intel,actl-addr = <0>;
12082ceba2cSStefan Roese				intel,pirq-link = <8 8>;
12182ceba2cSStefan Roese				intel,pirq-mask = <0xdee0>;
12282ceba2cSStefan Roese				intel,pirq-routing = <
12382ceba2cSStefan Roese					/* BayTrail PCI devices */
12482ceba2cSStefan Roese					PCI_BDF(0, 2, 0) INTA PIRQA
12582ceba2cSStefan Roese					PCI_BDF(0, 3, 0) INTA PIRQA
12682ceba2cSStefan Roese					PCI_BDF(0, 16, 0) INTA PIRQA
12782ceba2cSStefan Roese					PCI_BDF(0, 17, 0) INTA PIRQA
12882ceba2cSStefan Roese					PCI_BDF(0, 18, 0) INTA PIRQA
12982ceba2cSStefan Roese					PCI_BDF(0, 19, 0) INTA PIRQA
13082ceba2cSStefan Roese					PCI_BDF(0, 20, 0) INTA PIRQA
13182ceba2cSStefan Roese					PCI_BDF(0, 21, 0) INTA PIRQA
13282ceba2cSStefan Roese					PCI_BDF(0, 22, 0) INTA PIRQA
13382ceba2cSStefan Roese					PCI_BDF(0, 23, 0) INTA PIRQA
13482ceba2cSStefan Roese					PCI_BDF(0, 24, 0) INTA PIRQA
13582ceba2cSStefan Roese					PCI_BDF(0, 24, 1) INTC PIRQC
13682ceba2cSStefan Roese					PCI_BDF(0, 24, 2) INTD PIRQD
13782ceba2cSStefan Roese					PCI_BDF(0, 24, 3) INTB PIRQB
13882ceba2cSStefan Roese					PCI_BDF(0, 24, 4) INTA PIRQA
13982ceba2cSStefan Roese					PCI_BDF(0, 24, 5) INTC PIRQC
14082ceba2cSStefan Roese					PCI_BDF(0, 24, 6) INTD PIRQD
14182ceba2cSStefan Roese					PCI_BDF(0, 24, 7) INTB PIRQB
14282ceba2cSStefan Roese					PCI_BDF(0, 26, 0) INTA PIRQA
14382ceba2cSStefan Roese					PCI_BDF(0, 27, 0) INTA PIRQA
14482ceba2cSStefan Roese					PCI_BDF(0, 28, 0) INTA PIRQA
14582ceba2cSStefan Roese					PCI_BDF(0, 28, 1) INTB PIRQB
14682ceba2cSStefan Roese					PCI_BDF(0, 28, 2) INTC PIRQC
14782ceba2cSStefan Roese					PCI_BDF(0, 28, 3) INTD PIRQD
14882ceba2cSStefan Roese					PCI_BDF(0, 29, 0) INTA PIRQA
14982ceba2cSStefan Roese					PCI_BDF(0, 30, 0) INTA PIRQA
15082ceba2cSStefan Roese					PCI_BDF(0, 30, 1) INTD PIRQD
15182ceba2cSStefan Roese					PCI_BDF(0, 30, 2) INTB PIRQB
15282ceba2cSStefan Roese					PCI_BDF(0, 30, 3) INTC PIRQC
15382ceba2cSStefan Roese					PCI_BDF(0, 30, 4) INTD PIRQD
15482ceba2cSStefan Roese					PCI_BDF(0, 30, 5) INTB PIRQB
15582ceba2cSStefan Roese					PCI_BDF(0, 31, 3) INTB PIRQB
15682ceba2cSStefan Roese
15782ceba2cSStefan Roese					/*
15882ceba2cSStefan Roese					 * PCIe root ports downstream
15982ceba2cSStefan Roese					 * interrupts
16082ceba2cSStefan Roese					 */
16182ceba2cSStefan Roese					PCI_BDF(1, 0, 0) INTA PIRQA
16282ceba2cSStefan Roese					PCI_BDF(1, 0, 0) INTB PIRQB
16382ceba2cSStefan Roese					PCI_BDF(1, 0, 0) INTC PIRQC
16482ceba2cSStefan Roese					PCI_BDF(1, 0, 0) INTD PIRQD
16582ceba2cSStefan Roese					PCI_BDF(2, 0, 0) INTA PIRQB
16682ceba2cSStefan Roese					PCI_BDF(2, 0, 0) INTB PIRQC
16782ceba2cSStefan Roese					PCI_BDF(2, 0, 0) INTC PIRQD
16882ceba2cSStefan Roese					PCI_BDF(2, 0, 0) INTD PIRQA
16982ceba2cSStefan Roese					PCI_BDF(3, 0, 0) INTA PIRQC
17082ceba2cSStefan Roese					PCI_BDF(3, 0, 0) INTB PIRQD
17182ceba2cSStefan Roese					PCI_BDF(3, 0, 0) INTC PIRQA
17282ceba2cSStefan Roese					PCI_BDF(3, 0, 0) INTD PIRQB
17382ceba2cSStefan Roese					PCI_BDF(4, 0, 0) INTA PIRQD
17482ceba2cSStefan Roese					PCI_BDF(4, 0, 0) INTB PIRQA
17582ceba2cSStefan Roese					PCI_BDF(4, 0, 0) INTC PIRQB
17682ceba2cSStefan Roese					PCI_BDF(4, 0, 0) INTD PIRQC
17782ceba2cSStefan Roese				>;
17882ceba2cSStefan Roese			};
17982ceba2cSStefan Roese
18082ceba2cSStefan Roese			spi: spi {
18182ceba2cSStefan Roese				#address-cells = <1>;
18282ceba2cSStefan Roese				#size-cells = <0>;
18382ceba2cSStefan Roese				compatible = "intel,ich9-spi";
18482ceba2cSStefan Roese				spi-flash@0 {
18582ceba2cSStefan Roese					#address-cells = <1>;
18682ceba2cSStefan Roese					#size-cells = <1>;
18782ceba2cSStefan Roese					reg = <0>;
18882ceba2cSStefan Roese					compatible = "stmicro,n25q064a",
18982ceba2cSStefan Roese						"spi-flash";
19082ceba2cSStefan Roese					memory-map = <0xff800000 0x00800000>;
19182ceba2cSStefan Roese					rw-mrc-cache {
19282ceba2cSStefan Roese						label = "rw-mrc-cache";
19382ceba2cSStefan Roese						reg = <0x006f0000 0x00010000>;
19482ceba2cSStefan Roese					};
19582ceba2cSStefan Roese				};
19682ceba2cSStefan Roese			};
19782ceba2cSStefan Roese
19882ceba2cSStefan Roese			gpioa {
19982ceba2cSStefan Roese				compatible = "intel,ich6-gpio";
20082ceba2cSStefan Roese				u-boot,dm-pre-reloc;
20182ceba2cSStefan Roese				reg = <0 0x20>;
20282ceba2cSStefan Roese				bank-name = "A";
203770ee017SBin Meng				use-lvl-write-cache;
20482ceba2cSStefan Roese			};
20582ceba2cSStefan Roese
20682ceba2cSStefan Roese			gpiob {
20782ceba2cSStefan Roese				compatible = "intel,ich6-gpio";
20882ceba2cSStefan Roese				u-boot,dm-pre-reloc;
20982ceba2cSStefan Roese				reg = <0x20 0x20>;
21082ceba2cSStefan Roese				bank-name = "B";
211770ee017SBin Meng				use-lvl-write-cache;
21282ceba2cSStefan Roese			};
21382ceba2cSStefan Roese
21482ceba2cSStefan Roese			gpioc {
21582ceba2cSStefan Roese				compatible = "intel,ich6-gpio";
21682ceba2cSStefan Roese				u-boot,dm-pre-reloc;
21782ceba2cSStefan Roese				reg = <0x40 0x20>;
21882ceba2cSStefan Roese				bank-name = "C";
219770ee017SBin Meng				use-lvl-write-cache;
22082ceba2cSStefan Roese			};
22182ceba2cSStefan Roese
22282ceba2cSStefan Roese			gpiod {
22382ceba2cSStefan Roese				compatible = "intel,ich6-gpio";
22482ceba2cSStefan Roese				u-boot,dm-pre-reloc;
22582ceba2cSStefan Roese				reg = <0x60 0x20>;
22682ceba2cSStefan Roese				bank-name = "D";
227770ee017SBin Meng				use-lvl-write-cache;
22882ceba2cSStefan Roese			};
22982ceba2cSStefan Roese
23082ceba2cSStefan Roese			gpioe {
23182ceba2cSStefan Roese				compatible = "intel,ich6-gpio";
23282ceba2cSStefan Roese				u-boot,dm-pre-reloc;
23382ceba2cSStefan Roese				reg = <0x80 0x20>;
23482ceba2cSStefan Roese				bank-name = "E";
235770ee017SBin Meng				use-lvl-write-cache;
23682ceba2cSStefan Roese			};
23782ceba2cSStefan Roese
23882ceba2cSStefan Roese			gpiof {
23982ceba2cSStefan Roese				compatible = "intel,ich6-gpio";
24082ceba2cSStefan Roese				u-boot,dm-pre-reloc;
24182ceba2cSStefan Roese				reg = <0xA0 0x20>;
24282ceba2cSStefan Roese				bank-name = "F";
243770ee017SBin Meng				use-lvl-write-cache;
24482ceba2cSStefan Roese			};
24582ceba2cSStefan Roese		};
24682ceba2cSStefan Roese	};
24782ceba2cSStefan Roese
24882ceba2cSStefan Roese	fsp {
24982ceba2cSStefan Roese		compatible = "intel,baytrail-fsp";
2505e74e5a6SBin Meng		fsp,mrc-init-tseg-size = <MRC_INIT_TSEG_SIZE_1MB>;
2515e74e5a6SBin Meng		fsp,mrc-init-mmio-size = <MRC_INIT_MMIO_SIZE_2048MB>;
25282ceba2cSStefan Roese		fsp,mrc-init-spd-addr1 = <0xa0>;
25382ceba2cSStefan Roese		fsp,mrc-init-spd-addr2 = <0xa2>;
2545e74e5a6SBin Meng		fsp,emmc-boot-mode = <EMMC_BOOT_MODE_AUTO>;
25582ceba2cSStefan Roese		fsp,enable-sdio;
25682ceba2cSStefan Roese		fsp,enable-sdcard;
25782ceba2cSStefan Roese		fsp,enable-hsuart1;
25882ceba2cSStefan Roese		fsp,enable-spi;
25982ceba2cSStefan Roese		fsp,enable-sata;
2605e74e5a6SBin Meng		fsp,sata-mode = <SATA_MODE_AHCI>;
261*66712c29SStefan Roese#ifdef CONFIG_USB_XHCI_HCD
262*66712c29SStefan Roese		fsp,enable-xhci;
263*66712c29SStefan Roese#endif
264f8f291b0SBin Meng		fsp,lpe-mode = <LPE_MODE_PCI>;
265f8f291b0SBin Meng		fsp,lpss-sio-mode = <LPSS_SIO_MODE_PCI>;
26682ceba2cSStefan Roese		fsp,enable-dma0;
26782ceba2cSStefan Roese		fsp,enable-dma1;
26882ceba2cSStefan Roese		fsp,enable-pwm0;
26982ceba2cSStefan Roese		fsp,enable-pwm1;
2705e74e5a6SBin Meng		fsp,igd-dvmt50-pre-alloc = <IGD_DVMT50_PRE_ALLOC_64MB>;
2715e74e5a6SBin Meng		fsp,aperture-size = <APERTURE_SIZE_256MB>;
2725e74e5a6SBin Meng		fsp,gtt-size = <GTT_SIZE_2MB>;
273f8f291b0SBin Meng		fsp,scc-mode = <SCC_MODE_PCI>;
2745e74e5a6SBin Meng		fsp,os-selection = <OS_SELECTION_LINUX>;
27582ceba2cSStefan Roese		fsp,emmc45-ddr50-enabled;
27682ceba2cSStefan Roese		fsp,emmc45-retune-timer-value = <8>;
27782ceba2cSStefan Roese		fsp,enable-igd;
27882ceba2cSStefan Roese		fsp,enable-memory-down;
27982ceba2cSStefan Roese		fsp,memory-down-params {
28082ceba2cSStefan Roese			compatible = "intel,baytrail-fsp-mdp";
2815e74e5a6SBin Meng			fsp,dram-speed = <DRAM_SPEED_1333MTS>;
2825e74e5a6SBin Meng			fsp,dram-type = <DRAM_TYPE_DDR3L>;
28382ceba2cSStefan Roese			fsp,dimm-0-enable;
28482ceba2cSStefan Roese			fsp,dimm-1-enable;
2855e74e5a6SBin Meng			fsp,dimm-width = <DIMM_WIDTH_X16>;
2865e74e5a6SBin Meng			fsp,dimm-density = <DIMM_DENSITY_4GBIT>;
2875e74e5a6SBin Meng			fsp,dimm-bus-width = <DIMM_BUS_WIDTH_64BITS>;
2885e74e5a6SBin Meng			fsp,dimm-sides = <DIMM_SIDES_1RANKS>;
28982ceba2cSStefan Roese
29082ceba2cSStefan Roese			/* These following values might need a re-visit */
29182ceba2cSStefan Roese			fsp,dimm-tcl = <8>;
29282ceba2cSStefan Roese			fsp,dimm-trpt-rcd = <8>;
29382ceba2cSStefan Roese			fsp,dimm-twr = <8>;
29482ceba2cSStefan Roese			fsp,dimm-twtr = <4>;
29582ceba2cSStefan Roese			fsp,dimm-trrd = <6>;
29682ceba2cSStefan Roese			fsp,dimm-trtp = <4>;
29782ceba2cSStefan Roese			fsp,dimm-tfaw = <22>;
29882ceba2cSStefan Roese		};
29982ceba2cSStefan Roese	};
30082ceba2cSStefan Roese
30182ceba2cSStefan Roese	microcode {
30282ceba2cSStefan Roese		update@0 {
303bab4b961SBin Meng#include "microcode/m0130673325.dtsi"
30482ceba2cSStefan Roese		};
30582ceba2cSStefan Roese		update@1 {
306bab4b961SBin Meng#include "microcode/m0130679907.dtsi"
30782ceba2cSStefan Roese		};
30882ceba2cSStefan Roese	};
30982ceba2cSStefan Roese};
310