nuttx/drivers/usbhost/CMakeLists.txt
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

103 lines
2.7 KiB
CMake

# ##############################################################################
# drivers/usbhost/CMakeLists.txt
#
# 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.
#
# ##############################################################################
if(CONFIG_USBHOST)
# Include built-in USB host driver logic
set(SRCS usbhost_registry.c usbhost_registerclass.c usbhost_findclass.c
usbhost_enumerate.c usbhost_devaddr.c)
if(CONFIG_USBHOST_WAITER)
list(APPEND SRCS usbhost_waiter.c usbhost_drivers.c)
endif()
if(CONFIG_USBHOST_HUB)
list(APPEND SRCS usbhost_hub.c)
endif()
if(CONFIG_USBHOST_COMPOSITE)
list(APPEND SRCS usbhost_composite.c)
endif()
if(CONFIG_USBHOST_MSC)
list(APPEND SRCS usbhost_storage.c)
endif()
if(CONFIG_USBHOST_CDCACM)
list(APPEND SRCS usbhost_cdcacm.c)
endif()
if(CONFIG_USBHOST_CDCECM)
list(APPEND SRCS usbhost_cdcecm.c)
endif()
if(CONFIG_USBHOST_CDCMBIM)
list(APPEND SRCS usbhost_cdcmbim.c)
endif()
if(CONFIG_USBHOST_HID)
list(APPEND SRCS hid_parser.c)
endif()
if(CONFIG_USBHOST_HIDKBD)
list(APPEND SRCS usbhost_hidkbd.c)
endif()
if(CONFIG_USBHOST_HIDMOUSE)
list(APPEND SRCS usbhost_hidmouse.c)
endif()
if(CONFIG_USBHOST_XBOXCONTROLLER)
list(APPEND SRCS usbhost_xboxcontroller.c)
endif()
if(CONFIG_USBHOST_MAX3421E)
list(APPEND SRCS usbhost_max3421e.c)
endif()
if(CONFIG_USBHOST_FT232R)
list(APPEND SRCS usbhost_ft232r.c)
endif()
if(CONFIG_USBHOST_BTHCI)
list(APPEND SRCS usbhost_bthci.c)
endif()
if(CONFIG_USBHOST_XHCI)
list(APPEND SRCS usbhost_xhci.c usbhost_xhci_trace.c)
endif()
if(CONFIG_USBHOST_XHCI_PCI)
list(APPEND SRCS usbhost_xhci_pci.c)
endif()
# HCD debug/trace logic
if(CONFIG_USBHOST_TRACE)
list(APPEND SRCS usbhost_trace.c)
elseif(CONFIG_DEBUG_USB)
list(APPEND SRCS usbhost_trace.c)
endif()
target_sources(drivers PRIVATE ${SRCS})
endif()