blob: 18cc78b3e14148e2a896dad7dd11de50200b2081 [file] [log] [blame]
Simon Glassc0529182020-09-22 12:44:47 -06001/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * Copyright (C) 2007-2009 coresystems GmbH
4 * Copyright (C) 2014 Google Inc.
5 * Copyright (C) 2015 Intel Corporation.
6 */
7
8/* Intel LPC/eSPI Bus Device - 0:1f.0 */
9#include <asm/arch/iomap.h>
10
11Device (LPCB)
12{
13 Name (_ADR, 0x001f0000)
14 Name (_DDN, "LPC Bus Device")
15
16 /* DMA Controller */
17 Device (DMAC)
18 {
19 Name (_HID, EISAID("PNP0200"))
20 Name (_CRS, ResourceTemplate()
21 {
22 IO (Decode16, 0x00, 0x00, 0x01, 0x20)
23 IO (Decode16, 0x81, 0x81, 0x01, 0x11)
24 IO (Decode16, 0x93, 0x93, 0x01, 0x0d)
25 IO (Decode16, 0xc0, 0xc0, 0x01, 0x20)
26 DMA (Compatibility, NotBusMaster, Transfer8_16) { 4 }
27 })
28 }
29
30 /* Firmware Hub */
31 Device (FWH)
32 {
33 Name (_HID, EISAID ("INT0800"))
34 Name (_DDN, "Firmware Hub")
35 Name (_CRS, ResourceTemplate ()
36 {
37 Memory32Fixed (ReadOnly, 0xff000000, 0x01000000)
38 })
39 }
40
41 /* High Precision Event Timer */
42 Device (HPET)
43 {
44 Name (_HID, EISAID ("PNP0103"))
45 Name (_CID, 0x010CD041)
46 Name (_DDN, "High Precision Event Timer")
47 Name (_CRS, ResourceTemplate ()
48 {
49 Memory32Fixed (ReadWrite, HPET_BASE_ADDRESS, 0x400)
50 })
51 Method (_STA, 0)
52 {
53 Return (0xF)
54 }
55 }
56
57 /* FPU */
58 Device(MATH)
59 {
60 Name (_HID, EISAID("PNP0C04"))
61 Name (_CRS, ResourceTemplate()
62 {
63 IO (Decode16, 0xf0, 0xf0, 0x01, 0x01)
64 IRQNoFlags() { 13 }
65 })
66 }
67
68 /* AT Interrupt Controller */
69 Device (PIC)
70 {
71 Name (_HID, EISAID ("PNP0000"))
72 Name (_DDN, "8259 Interrupt Controller")
73 Name (_CRS, ResourceTemplate()
74 {
75 IO (Decode16, 0x20, 0x20, 0x01, 0x02)
76 IO (Decode16, 0x24, 0x24, 0x01, 0x02)
77 IO (Decode16, 0x28, 0x28, 0x01, 0x02)
78 IO (Decode16, 0x2c, 0x2c, 0x01, 0x02)
79 IO (Decode16, 0x30, 0x30, 0x01, 0x02)
80 IO (Decode16, 0x34, 0x34, 0x01, 0x02)
81 IO (Decode16, 0x38, 0x38, 0x01, 0x02)
82 IO (Decode16, 0x3c, 0x3c, 0x01, 0x02)
83 IO (Decode16, 0xa0, 0xa0, 0x01, 0x02)
84 IO (Decode16, 0xa4, 0xa4, 0x01, 0x02)
85 IO (Decode16, 0xa8, 0xa8, 0x01, 0x02)
86 IO (Decode16, 0xac, 0xac, 0x01, 0x02)
87 IO (Decode16, 0xb0, 0xb0, 0x01, 0x02)
88 IO (Decode16, 0xb4, 0xb4, 0x01, 0x02)
89 IO (Decode16, 0xb8, 0xb8, 0x01, 0x02)
90 IO (Decode16, 0xbc, 0xbc, 0x01, 0x02)
91 IO (Decode16, 0x4d0, 0x4d0, 0x01, 0x02)
92 IRQNoFlags () { 2 }
93 })
94 }
95
96 /* LPC device: Resource consumption */
97 Device (LDRC)
98 {
99 Name (_HID, EISAID ("PNP0C02"))
100 Name (_UID, 2)
101 Name (_DDN, "Legacy Device Resources")
102 Name (_CRS, ResourceTemplate ()
103 {
104 IO (Decode16, 0x2e, 0x2e, 0x1, 0x02) // First SuperIO
105 IO (Decode16, 0x4e, 0x4e, 0x1, 0x02) // Second SuperIO
106 IO (Decode16, 0x61, 0x61, 0x1, 0x01) // NMI Status
107 IO (Decode16, 0x63, 0x63, 0x1, 0x01) // CPU Reserved
108 IO (Decode16, 0x65, 0x65, 0x1, 0x01) // CPU Reserved
109 IO (Decode16, 0x67, 0x67, 0x1, 0x01) // CPU Reserved
110 IO (Decode16, 0x80, 0x80, 0x1, 0x01) // Port 80 Post
111 IO (Decode16, 0x92, 0x92, 0x1, 0x01) // CPU Reserved
112 IO (Decode16, 0xb2, 0xb2, 0x1, 0x02) // SWSMI
113 IO (Decode16, ACPI_BASE_ADDRESS, ACPI_BASE_ADDRESS,
114 0x1, 0xff)
115 })
116 }
117
118 /* Real Time Clock Device */
119 Device (RTC)
120 {
121 Name (_HID, EISAID ("PNP0B00"))
122 Name (_DDN, "Real Time Clock")
123 Name (_CRS, ResourceTemplate ()
124 {
125 IO (Decode16, 0x70, 0x70, 1, 8)
126 })
127 }
128
129 /* Timer */
130 Device (TIMR)
131 {
132 Name (_HID, EISAID ("PNP0100"))
133 Name (_DDN, "8254 Timer")
134 Name (_CRS, ResourceTemplate ()
135 {
136 IO (Decode16, 0x40, 0x40, 0x01, 0x04)
137 IO (Decode16, 0x50, 0x50, 0x10, 0x04)
138 IRQNoFlags () {0}
139 })
140 }
141}