select AUDIT_ARCH
        select GENERIC_CPU_VULNERABILITIES
        select GENERIC_SMP_IDLE_THREAD
+       select HAS_IOPORT
        select HAVE_ARCH_AUDITSYSCALL
        select HAVE_MOD_ARCH_SPECIFIC
        select MODULES_USE_ELF_RELA
 
        select GENERIC_SCHED_CLOCK
        select GENERIC_SMP_IDLE_THREAD
        select HARDIRQS_SW_RESEND
+       select HAS_IOPORT
        select HAVE_ARCH_AUDITSYSCALL if AEABI && !OABI_COMPAT
        select HAVE_ARCH_BITREVERSE if (CPU_32v7M || CPU_32v7) && !CPU_32v6
        select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL && !CPU_ENDIAN_BE32 && MMU
 
        select GENERIC_GETTIMEOFDAY
        select GENERIC_VDSO_TIME_NS
        select HARDIRQS_SW_RESEND
+       select HAS_IOPORT
        select HAVE_MOVE_PMD
        select HAVE_MOVE_PUD
        select HAVE_PCI
 
        select PCI_DOMAINS if PCI
        select PCI_MSI
        select PCI_SYSCALL if PCI
+       select HAS_IOPORT
        select HAVE_ASM_MODVERSIONS
        select HAVE_UNSTABLE_SCHED_CLOCK
        select HAVE_EXIT_THREAD
 
        select GENERIC_SMP_IDLE_THREAD
        select GENERIC_TIME_VSYSCALL
        select GPIOLIB
+       select HAS_IOPORT
        select HAVE_ARCH_AUDITSYSCALL
        select HAVE_ARCH_MMAP_RND_BITS if MMU
        select HAVE_ARCH_SECCOMP_FILTER
 
        select GENERIC_CPU_DEVICES
        select GENERIC_IOMAP
        select GENERIC_IRQ_SHOW
+       select HAS_IOPORT if PCI || ISA || ATARI_ROM_ISA
        select HAVE_ARCH_SECCOMP
        select HAVE_ARCH_SECCOMP_FILTER
        select HAVE_ASM_MODVERSIONS
 
        select GENERIC_IRQ_SHOW
        select GENERIC_PCI_IOMAP
        select GENERIC_SCHED_CLOCK
+       select HAS_IOPORT if PCI
        select HAVE_ARCH_HASH
        select HAVE_ARCH_KGDB
        select HAVE_ARCH_SECCOMP
 
        select GENERIC_SMP_IDLE_THREAD
        select GENERIC_TIME_VSYSCALL
        select GUP_GET_PXX_LOW_HIGH if CPU_MIPS32 && PHYS_ADDR_T_64BIT
+       select HAS_IOPORT if !NO_IOPORT_MAP || ISA
        select HAVE_ARCH_COMPILER_H
        select HAVE_ARCH_JUMP_LABEL
        select HAVE_ARCH_KGDB if MIPS_FP_SUPPORT
 
        select MODULES_USE_ELF_RELA
        select CLONE_BACKWARDS
        select TTY # Needed for pdc_cons.c
+       select HAS_IOPORT if PCI || EISA
        select HAVE_DEBUG_STACKOVERFLOW
        select HAVE_ARCH_AUDITSYSCALL
        select HAVE_ARCH_HASH
 
        select GENERIC_SMP_IDLE_THREAD
        select GENERIC_TIME_VSYSCALL
        select GENERIC_VDSO_TIME_NS
+       select HAS_IOPORT                       if PCI
        select HAVE_ARCH_AUDITSYSCALL
        select HAVE_ARCH_HUGE_VMALLOC           if HAVE_ARCH_HUGE_VMAP
        select HAVE_ARCH_HUGE_VMAP              if PPC_RADIX_MMU || PPC_8xx
 
        select GENERIC_TIME_VSYSCALL if MMU && 64BIT
        select GENERIC_VDSO_TIME_NS if HAVE_GENERIC_VDSO
        select HARDIRQS_SW_RESEND
+       select HAS_IOPORT if MMU
        select HAVE_ARCH_AUDITSYSCALL
        select HAVE_ARCH_HUGE_VMALLOC if HAVE_ARCH_HUGE_VMAP
        select HAVE_ARCH_HUGE_VMAP if MMU && 64BIT && !XIP_KERNEL
 
        select GENERIC_SCHED_CLOCK
        select GENERIC_SMP_IDLE_THREAD
        select GUP_GET_PXX_LOW_HIGH if X2TLB
+       select HAS_IOPORT if HAS_IOPORT_MAP
        select HAVE_ARCH_AUDITSYSCALL
        select HAVE_ARCH_KGDB
        select HAVE_ARCH_SECCOMP_FILTER
 
        select GENERIC_IRQ_SHOW
        select ARCH_WANT_IPC_PARSE_VERSION
        select GENERIC_PCI_IOMAP
+       select HAS_IOPORT
        select HAVE_NMI_WATCHDOG if SPARC64
        select HAVE_CBPF_JIT if SPARC32
        select HAVE_EBPF_JIT if SPARC64
 
        select GUP_GET_PXX_LOW_HIGH             if X86_PAE
        select HARDIRQS_SW_RESEND
        select HARDLOCKUP_CHECK_TIMESTAMP       if X86_64
+       select HAS_IOPORT
        select HAVE_ACPI_APEI                   if ACPI
        select HAVE_ACPI_APEI_NMI               if ACPI
        select HAVE_ALIGNED_STRUCT_PAGE         if SLUB
 
 config HISILICON_LPC
        bool "Support for ISA I/O space on HiSilicon Hip06/7"
        depends on (ARM64 && ARCH_HISI) || (COMPILE_TEST && !ALPHA && !HEXAGON && !PARISC)
-       depends on HAS_IOMEM
+       depends on HAS_IOPORT
        select INDIRECT_PIO if ARM64
        help
          Driver to enable I/O access to devices attached to the Low Pin
 
 config GSC
        bool "VSC/GSC/HSC bus support"
        select HAVE_EISA
+       select HAS_IOPORT
        default y
        help
          The VSC, GSC and HSC busses were used from the earliest 700-series
 
 config INDIRECT_PIO
        bool "Access I/O in non-MMIO mode"
        depends on ARM64
+       depends on HAS_IOPORT
        help
          On some platforms where no separate I/O space exists, there are I/O
          hosts which can not be accessed in MMIO mode. Using the logical PIO
        depends on !NO_IOMEM
        default y
 
+config HAS_IOPORT
+       bool
+
 config HAS_IOPORT_MAP
        bool
        depends on HAS_IOMEM && !NO_IOPORT_MAP