170 lines
5.7 KiB
C
170 lines
5.7 KiB
C
/*
|
|
* Copyright (c) 2018-2019, Intel Corporation
|
|
* Copyright (c) 2010-2015, Wind River Systems, Inc.
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
/**
|
|
* @file
|
|
* @brief Board configuration macros for the Apollo Lake SoC
|
|
*
|
|
* This header file is used to specify and describe soc-level aspects for
|
|
* the 'Apollo Lake' SoC.
|
|
*/
|
|
|
|
#ifndef __SOC_H_
|
|
#define __SOC_H_
|
|
|
|
#include <misc/util.h>
|
|
|
|
#ifndef _ASMLANGUAGE
|
|
#include <device.h>
|
|
#include <random/rand32.h>
|
|
#endif
|
|
|
|
#ifdef CONFIG_GPIO_INTEL_APL
|
|
#include "soc_gpio.h"
|
|
#endif
|
|
|
|
#ifdef CONFIG_PCI
|
|
|
|
/*
|
|
* PCI definitions
|
|
*/
|
|
#define PCI_BUS_NUMBERS 1
|
|
|
|
#define PCI_CTRL_ADDR_REG 0xCF8
|
|
#define PCI_CTRL_DATA_REG 0xCFC
|
|
|
|
/**
|
|
* @brief Convert PCI interrupt PIN to IRQ
|
|
*
|
|
* BIOS should have assigned vectors linearly.
|
|
* If not, override this in board configuration.
|
|
*/
|
|
#define pci_pin2irq(bus, dev, pin) (pin)
|
|
|
|
|
|
/* UARTs */
|
|
#ifdef CONFIG_UART_NS16550_PCI
|
|
|
|
#ifdef CONFIG_UART_NS16550_PORT_0_PCI
|
|
|
|
#define UART_NS16550_PORT_0_PCI_CLASS 0x11
|
|
#define UART_NS16550_PORT_0_PCI_BUS 0
|
|
#define UART_NS16550_PORT_0_PCI_DEV 18
|
|
#define UART_NS16550_PORT_0_PCI_VENDOR_ID 0x8086
|
|
#define UART_NS16550_PORT_0_PCI_DEVICE_ID 0x5abc
|
|
#define UART_NS16550_PORT_0_PCI_FUNC 0
|
|
#define UART_NS16550_PORT_0_PCI_BAR 0
|
|
|
|
#endif /* CONFIG_UART_NS16550_PORT_0_PCI */
|
|
|
|
#ifdef CONFIG_UART_NS16550_PORT_1_PCI
|
|
|
|
#define UART_NS16550_PORT_1_PCI_CLASS 0x11
|
|
#define UART_NS16550_PORT_1_PCI_BUS 0
|
|
#define UART_NS16550_PORT_1_PCI_DEV 18
|
|
#define UART_NS16550_PORT_1_PCI_VENDOR_ID 0x8086
|
|
#define UART_NS16550_PORT_1_PCI_DEVICE_ID 0x5abe
|
|
#define UART_NS16550_PORT_1_PCI_FUNC 1
|
|
#define UART_NS16550_PORT_1_PCI_BAR 0
|
|
|
|
#endif /* CONFIG_UART_NS16550_PORT_1_PCI */
|
|
|
|
#ifdef CONFIG_UART_NS16550_PORT_2_PCI
|
|
|
|
#define UART_NS16550_PORT_2_PCI_CLASS 0x11
|
|
#define UART_NS16550_PORT_2_PCI_BUS 0
|
|
#define UART_NS16550_PORT_2_PCI_DEV 18
|
|
#define UART_NS16550_PORT_2_PCI_VENDOR_ID 0x8086
|
|
#define UART_NS16550_PORT_2_PCI_DEVICE_ID 0x5ac0
|
|
#define UART_NS16550_PORT_2_PCI_FUNC 2
|
|
#define UART_NS16550_PORT_2_PCI_BAR 0
|
|
|
|
#endif /* CONFIG_UART_NS16550_PORT_2_PCI */
|
|
|
|
#ifdef CONFIG_UART_NS16550_PORT_3_PCI
|
|
|
|
#define UART_NS16550_PORT_3_PCI_CLASS 0x11
|
|
#define UART_NS16550_PORT_3_PCI_BUS 0
|
|
#define UART_NS16550_PORT_3_PCI_DEV 18
|
|
#define UART_NS16550_PORT_3_PCI_VENDOR_ID 0x8086
|
|
#define UART_NS16550_PORT_3_PCI_DEVICE_ID 0x5aee
|
|
#define UART_NS16550_PORT_3_PCI_FUNC 3
|
|
#define UART_NS16550_PORT_3_PCI_BAR 0
|
|
|
|
#endif /* CONFIG_UART_NS16550_PORT_3_PCI */
|
|
|
|
#endif /* CONFIG_UART_NS16550_PCI */
|
|
|
|
/* I2C controllers */
|
|
#define I2C_DW_0_PCI_VENDOR_ID 0x8086
|
|
#define I2C_DW_0_PCI_DEVICE_ID 0x5aac
|
|
#define I2C_DW_0_PCI_CLASS 0x11
|
|
#define I2C_DW_0_PCI_BUS 0
|
|
#define I2C_DW_0_PCI_DEV 16
|
|
#define I2C_DW_0_PCI_FUNCTION 0
|
|
#define I2C_DW_0_PCI_BAR 0
|
|
|
|
#define I2C_DW_1_PCI_VENDOR_ID 0x8086
|
|
#define I2C_DW_1_PCI_DEVICE_ID 0x5aae
|
|
#define I2C_DW_1_PCI_CLASS 0x11
|
|
#define I2C_DW_1_PCI_BUS 0
|
|
#define I2C_DW_1_PCI_DEV 16
|
|
#define I2C_DW_1_PCI_FUNCTION 1
|
|
#define I2C_DW_1_PCI_BAR 0
|
|
|
|
#define I2C_DW_2_PCI_VENDOR_ID 0x8086
|
|
#define I2C_DW_2_PCI_DEVICE_ID 0x5ab0
|
|
#define I2C_DW_2_PCI_CLASS 0x11
|
|
#define I2C_DW_2_PCI_BUS 0
|
|
#define I2C_DW_2_PCI_DEV 16
|
|
#define I2C_DW_2_PCI_FUNCTION 2
|
|
#define I2C_DW_2_PCI_BAR 0
|
|
|
|
#define I2C_DW_3_PCI_VENDOR_ID 0x8086
|
|
#define I2C_DW_3_PCI_DEVICE_ID 0x5ab2
|
|
#define I2C_DW_3_PCI_CLASS 0x11
|
|
#define I2C_DW_3_PCI_BUS 0
|
|
#define I2C_DW_3_PCI_DEV 16
|
|
#define I2C_DW_3_PCI_FUNCTION 3
|
|
#define I2C_DW_3_PCI_BAR 0
|
|
|
|
#define I2C_DW_4_PCI_VENDOR_ID 0x8086
|
|
#define I2C_DW_4_PCI_DEVICE_ID 0x5ab4
|
|
#define I2C_DW_4_PCI_CLASS 0x11
|
|
#define I2C_DW_4_PCI_BUS 0
|
|
#define I2C_DW_4_PCI_DEV 17
|
|
#define I2C_DW_4_PCI_FUNCTION 0
|
|
#define I2C_DW_4_PCI_BAR 0
|
|
|
|
#define I2C_DW_5_PCI_VENDOR_ID 0x8086
|
|
#define I2C_DW_5_PCI_DEVICE_ID 0x5ab6
|
|
#define I2C_DW_5_PCI_CLASS 0x11
|
|
#define I2C_DW_5_PCI_BUS 0
|
|
#define I2C_DW_5_PCI_DEV 17
|
|
#define I2C_DW_5_PCI_FUNCTION 1
|
|
#define I2C_DW_5_PCI_BAR 0
|
|
|
|
#define I2C_DW_6_PCI_VENDOR_ID 0x8086
|
|
#define I2C_DW_6_PCI_DEVICE_ID 0x5ab8
|
|
#define I2C_DW_6_PCI_CLASS 0x11
|
|
#define I2C_DW_6_PCI_BUS 0
|
|
#define I2C_DW_6_PCI_DEV 17
|
|
#define I2C_DW_6_PCI_FUNCTION 2
|
|
#define I2C_DW_6_PCI_BAR 0
|
|
|
|
#define I2C_DW_7_PCI_VENDOR_ID 0x8086
|
|
#define I2C_DW_7_PCI_DEVICE_ID 0x5aba
|
|
#define I2C_DW_7_PCI_CLASS 0x11
|
|
#define I2C_DW_7_PCI_BUS 0
|
|
#define I2C_DW_7_PCI_DEV 17
|
|
#define I2C_DW_7_PCI_FUNCTION 3
|
|
#define I2C_DW_7_PCI_BAR 0
|
|
|
|
#endif /* CONFIG_PCI */
|
|
|
|
#endif /* __SOC_H_ */
|