All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yoshinori Sato <ysato@users.sourceforge.jp>
To: linux-sh@vger.kernel.org
Cc: Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>,
	Arnd Bergmann <arnd@arndb.de>,
	Andrew Morton <akpm@linux-foundation.org>,
	Baoquan He <bhe@redhat.com>, Guenter Roeck <linux@roeck-us.net>
Subject: [PATCH v4 10/37] sh: Common PCI framework support
Date: Tue, 14 Nov 2023 17:00:01 +0900	[thread overview]
Message-ID: <65b5ddcbecfa05088b3889d0815588012dc816da.1699856600.git.ysato@users.sourceforge.jp> (raw)
In-Reply-To: <cover.1699856600.git.ysato@users.sourceforge.jp>

When CONFIG_OF=y, a common PCI framework is used.
The new driver also needs to reference PCI headers, so move the
necessary header files to a public location rather than a private one.

Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp>
---
 arch/sh/include/asm/io.h                      | 40 +++++++++++++------
 .../sh/{drivers/pci => include/asm}/pci-sh4.h |  7 ++--
 .../{drivers/pci => include/asm}/pci-sh7751.h |  0
 .../{drivers/pci => include/asm}/pci-sh7780.h |  0
 arch/sh/include/asm/pci.h                     |  4 ++
 5 files changed, 36 insertions(+), 15 deletions(-)
 rename arch/sh/{drivers/pci => include/asm}/pci-sh4.h (99%)
 rename arch/sh/{drivers/pci => include/asm}/pci-sh7751.h (100%)
 rename arch/sh/{drivers/pci => include/asm}/pci-sh7780.h (100%)

diff --git a/arch/sh/include/asm/io.h b/arch/sh/include/asm/io.h
index ac521f287fa5..ef9b774dd4c8 100644
--- a/arch/sh/include/asm/io.h
+++ b/arch/sh/include/asm/io.h
@@ -150,6 +150,7 @@ __BUILD_MEMORY_STRING(__raw_, q, u64)
  */
 #undef CONF_SLOWDOWN_IO
 
+#ifndef CONFIG_GENERIC_IOMAP
 /*
  * On SuperH I/O ports are memory mapped, so we access them using normal
  * load/store instructions. sh_io_port_base is the virtual address to
@@ -163,11 +164,7 @@ static inline void __set_io_port_base(unsigned long pbase)
 	barrier();
 }
 
-#ifdef CONFIG_GENERIC_IOMAP
-#define __ioport_map ioport_map
-#else
 extern void __iomem *__ioport_map(unsigned long addr, unsigned int size);
-#endif
 
 #ifdef CONF_SLOWDOWN_IO
 #define SLOW_DOWN_IO __raw_readw(sh_io_port_base)
@@ -239,12 +236,6 @@ __BUILD_IOPORT_STRING(w, u16)
 __BUILD_IOPORT_STRING(l, u32)
 __BUILD_IOPORT_STRING(q, u64)
 
-#else /* !CONFIG_HAS_IOPORT_MAP */
-
-#include <asm/io_noioport.h>
-
-#endif
-
 #define inb(addr)      inb(addr)
 #define inw(addr)      inw(addr)
 #define inl(addr)      inl(addr)
@@ -265,6 +256,21 @@ __BUILD_IOPORT_STRING(q, u64)
 #define outsb outsb
 #define outsw outsw
 #define outsl outsl
+#else /* !CONFIG_GENERIC_IOMAP */
+#define __ioport_map ioport_map
+#endif
+
+#else /* !CONFIG_HAS_IOPORT_MAP */
+
+#define insb insb
+#define insw insw
+#define insl insl
+#define outsb outsb
+#define outsw outsw
+#define outsl outsl
+#include <asm/io_noioport.h>
+
+#endif
 
 #define IO_SPACE_LIMIT 0xffffffff
 
