xref: /aosp_15_r20/external/coreboot/src/vendorcode/cavium/include/bdk/libbdk-driver/bdk-driver.h (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
1 /***********************license start***********************************
2 * Copyright (c) 2003-2017  Cavium Inc. ([email protected]). All rights
3 * reserved.
4 *
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are
8 * met:
9 *
10 *   * Redistributions of source code must retain the above copyright
11 *     notice, this list of conditions and the following disclaimer.
12 *
13 *   * Redistributions in binary form must reproduce the above
14 *     copyright notice, this list of conditions and the following
15 *     disclaimer in the documentation and/or other materials provided
16 *     with the distribution.
17 *
18 *   * Neither the name of Cavium Inc. nor the names of
19 *     its contributors may be used to endorse or promote products
20 *     derived from this software without specific prior written
21 *     permission.
22 *
23 * This Software, including technical data, may be subject to U.S. export
24 * control laws, including the U.S. Export Administration Act and its
25 * associated regulations, and may be subject to export or import
26 * regulations in other countries.
27 *
28 * TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS"
29 * AND WITH ALL FAULTS AND CAVIUM INC. MAKES NO PROMISES, REPRESENTATIONS OR
30 * WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH RESPECT
31 * TO THE SOFTWARE, INCLUDING ITS CONDITION, ITS CONFORMITY TO ANY
32 * REPRESENTATION OR DESCRIPTION, OR THE EXISTENCE OF ANY LATENT OR PATENT
33 * DEFECTS, AND CAVIUM SPECIFICALLY DISCLAIMS ALL IMPLIED (IF ANY) WARRANTIES
34 * OF TITLE, MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR A PARTICULAR
35 * PURPOSE, LACK OF VIRUSES, ACCURACY OR COMPLETENESS, QUIET ENJOYMENT,
36 * QUIET POSSESSION OR CORRESPONDENCE TO DESCRIPTION. THE ENTIRE  RISK
37 * ARISING OUT OF USE OR PERFORMANCE OF THE SOFTWARE LIES WITH YOU.
38 ***********************license end**************************************/
39 
40 /**
41  * @file
42  *
43  * bdk_driver_t represents drivers for devices connected using
44  * ECAMs. This are discover by scanning the ECAMs and
45  * instantiating devices for what is found.
46  *
47  * @defgroup driver ECAM Attached Drivers
48  * @addtogroup driver
49  * @{
50  */
51 #include "bdk-driver-sgpio.h"
52 
53 /**
54  * Defines the main entry points for a device driver
55  */
56 typedef struct bdk_driver_s
57 {
58     struct bdk_driver_s *next; /* Used by bdk-device to maintian list */
59     uint32_t id; /* ECAM device ID */
60     int (*probe)(bdk_device_t *device);
61     int (*init)(bdk_device_t *device);
62 } bdk_driver_t;
63 
64 /**
65  * Called by the BDK to register all loaded drivers with bdk-device.
66  *
67  * @return Zero on success, negative on failure
68  */
69 extern int __bdk_driver_register_all(void) BDK_WEAK;
70 
71 /** @} */
72