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