@@ -311,10 +317,20 @@ unsigned long long poke_real_address_q(unsigned long long addr,
 #define xlate_dev_mem_ptr(p)	__va(p)
 #define unxlate_dev_mem_ptr(p, v) do { } while (0)
 
-#include <asm-generic/io.h>
-
 #define ARCH_HAS_VALID_PHYS_ADDR_RANGE
 int valid_phys_addr_range(phys_addr_t addr, size_t size);
 int valid_mmap_phys_addr_range(unsigned long pfn, size_t size);
 
+
+#ifdef __KERNEL__
+#define PCI_IOBASE	((void __iomem *)0xfe240000UL)
+
+#define HAVE_ARCH_PIO_SIZE
+#define PIO_OFFSET	0xfe240000UL
+#define PIO_MASK	0x3ffffUL
+#define PIO_RESERVED	0x40000UL
+#endif /* __KERNEL__ */
+
+#include <asm-generic/io.h>
+
 #endif /* __ASM_SH_IO_H */
diff --git a/arch/sh/drivers/pci/pci-sh4.h b/arch/sh/include/asm/pci-sh4.h
similarity index 99%
rename from arch/sh/drivers/pci/pci-sh4.h
rename to arch/sh/include/asm/pci-sh4.h
index 1543c50b6503..26a75841fbe2 100644
--- a/arch/sh/drivers/pci/pci-sh4.h
+++ b/arch/sh/include/asm/pci-sh4.h
@@ -5,9 +5,9 @@
 #if defined(CONFIG_CPU_SUBTYPE_SH7780) || \
     defined(CONFIG_CPU_SUBTYPE_SH7785) || \
     defined(CONFIG_CPU_SUBTYPE_SH7763)
-#include "pci-sh7780.h"
+#include <asm/pci-sh7780.h>
 #else
-#include "pci-sh7751.h"
+#include <asm/pci-sh7751.h>
 #endif
 
 #include <asm/io.h>
@@ -153,6 +153,7 @@
   #define SH4_PCIPDTR_PB0	  0x000000001	/* Port 0 Enable */
 #define SH4_PCIPDR		0x220		/* Port IO Data Register */
 
+#ifndef CONFIG_PCI_HOST_COMMON
 /* arch/sh/kernel/drivers/pci/ops-sh4.c */
 extern struct pci_ops sh4_pci_ops;
 int pci_fixup_pcic(struct pci_channel *chan);
@@ -178,5 +179,5 @@ static inline unsigned long pci_read_reg(struct pci_channel *chan,
 {
 	return __raw_readl(chan->reg_base + reg);
 }
-
+#endif
 #endif /* __PCI_SH4_H */
diff --git a/arch/sh/drivers/pci/pci-sh7751.h b/arch/sh/include/asm/pci-sh7751.h
similarity index 100%
rename from arch/sh/drivers/pci/pci-sh7751.h
rename to arch/sh/include/asm/pci-sh7751.h
diff --git a/arch/sh/drivers/pci/pci-sh7780.h b/arch/sh/include/asm/pci-sh7780.h
similarity index 100%
rename from arch/sh/drivers/pci/pci-sh7780.h
rename to arch/sh/include/asm/pci-sh7780.h
diff --git a/arch/sh/include/asm/pci.h b/arch/sh/include/asm/pci.h
index 54c30126ea17..92b3bd604319 100644
--- a/arch/sh/include/asm/pci.h
+++ b/arch/sh/include/asm/pci.h
@@ -2,6 +2,7 @@
 #ifndef __ASM_SH_PCI_H
 #define __ASM_SH_PCI_H
 
+#ifndef CONFIG_SH_DEVICE_TREE
 /* Can be used to override the logic in pci_scan_bus for skipping
    already-configured bus numbers - to be used for buggy BIOSes
    or architectures with incomplete PCI setup by the loader */
@@ -88,4 +89,7 @@ static inline int pci_proc_domain(struct pci_bus *bus)
 	return hose->need_domain_info;
 }
 
+#else /* CONFIG_SH_DEVICE_TREE */
+#include <asm-generic/pci.h>
+#endif
 #endif /* __ASM_SH_PCI_H */
-- 
2.39.2


  parent reply	other threads:[~2023-11-14  8:00 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-14  7:59 [PATCH v4 00/37] Device Tree support for SH7751 based board Yoshinori Sato
2023-11-14  7:59 ` [PATCH v4 01/37] sh: passing FDT address to kernel startup Yoshinori Sato
2023-11-14  8:44   ` Sergei Shtylyov
2023-11-14  7:59 ` [PATCH v4 02/37] sh: Kconfig unified OF supported targets Yoshinori Sato
2023-11-14 12:46   ` Arnd Bergmann
2023-11-14  7:59 ` [PATCH v4 03/37] sh: Enable OF support for build and configuration Yoshinori Sato
2023-11-14  7:59 ` [PATCH v4 04/37] dt-bindings: interrupt-controller: Add header for Renesas SH3/4 INTC Yoshinori Sato
2023-11-14 21:25   ` Krzysztof Kozlowski
2023-11-14  7:59 ` [PATCH v4 05/37] sh: GENERIC_IRQ_CHIP support for CONFIG_OF=y Yoshinori Sato
2023-11-14  7:59 ` [PATCH v4 06/37] sh: kernel/setup Update DT support Yoshinori Sato
2023-11-14  7:59 ` [PATCH v4 07/37] sh: Fix COMMON_CLK support in CONFIG_OF=y Yoshinori Sato
2023-11-14  7:59 ` [PATCH v4 08/37] clocksource: sh_tmu: CLOCKSOURCE support Yoshinori Sato
2023-11-14  8:00 ` [PATCH v4 09/37] dt-bindings: timer: renesas,tmu: add renesas,tmu-sh7750 Yoshinori Sato
2023-11-14 21:26   ` Krzysztof Kozlowski
2023-11-15  8:17     ` Geert Uytterhoeven
2023-11-15 21:05       ` Krzysztof Kozlowski
2023-11-14  8:00 ` Yoshinori Sato [this message]
2023-11-14 13:03   ` [PATCH v4 10/37] sh: Common PCI framework support Arnd Bergmann
2023-11-14  8:00 ` [PATCH v4 11/37] sh: Add old PCI drivers compatible stub Yoshinori Sato
2023-11-14  8:00 ` [PATCH v4 12/37] pci: pci-sh7751: Add SH7751 PCI driver Yoshinori Sato
2023-11-20 18:16   ` Bjorn Helgaas
2023-11-14  8:00 ` [PATCH v4 13/37] dt-bindings: pci: pci-sh7751: Add SH7751 PCI Yoshinori Sato
2023-11-14 21:27   ` Krzysztof Kozlowski
2023-11-14  8:00 ` [PATCH v4 14/37] dt-bindings: clock: sh7750-cpg: Add renesas,sh7750-cpg header Yoshinori Sato
2023-11-14 21:29   ` Krzysztof Kozlowski
2023-11-14  8:00 ` [PATCH v4 15/37] clk: Compatible with narrow registers Yoshinori Sato
2023-11-14  8:00 ` [PATCH v4 16/37] clk: renesas: Add SH7750/7751 CPG Driver Yoshinori Sato
2023-11-14  8:00 ` [PATCH v4 17/37] irqchip: Add SH7751 INTC driver Yoshinori Sato
2023-11-14  8:00 ` [PATCH v4 18/37] dt-bindings: interrupt-controller: renesas,sh7751-intc: Add json-schema Yoshinori Sato
2023-11-14  8:00 ` [PATCH v4 19/37] irqchip: SH7751 IRL external encoder with enable gate Yoshinori Sato
2023-11-14  8:00 ` [PATCH v4 20/37] dt-bindings: interrupt-controller: renesas,sh7751-irl-ext: Add json-schema Yoshinori Sato
2023-11-14  8:00 ` [PATCH v4 21/37] serial: sh-sci: fix SH4 OF support Yoshinori Sato
2023-11-14  8:00 ` [PATCH v4 22/37] dt-bindings: serial: renesas,scif: Add scif-sh7751 Yoshinori Sato
2023-11-14  8:00 ` [PATCH v4 23/37] dt-bindings: display: smi,sm501: SMI SM501 binding json-schema Yoshinori Sato
2023-11-14  8:00 ` [PATCH v4 24/37] mfd: sm501: Convert platform_data to OF property Yoshinori Sato
2023-11-23 13:59   ` Lee Jones
2023-11-14  8:00 ` [PATCH v4 25/37] dt-binding: sh: cpus: Add SH CPUs json-schema Yoshinori Sato
2023-11-14  8:00 ` [PATCH v4 26/37] dt-bindings: vendor-prefix: Add new vendor iodata and smi Yoshinori Sato
2023-11-14 16:35   ` Geert Uytterhoeven
2023-11-14  8:00 ` [PATCH v4 27/37] dt-bindings: ata: ata-generic: Add new targets Yoshinori Sato
2023-11-14 18:19   ` Rob Herring
2023-11-14  8:00 ` [PATCH v4 28/37] dt-bindings: soc: renesas: sh: Add SH7751 based target Yoshinori Sato
2023-11-14  8:00 ` [PATCH v4 29/37] sh: SH7751R SoC Internal peripheral definition dtsi Yoshinori Sato
2023-11-14  8:00 ` [PATCH v4 30/37] sh: add RTS7751R2D Plus DTS Yoshinori Sato
2023-11-14  8:00 ` [PATCH v4 31/37] sh: Add IO DATA LANDISK dts Yoshinori Sato
2023-11-14  8:00 ` [PATCH v4 32/37] sh: Add IO DATA USL-5P dts Yoshinori Sato
2023-11-14  9:02   ` Sergei Shtylyov
2023-11-14  9:04     ` Sergei Shtylyov
2023-11-14  8:00 ` [PATCH v4 33/37] sh: j2_mimas_v2.dts update Yoshinori Sato
2023-11-14  8:00 ` [PATCH v4 34/37] sh: Add dtbs target support Yoshinori Sato
2023-11-14  8:00 ` [PATCH v4 35/37] sh: RTS7751R2D Plus OF defconfig Yoshinori Sato
2023-11-14  8:00 ` [PATCH v4 36/37] sh: LANDISK " Yoshinori Sato
2023-11-14  8:00 ` [PATCH v4 37/37] sh: j2_defconfig: update Yoshinori Sato
2023-11-14  8:58 ` [PATCH v4 00/37] Device Tree support for SH7751 based board John Paul Adrian Glaubitz
2023-11-14 18:39   ` John Paul Adrian Glaubitz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=65b5ddcbecfa05088b3889d0815588012dc816da.1699856600.git.ysato@users.sourceforge.jp \
    --to=ysato@users.sourceforge.jp \
    --cc=akpm@linux-foundation.org \
    --cc=arnd@arndb.de \
    --cc=bhe@redhat.com \
    --cc=dalias@libc.org \
    --cc=glaubitz@physik.fu-berlin.de \
    --cc=linux-sh@vger.kernel.org \
    --cc=linux@roeck-us.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.