xref: /rk3399_rockchip-uboot/arch/x86/include/asm/arch-baytrail/acpi/lpc.asl (revision eda995a8b021fdc9f8d862bdb86babb06d8ef5d1)
1/*
2 * Copyright (C) 2007-2009 coresystems GmbH
3 * Copyright (C) 2013 Google Inc.
4 * Copyright (C) 2016 Bin Meng <bmeng.cn@gmail.com>
5 *
6 * Modified from coreboot src/soc/intel/baytrail/acpi/lpc.asl
7 *
8 * SPDX-License-Identifier:	GPL-2.0+
9 */
10
11/* Intel LPC Bus Device - 0:1f.0 */
12
13Device (LPCB)
14{
15	Name(_ADR, 0x001f0000)
16
17	#include "irqlinks.asl"
18
19	/* Firmware Hub */
20	Device (FWH)
21	{
22		Name(_HID, EISAID("INT0800"))
23		Name(_CRS, ResourceTemplate()
24		{
25			Memory32Fixed(ReadOnly, 0xff000000, 0x01000000)
26		})
27	}
28
29	/* 8259 Interrupt Controller */
30	Device (PIC)
31	{
32		Name(_HID, EISAID("PNP0000"))
33		Name(_CRS, ResourceTemplate()
34		{
35			IO(Decode16, 0x20, 0x20, 0x01, 0x02)
36			IO(Decode16, 0x24, 0x24, 0x01, 0x02)
37			IO(Decode16, 0x28, 0x28, 0x01, 0x02)
38			IO(Decode16, 0x2c, 0x2c, 0x01, 0x02)
39			IO(Decode16, 0x30, 0x30, 0x01, 0x02)
40			IO(Decode16, 0x34, 0x34, 0x01, 0x02)
41			IO(Decode16, 0x38, 0x38, 0x01, 0x02)
42			IO(Decode16, 0x3c, 0x3c, 0x01, 0x02)
43			IO(Decode16, 0xa0, 0xa0, 0x01, 0x02)
44			IO(Decode16, 0xa4, 0xa4, 0x01, 0x02)
45			IO(Decode16, 0xa8, 0xa8, 0x01, 0x02)
46			IO(Decode16, 0xac, 0xac, 0x01, 0x02)
47			IO(Decode16, 0xb0, 0xb0, 0x01, 0x02)
48			IO(Decode16, 0xb4, 0xb4, 0x01, 0x02)
49			IO(Decode16, 0xb8, 0xb8, 0x01, 0x02)
50			IO(Decode16, 0xbc, 0xbc, 0x01, 0x02)
51			IO(Decode16, 0x4d0, 0x4d0, 0x01, 0x02)
52			IRQNoFlags () { 2 }
53		})
54	}
55
56	/* 8254 timer */
57	Device (TIMR)
58	{
59		Name(_HID, EISAID("PNP0100"))
60		Name(_CRS, ResourceTemplate()
61		{
62			IO(Decode16, 0x40, 0x40, 0x01, 0x04)
63			IO(Decode16, 0x50, 0x50, 0x10, 0x04)
64			IRQNoFlags() { 0 }
65		})
66	}
67
68	/* HPET */
69	Device (HPET)
70	{
71		Name(_HID, EISAID("PNP0103"))
72		Name(_CID, 0x010CD041)
73		Name(_CRS, ResourceTemplate()
74		{
75			Memory32Fixed(ReadOnly, HPET_BASE_ADDRESS, HPET_BASE_SIZE)
76		})
77
78		Method(_STA)
79		{
80			Return (STA_VISIBLE)
81		}
82	}
83
84	/* Real Time Clock */
85	Device (RTC)
86	{
87		Name(_HID, EISAID("PNP0B00"))
88		Name(_CRS, ResourceTemplate()
89		{
90			IO(Decode16, 0x70, 0x70, 1, 8)
91			/*
92			 * Disable as Windows doesn't like it, and systems
93			 * don't seem to use it
94			 */
95			/* IRQNoFlags() { 8 } */
96		})
97	}
98
99	/* LPC device: Resource consumption */
100	Device (LDRC)
101	{
102		Name(_HID, EISAID("PNP0C02"))
103		Name(_UID, 2)
104
105		Name(RBUF, ResourceTemplate()
106		{
107			IO(Decode16, 0x61, 0x61, 0x1, 0x01) /* NMI Status */
108			IO(Decode16, 0x63, 0x63, 0x1, 0x01) /* CPU Reserved */
109			IO(Decode16, 0x65, 0x65, 0x1, 0x01) /* CPU Reserved */
110			IO(Decode16, 0x67, 0x67, 0x1, 0x01) /* CPU Reserved */
111			IO(Decode16, 0x80, 0x80, 0x1, 0x01) /* Port 80 Post */
112			IO(Decode16, 0x92, 0x92, 0x1, 0x01) /* CPU Reserved */
113			IO(Decode16, 0xb2, 0xb2, 0x1, 0x02) /* SWSMI */
114		})
115
116		Method(_CRS, 0, NotSerialized)
117		{
118			Return (RBUF)
119		}
120	}
121}
122