1// Copyright 2016 The Fuchsia Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include <ddk/binding.h> 6#include <ddk/debug.h> 7#include <ddk/device.h> 8#include <ddk/driver.h> 9#include <ddk/protocol/pci.h> 10#include <ddk/protocol/platform-defs.h> 11 12static zx_status_t pci_drv_bind(void* ctx, zx_device_t* parent) { 13 zxlogf(INFO, "userspace pci bound to pciroot.\n"); 14 return ZX_OK; 15} 16 17static zx_driver_ops_t kpci_driver_ops = { 18 .version = DRIVER_OPS_VERSION, 19 .bind = pci_drv_bind, 20}; 21 22// clang-format off 23ZIRCON_DRIVER_BEGIN(pci, kpci_driver_ops, "zircon", "0.1", 5) 24 BI_MATCH_IF(EQ, BIND_PROTOCOL, ZX_PROTOCOL_PCIROOT), 25 BI_ABORT_IF(NE, BIND_PROTOCOL, ZX_PROTOCOL_PLATFORM_DEV), 26 BI_ABORT_IF(NE, BIND_PLATFORM_DEV_VID, PDEV_VID_GENERIC), 27 BI_ABORT_IF(NE, BIND_PLATFORM_DEV_PID, PDEV_PID_GENERIC), 28 BI_MATCH_IF(EQ, BIND_PLATFORM_DEV_DID, PDEV_DID_KPCI), 29ZIRCON_DRIVER_END(pci) 30