18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Copyright (C) 2020 Loongson Technology Co., Ltd.
48c2ecf20Sopenharmony_ci */
58c2ecf20Sopenharmony_ci#ifndef _ASM_PCI_H
68c2ecf20Sopenharmony_ci#define _ASM_PCI_H
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ci#include <linux/mm.h>
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ci/*
118c2ecf20Sopenharmony_ci * This file essentially defines the interface between board specific
128c2ecf20Sopenharmony_ci * PCI code and LoongArch common PCI code. Should potentially put into
138c2ecf20Sopenharmony_ci * include/asm/pci.h file.
148c2ecf20Sopenharmony_ci */
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ci#include <linux/ioport.h>
178c2ecf20Sopenharmony_ci#include <linux/list.h>
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ciextern phys_addr_t mcfg_addr_init(int node);
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ci/* Can be used to override the logic in pci_scan_bus for skipping
228c2ecf20Sopenharmony_ci   already-configured bus numbers - to be used for buggy BIOSes
238c2ecf20Sopenharmony_ci   or architectures with incomplete PCI setup by the loader */
248c2ecf20Sopenharmony_cistatic inline unsigned int pcibios_assign_all_busses(void)
258c2ecf20Sopenharmony_ci{
268c2ecf20Sopenharmony_ci	return 0;
278c2ecf20Sopenharmony_ci}
288c2ecf20Sopenharmony_ci
298c2ecf20Sopenharmony_ci#define PCIBIOS_MIN_IO		0x4000
308c2ecf20Sopenharmony_ci#define PCIBIOS_MIN_MEM		0x20000000
318c2ecf20Sopenharmony_ci#define PCIBIOS_MIN_CARDBUS_IO	0x4000
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_ci#define HAVE_PCI_MMAP
348c2ecf20Sopenharmony_ci#define ARCH_GENERIC_PCI_MMAP_RESOURCE
358c2ecf20Sopenharmony_ci
368c2ecf20Sopenharmony_ci/*
378c2ecf20Sopenharmony_ci * Dynamic DMA mapping stuff.
388c2ecf20Sopenharmony_ci * LoongArch has everything mapped statically.
398c2ecf20Sopenharmony_ci */
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci#include <linux/types.h>
428c2ecf20Sopenharmony_ci#include <linux/slab.h>
438c2ecf20Sopenharmony_ci#include <linux/scatterlist.h>
448c2ecf20Sopenharmony_ci#include <linux/string.h>
458c2ecf20Sopenharmony_ci#include <asm/io.h>
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_cistatic inline int pci_proc_domain(struct pci_bus *bus)
488c2ecf20Sopenharmony_ci{
498c2ecf20Sopenharmony_ci	return 1; /* always show the domain in /proc */
508c2ecf20Sopenharmony_ci}
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ci/* generic pci stuff */
538c2ecf20Sopenharmony_ci#include <asm-generic/pci.h>
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ci#endif /* _ASM_PCI_H */
56