nuttx/drivers/usbhost/Make.defs
Justin Hammond 82fb0d8d06 drivers/usbhost: Separate the xHCI driver from the PCI bus.
Nothing in the controller driver is PCI-specific beyond finding the
registers and the interrupt, so an SoC wiring an xHCI controller
directly could not use any of it.

usbhost_xhci.c is now the driver; usbhost_xhci_pci.c is the PCI
attachment, holding the ID table, the BAR mapping and the MSI-X vector.
include/nuttx/usb/xhci.h carries what passes between them: the register
base, a way to attach the interrupt, and a name to report the controller
by, since a system may have more than one.

The interrupt belongs to the bus: the bus attaches and detaches it, and
the driver never holds an interrupt number.

USBHOST_XHCI is the driver and is not selectable on its own;
USBHOST_XHCI_PCI selects it.  Another bus adds its own symbol beside it.

No functional change intended.

Assisted-by: Claude:claude-opus-5
Signed-off-by: Justin Hammond <justin@dynam.ac>
2026-08-18 09:35:23 -03:00

110 lines
2.6 KiB
Text

############################################################################
# drivers/usbhost/Make.defs
#
# SPDX-License-Identifier: Apache-2.0
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership. The
# ASF licenses this file to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance with the
# License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
############################################################################
ifeq ($(CONFIG_USBHOST),y)
# Include built-in USB host driver logic
CSRCS += usbhost_registry.c usbhost_registerclass.c usbhost_findclass.c
CSRCS += usbhost_enumerate.c usbhost_devaddr.c
ifeq ($(CONFIG_USBHOST_WAITER),y)
CSRCS += usbhost_waiter.c usbhost_drivers.c
endif
ifeq ($(CONFIG_USBHOST_HUB),y)
CSRCS += usbhost_hub.c
endif
ifeq ($(CONFIG_USBHOST_COMPOSITE),y)
CSRCS += usbhost_composite.c
endif
ifeq ($(CONFIG_USBHOST_MSC),y)
CSRCS += usbhost_storage.c
endif
ifeq ($(CONFIG_USBHOST_CDCACM),y)
CSRCS += usbhost_cdcacm.c
endif
ifeq ($(CONFIG_USBHOST_CDCECM),y)
CSRCS += usbhost_cdcecm.c
endif
ifeq ($(CONFIG_USBHOST_CDCMBIM),y)
CSRCS += usbhost_cdcmbim.c
endif
ifeq ($(CONFIG_USBHOST_HID),y)
CSRCS += hid_parser.c
endif
ifeq ($(CONFIG_USBHOST_HIDKBD),y)
CSRCS += usbhost_hidkbd.c
endif
ifeq ($(CONFIG_USBHOST_HIDMOUSE),y)
CSRCS += usbhost_hidmouse.c
endif
ifeq ($(CONFIG_USBHOST_XBOXCONTROLLER),y)
CSRCS += usbhost_xboxcontroller.c
endif
ifeq ($(CONFIG_USBHOST_MAX3421E),y)
CSRCS += usbhost_max3421e.c
endif
ifeq ($(CONFIG_USBHOST_FT232R),y)
CSRCS += usbhost_ft232r.c
endif
ifeq ($(CONFIG_USBHOST_BTHCI),y)
CSRCS += usbhost_bthci.c
endif
ifeq ($(CONFIG_USBHOST_XHCI),y)
CSRCS += usbhost_xhci.c usbhost_xhci_trace.c
endif
ifeq ($(CONFIG_USBHOST_XHCI_PCI),y)
CSRCS += usbhost_xhci_pci.c
endif
# HCD debug/trace logic
ifeq ($(CONFIG_USBHOST_TRACE),y)
CSRCS += usbhost_trace.c
else
ifeq ($(CONFIG_DEBUG_USB),y)
CSRCS += usbhost_trace.c
endif
endif
endif
# Include USB host driver build logic
DEPPATH += --dep-path usbhost
VPATH += :usbhost
CFLAGS += ${INCDIR_PREFIX}$(TOPDIR)$(DELIM)drivers$(DELIM)usbhost