1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * Copyright (C) 2016 Intel Corp.
4 */
5
6#include <asm/arch/iomap.h>
7
8#define MAILBOX_DATA 0x7080
9#define MAILBOX_INTF 0x7084
10#define PMIO_LENGTH 0x80
11#define PMIO_LIMIT 0x480
12
13scope (\_SB) {
14	Device (IPC1)
15	{
16		Name (_HID, "INT34D2")
17		Name (_CID, "INT34D2")
18		Name (_DDN, "Intel(R) IPC1 Controller")
19		Name (RBUF, ResourceTemplate ()
20		{
21			Memory32Fixed (ReadWrite, 0x0, 0x2000, IBAR)
22			Memory32Fixed (ReadWrite, 0x0, 0x4, MDAT)
23			Memory32Fixed (ReadWrite, 0x0, 0x4, MINF)
24			IO (Decode16, IOMAP_ACPI_BASE, PMIO_LIMIT,
25			      0x04, PMIO_LENGTH)
26			Memory32Fixed (ReadWrite, 0x0, 0x2000, SBAR)
27			Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, , , )
28			{
29			      PMC_INT
30			}
31		})
32
33		Method (_CRS, 0x0, NotSerialized)
34		{
35			CreateDwordField (^RBUF, ^IBAR._BAS, IBAS)
36			Store (PMC_BAR0, IBAS)
37
38			CreateDwordField (^RBUF, ^MDAT._BAS, MDBA)
39			Store (MCH_BASE_ADDRESS + MAILBOX_DATA, MDBA)
40			CreateDwordField (^RBUF, ^MINF._BAS, MIBA)
41			Store (MCH_BASE_ADDRESS + MAILBOX_INTF, MIBA)
42
43			CreateDwordField (^RBUF, ^SBAR._BAS, SBAS)
44			Store (SRAM_BASE_0, SBAS)
45
46			Return (^RBUF)
47		}
48	}
49}
50