xref: /rk3399_rockchip-uboot/arch/x86/dts/conga-qeval20-qa3-e3845.dts (revision 303dfc2e5efeaebfb7f01f2e59e5870e645376ca)
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
1082ceba2cSStefan Roese#include <dt-bindings/gpio/x86-gpio.h>
1182ceba2cSStefan Roese#include <dt-bindings/interrupt-router/intel-irq.h>
1282ceba2cSStefan Roese
1382ceba2cSStefan Roese/include/ "skeleton.dtsi"
1482ceba2cSStefan Roese/include/ "serial.dtsi"
1582ceba2cSStefan Roese/include/ "rtc.dtsi"
1682ceba2cSStefan Roese/include/ "tsc_timer.dtsi"
1782ceba2cSStefan Roese
1882ceba2cSStefan Roese/ {
1982ceba2cSStefan Roese	model = "congatec-QEVAL20-QA3-E3845";
2082ceba2cSStefan Roese	compatible = "congatec,qeval20-qa3-e3845", "intel,baytrail";
2182ceba2cSStefan Roese
2282ceba2cSStefan Roese	aliases {
2382ceba2cSStefan Roese		serial0 = &serial;
2482ceba2cSStefan Roese		spi0 = &spi;
2582ceba2cSStefan Roese	};
2682ceba2cSStefan Roese
2782ceba2cSStefan Roese	config {
2882ceba2cSStefan Roese		silent_console = <0>;
2982ceba2cSStefan Roese	};
3082ceba2cSStefan Roese
3182ceba2cSStefan Roese	pch_pinctrl {
3282ceba2cSStefan Roese		compatible = "intel,x86-pinctrl";
33e264e3ccSBin Meng		reg = <0 0>;
34f7a01e48SBin Meng
35f7a01e48SBin Meng		/*
36f7a01e48SBin Meng		 * As of today, the latest version FSP (gold4) for BayTrail
37f7a01e48SBin Meng		 * misses the PAD configuration of the SD controller's Card
38f7a01e48SBin Meng		 * Detect signal. The default PAD value for the CD pin sets
39f7a01e48SBin Meng		 * the pin to work in GPIO mode, which causes card detect
40f7a01e48SBin Meng		 * status cannot be reflected by the Present State register
41f7a01e48SBin Meng		 * in the SD controller (bit 16 & bit 18 are always zero).
42f7a01e48SBin Meng		 *
43f7a01e48SBin Meng		 * Configure this pin to function 1 (SD controller).
44f7a01e48SBin Meng		 */
45f7a01e48SBin Meng		sdmmc3_cd@0 {
46f7a01e48SBin Meng			pad-offset = <0x3a0>;
47f7a01e48SBin Meng			mode-func = <1>;
48f7a01e48SBin Meng		};
49*303dfc2eSStefan Roese
50*303dfc2eSStefan Roese		/* Add SMBus PAD configuration */
51*303dfc2eSStefan Roese		smbus_clk@0 {
52*303dfc2eSStefan Roese			pad-offset = <0x580>;
53*303dfc2eSStefan Roese			mode-func = <1>;
54*303dfc2eSStefan Roese		};
55*303dfc2eSStefan Roese
56*303dfc2eSStefan Roese		smbus_data@0 {
57*303dfc2eSStefan Roese			pad-offset = <0x5a0>;
58*303dfc2eSStefan Roese			mode-func = <1>;
59*303dfc2eSStefan Roese		};
6082ceba2cSStefan Roese	};
6182ceba2cSStefan Roese
6282ceba2cSStefan Roese	chosen {
6382ceba2cSStefan Roese		stdout-path = "/serial";
6482ceba2cSStefan Roese	};
6582ceba2cSStefan Roese
6682ceba2cSStefan Roese	cpus {
6782ceba2cSStefan Roese		#address-cells = <1>;
6882ceba2cSStefan Roese		#size-cells = <0>;
6982ceba2cSStefan Roese
7082ceba2cSStefan Roese		cpu@0 {
7182ceba2cSStefan Roese			device_type = "cpu";
7282ceba2cSStefan Roese			compatible = "intel,baytrail-cpu";
7382ceba2cSStefan Roese			reg = <0>;
7482ceba2cSStefan Roese			intel,apic-id = <0>;
7582ceba2cSStefan Roese		};
7682ceba2cSStefan Roese
7782ceba2cSStefan Roese		cpu@1 {
7882ceba2cSStefan Roese			device_type = "cpu";
7982ceba2cSStefan Roese			compatible = "intel,baytrail-cpu";
8082ceba2cSStefan Roese			reg = <1>;
8182ceba2cSStefan Roese			intel,apic-id = <2>;
8282ceba2cSStefan Roese		};
8382ceba2cSStefan Roese
8482ceba2cSStefan Roese		cpu@2 {
8582ceba2cSStefan Roese			device_type = "cpu";
8682ceba2cSStefan Roese			compatible = "intel,baytrail-cpu";
8782ceba2cSStefan Roese			reg = <2>;
8882ceba2cSStefan Roese			intel,apic-id = <4>;
8982ceba2cSStefan Roese		};
9082ceba2cSStefan Roese
9182ceba2cSStefan Roese		cpu@3 {
9282ceba2cSStefan Roese			device_type = "cpu";
9382ceba2cSStefan Roese			compatible = "intel,baytrail-cpu";
9482ceba2cSStefan Roese			reg = <3>;
9582ceba2cSStefan Roese			intel,apic-id = <6>;
9682ceba2cSStefan Roese		};
9782ceba2cSStefan Roese	};
9882ceba2cSStefan Roese
9982ceba2cSStefan Roese	pci {
10082ceba2cSStefan Roese		compatible = "intel,pci-baytrail", "pci-x86";
10182ceba2cSStefan Roese		#address-cells = <3>;
10282ceba2cSStefan Roese		#size-cells = <2>;
10382ceba2cSStefan Roese		u-boot,dm-pre-reloc;
10482ceba2cSStefan Roese		ranges = <0x02000000 0x0 0x80000000 0x80000000 0 0x40000000
10582ceba2cSStefan Roese			  0x42000000 0x0 0xc0000000 0xc0000000 0 0x20000000
10682ceba2cSStefan Roese			  0x01000000 0x0 0x2000 0x2000 0 0xe000>;
10782ceba2cSStefan Roese
10882ceba2cSStefan Roese		pch@1f,0 {
10982ceba2cSStefan Roese			reg = <0x0000f800 0 0 0 0>;
11082ceba2cSStefan Roese			compatible = "pci8086,0f1c", "intel,pch9";
11182ceba2cSStefan Roese			#address-cells = <1>;
11282ceba2cSStefan Roese			#size-cells = <1>;
11382ceba2cSStefan Roese
11482ceba2cSStefan Roese			irq-router {
11582ceba2cSStefan Roese				compatible = "intel,irq-router";
11682ceba2cSStefan Roese				intel,pirq-config = "ibase";
11782ceba2cSStefan Roese				intel,ibase-offset = <0x50>;
118ce8dd77dSBin Meng				intel,actl-addr = <0>;
11982ceba2cSStefan Roese				intel,pirq-link = <8 8>;
12082ceba2cSStefan Roese				intel,pirq-mask = <0xdee0>;
12182ceba2cSStefan Roese				intel,pirq-routing = <
12282ceba2cSStefan Roese					/* BayTrail PCI devices */
12382ceba2cSStefan Roese					PCI_BDF(0, 2, 0) INTA PIRQA
12482ceba2cSStefan Roese					PCI_BDF(0, 3, 0) INTA PIRQA
12582ceba2cSStefan Roese					PCI_BDF(0, 16, 0) INTA PIRQA
12682ceba2cSStefan Roese					PCI_BDF(0, 17, 0) INTA PIRQA
12782ceba2cSStefan Roese					PCI_BDF(0, 18, 0) INTA PIRQA
12882ceba2cSStefan Roese					PCI_BDF(0, 19, 0) INTA PIRQA
12982ceba2cSStefan Roese					PCI_BDF(0, 20, 0) INTA PIRQA
13082ceba2cSStefan Roese					PCI_BDF(0, 21, 0) INTA PIRQA
13182ceba2cSStefan Roese					PCI_BDF(0, 22, 0) INTA PIRQA
13282ceba2cSStefan Roese					PCI_BDF(0, 23, 0) INTA PIRQA
13382ceba2cSStefan Roese					PCI_BDF(0, 24, 0) INTA PIRQA
13482ceba2cSStefan Roese					PCI_BDF(0, 24, 1) INTC PIRQC
13582ceba2cSStefan Roese					PCI_BDF(0, 24, 2) INTD PIRQD
13682ceba2cSStefan Roese					PCI_BDF(0, 24, 3) INTB PIRQB
13782ceba2cSStefan Roese					PCI_BDF(0, 24, 4) INTA PIRQA
13882ceba2cSStefan Roese					PCI_BDF(0, 24, 5) INTC PIRQC
13982ceba2cSStefan Roese					PCI_BDF(0, 24, 6) INTD PIRQD
14082ceba2cSStefan Roese					PCI_BDF(0, 24, 7) INTB PIRQB
14182ceba2cSStefan Roese					PCI_BDF(0, 26, 0) INTA PIRQA
14282ceba2cSStefan Roese					PCI_BDF(0, 27, 0) INTA PIRQA
14382ceba2cSStefan Roese					PCI_BDF(0, 28, 0) INTA PIRQA
14482ceba2cSStefan Roese					PCI_BDF(0, 28, 1) INTB PIRQB
14582ceba2cSStefan Roese					PCI_BDF(0, 28, 2) INTC PIRQC
14682ceba2cSStefan Roese					PCI_BDF(0, 28, 3) INTD PIRQD
14782ceba2cSStefan Roese					PCI_BDF(0, 29, 0) INTA PIRQA
14882ceba2cSStefan Roese					PCI_BDF(0, 30, 0) INTA PIRQA
14982ceba2cSStefan Roese					PCI_BDF(0, 30, 1) INTD PIRQD
15082ceba2cSStefan Roese					PCI_BDF(0, 30, 2) INTB PIRQB
15182ceba2cSStefan Roese					PCI_BDF(0, 30, 3) INTC PIRQC
15282ceba2cSStefan Roese					PCI_BDF(0, 30, 4) INTD PIRQD
15382ceba2cSStefan Roese					PCI_BDF(0, 30, 5) INTB PIRQB
15482ceba2cSStefan Roese					PCI_BDF(0, 31, 3) INTB PIRQB
15582ceba2cSStefan Roese
15682ceba2cSStefan Roese					/*
15782ceba2cSStefan Roese					 * PCIe root ports downstream
15882ceba2cSStefan Roese					 * interrupts
15982ceba2cSStefan Roese					 */
16082ceba2cSStefan Roese					PCI_BDF(1, 0, 0) INTA PIRQA
16182ceba2cSStefan Roese					PCI_BDF(1, 0, 0) INTB PIRQB
16282ceba2cSStefan Roese					PCI_BDF(1, 0, 0) INTC PIRQC
16382ceba2cSStefan Roese					PCI_BDF(1, 0, 0) INTD PIRQD
16482ceba2cSStefan Roese					PCI_BDF(2, 0, 0) INTA PIRQB
16582ceba2cSStefan Roese					PCI_BDF(2, 0, 0) INTB PIRQC
16682ceba2cSStefan Roese					PCI_BDF(2, 0, 0) INTC PIRQD
16782ceba2cSStefan Roese					PCI_BDF(2, 0, 0) INTD PIRQA
16882ceba2cSStefan Roese					PCI_BDF(3, 0, 0) INTA PIRQC
16982ceba2cSStefan Roese					PCI_BDF(3, 0, 0) INTB PIRQD
17082ceba2cSStefan Roese					PCI_BDF(3, 0, 0) INTC PIRQA
17182ceba2cSStefan Roese					PCI_BDF(3, 0, 0) INTD PIRQB
17282ceba2cSStefan Roese					PCI_BDF(4, 0, 0) INTA PIRQD
17382ceba2cSStefan Roese					PCI_BDF(4, 0, 0) INTB PIRQA
17482ceba2cSStefan Roese					PCI_BDF(4, 0, 0) INTC PIRQB
17582ceba2cSStefan Roese					PCI_BDF(4, 0, 0) INTD PIRQC
17682ceba2cSStefan Roese				>;
17782ceba2cSStefan Roese			};
17882ceba2cSStefan Roese
17982ceba2cSStefan Roese			spi: spi {
18082ceba2cSStefan Roese				#address-cells = <1>;
18182ceba2cSStefan Roese				#size-cells = <0>;
18282ceba2cSStefan Roese				compatible = "intel,ich9-spi";
18382ceba2cSStefan Roese				spi-flash@0 {
18482ceba2cSStefan Roese					#address-cells = <1>;
18582ceba2cSStefan Roese					#size-cells = <1>;
18682ceba2cSStefan Roese					reg = <0>;
18782ceba2cSStefan Roese					compatible = "stmicro,n25q064a",
18882ceba2cSStefan Roese						"spi-flash";
18982ceba2cSStefan Roese					memory-map = <0xff800000 0x00800000>;
19082ceba2cSStefan Roese					rw-mrc-cache {
19182ceba2cSStefan Roese						label = "rw-mrc-cache";
19282ceba2cSStefan Roese						reg = <0x006f0000 0x00010000>;
19382ceba2cSStefan Roese					};
19482ceba2cSStefan Roese				};
19582ceba2cSStefan Roese			};
19682ceba2cSStefan Roese
19782ceba2cSStefan Roese			gpioa {
19882ceba2cSStefan Roese				compatible = "intel,ich6-gpio";
19982ceba2cSStefan Roese				u-boot,dm-pre-reloc;
20082ceba2cSStefan Roese				reg = <0 0x20>;
20182ceba2cSStefan Roese				bank-name = "A";
20282ceba2cSStefan Roese			};
20382ceba2cSStefan Roese
20482ceba2cSStefan Roese			gpiob {
20582ceba2cSStefan Roese				compatible = "intel,ich6-gpio";
20682ceba2cSStefan Roese				u-boot,dm-pre-reloc;
20782ceba2cSStefan Roese				reg = <0x20 0x20>;
20882ceba2cSStefan Roese				bank-name = "B";
20982ceba2cSStefan Roese			};
21082ceba2cSStefan Roese
21182ceba2cSStefan Roese			gpioc {
21282ceba2cSStefan Roese				compatible = "intel,ich6-gpio";
21382ceba2cSStefan Roese				u-boot,dm-pre-reloc;
21482ceba2cSStefan Roese				reg = <0x40 0x20>;
21582ceba2cSStefan Roese				bank-name = "C";
21682ceba2cSStefan Roese			};
21782ceba2cSStefan Roese
21882ceba2cSStefan Roese			gpiod {
21982ceba2cSStefan Roese				compatible = "intel,ich6-gpio";
22082ceba2cSStefan Roese				u-boot,dm-pre-reloc;
22182ceba2cSStefan Roese				reg = <0x60 0x20>;
22282ceba2cSStefan Roese				bank-name = "D";
22382ceba2cSStefan Roese			};
22482ceba2cSStefan Roese
22582ceba2cSStefan Roese			gpioe {
22682ceba2cSStefan Roese				compatible = "intel,ich6-gpio";
22782ceba2cSStefan Roese				u-boot,dm-pre-reloc;
22882ceba2cSStefan Roese				reg = <0x80 0x20>;
22982ceba2cSStefan Roese				bank-name = "E";
23082ceba2cSStefan Roese			};
23182ceba2cSStefan Roese
23282ceba2cSStefan Roese			gpiof {
23382ceba2cSStefan Roese				compatible = "intel,ich6-gpio";
23482ceba2cSStefan Roese				u-boot,dm-pre-reloc;
23582ceba2cSStefan Roese				reg = <0xA0 0x20>;
23682ceba2cSStefan Roese				bank-name = "F";
23782ceba2cSStefan Roese			};
23882ceba2cSStefan Roese		};
23982ceba2cSStefan Roese	};
24082ceba2cSStefan Roese
24182ceba2cSStefan Roese	fsp {
24282ceba2cSStefan Roese		compatible = "intel,baytrail-fsp";
24382ceba2cSStefan Roese		fsp,mrc-init-tseg-size = <0>;
24482ceba2cSStefan Roese		fsp,mrc-init-mmio-size = <0x800>;
24582ceba2cSStefan Roese		fsp,mrc-init-spd-addr1 = <0xa0>;
24682ceba2cSStefan Roese		fsp,mrc-init-spd-addr2 = <0xa2>;
24758d1fedbSBin Meng		fsp,emmc-boot-mode = <1>;
24882ceba2cSStefan Roese		fsp,enable-sdio;
24982ceba2cSStefan Roese		fsp,enable-sdcard;
25082ceba2cSStefan Roese		fsp,enable-hsuart1;
25182ceba2cSStefan Roese		fsp,enable-spi;
25282ceba2cSStefan Roese		fsp,enable-sata;
25382ceba2cSStefan Roese		fsp,sata-mode = <1>;
25482ceba2cSStefan Roese		fsp,enable-lpe;
25582ceba2cSStefan Roese		fsp,lpss-sio-enable-pci-mode;
25682ceba2cSStefan Roese		fsp,enable-dma0;
25782ceba2cSStefan Roese		fsp,enable-dma1;
25882ceba2cSStefan Roese		fsp,enable-pwm0;
25982ceba2cSStefan Roese		fsp,enable-pwm1;
26082ceba2cSStefan Roese		fsp,igd-dvmt50-pre-alloc = <2>;
26182ceba2cSStefan Roese		fsp,aperture-size = <2>;
26282ceba2cSStefan Roese		fsp,gtt-size = <2>;
26382ceba2cSStefan Roese		fsp,scc-enable-pci-mode;
26482ceba2cSStefan Roese		fsp,os-selection = <4>;
26582ceba2cSStefan Roese		fsp,emmc45-ddr50-enabled;
26682ceba2cSStefan Roese		fsp,emmc45-retune-timer-value = <8>;
26782ceba2cSStefan Roese		fsp,enable-igd;
26882ceba2cSStefan Roese		fsp,enable-memory-down;
26982ceba2cSStefan Roese		fsp,memory-down-params {
27082ceba2cSStefan Roese			compatible = "intel,baytrail-fsp-mdp";
27182ceba2cSStefan Roese			fsp,dram-speed = <2>;		/* 2=1333MHz */
27282ceba2cSStefan Roese			fsp,dram-type = <1>;		/* 1=DDR3L */
27382ceba2cSStefan Roese			fsp,dimm-0-enable;
27482ceba2cSStefan Roese			fsp,dimm-1-enable;
27582ceba2cSStefan Roese			fsp,dimm-width = <1>;		/* 1=x16, 2=x32 */
27682ceba2cSStefan Roese			fsp,dimm-density = <2>;		/* 2=4Gbit */
27782ceba2cSStefan Roese			fsp,dimm-bus-width = <3>;	/* 3=64bits */
27882ceba2cSStefan Roese			fsp,dimm-sides = <0>;		/* 0=1 ranks -> 0x2b */
27982ceba2cSStefan Roese
28082ceba2cSStefan Roese			/* These following values might need a re-visit */
28182ceba2cSStefan Roese			fsp,dimm-tcl = <8>;
28282ceba2cSStefan Roese			fsp,dimm-trpt-rcd = <8>;
28382ceba2cSStefan Roese			fsp,dimm-twr = <8>;
28482ceba2cSStefan Roese			fsp,dimm-twtr = <4>;
28582ceba2cSStefan Roese			fsp,dimm-trrd = <6>;
28682ceba2cSStefan Roese			fsp,dimm-trtp = <4>;
28782ceba2cSStefan Roese			fsp,dimm-tfaw = <22>;
28882ceba2cSStefan Roese		};
28982ceba2cSStefan Roese	};
29082ceba2cSStefan Roese
29182ceba2cSStefan Roese	microcode {
29282ceba2cSStefan Roese		update@0 {
293bab4b961SBin Meng#include "microcode/m0130673325.dtsi"
29482ceba2cSStefan Roese		};
29582ceba2cSStefan Roese		update@1 {
296bab4b961SBin Meng#include "microcode/m0130679907.dtsi"
29782ceba2cSStefan Roese		};
29882ceba2cSStefan Roese	};
29982ceba2cSStefan Roese};
300