The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/bhnd/bhndvar.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*-
    2  * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
    3  *
    4  * Copyright (c) 2015-2016 Landon Fuller <landonf@FreeBSD.org>
    5  * Copyright (c) 2017 The FreeBSD Foundation
    6  * All rights reserved.
    7  *
    8  * Portions of this software were developed by Landon Fuller
    9  * under sponsorship from the FreeBSD Foundation.
   10  *
   11  * Redistribution and use in source and binary forms, with or without
   12  * modification, are permitted provided that the following conditions
   13  * are met:
   14  * 1. Redistributions of source code must retain the above copyright
   15  *    notice, this list of conditions and the following disclaimer,
   16  *    without modification.
   17  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
   18  *    similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any
   19  *    redistribution must be conditioned upon including a substantially
   20  *    similar Disclaimer requirement for further binary redistribution.
   21  *
   22  * NO WARRANTY
   23  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
   24  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
   25  * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY
   26  * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
   27  * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY,
   28  * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
   29  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   30  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
   31  * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   32  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
   33  * THE POSSIBILITY OF SUCH DAMAGES.
   34  * 
   35  * $FreeBSD$
   36  */
   37 
   38 #ifndef _BHND_BHNDVAR_H_
   39 #define _BHND_BHNDVAR_H_
   40 
   41 #include <sys/param.h>
   42 #include <sys/bus.h>
   43 #include <sys/malloc.h>
   44 
   45 #include "bhnd.h"
   46 
   47 /*
   48  * Definitions shared by bhnd(4) bus and bhndb(4) bridge driver implementations.
   49  */
   50 
   51 MALLOC_DECLARE(M_BHND);
   52 DECLARE_CLASS(bhnd_driver);
   53 
   54 struct bhnd_core_clkctl;
   55 
   56 struct bhnd_core_clkctl         *bhnd_alloc_core_clkctl(device_t dev,
   57                                      device_t pmu_dev, struct bhnd_resource *r,
   58                                      bus_size_t offset, u_int max_latency);
   59 void                             bhnd_free_core_clkctl(
   60                                      struct bhnd_core_clkctl *clkctl);
   61 int                              bhnd_core_clkctl_wait(
   62                                      struct bhnd_core_clkctl *clkctl,
   63                                      uint32_t value, uint32_t mask);
   64 
   65 int                              bhnd_generic_attach(device_t dev);
   66 int                              bhnd_generic_detach(device_t dev);
   67 int                              bhnd_generic_shutdown(device_t dev);
   68 int                              bhnd_generic_resume(device_t dev);
   69 int                              bhnd_generic_suspend(device_t dev);
   70 
   71 int                              bhnd_generic_get_probe_order(device_t dev,
   72                                      device_t child);
   73 
   74 int                              bhnd_generic_alloc_pmu(device_t dev,
   75                                      device_t child);
   76 int                              bhnd_generic_release_pmu(device_t dev,
   77                                      device_t child);
   78 int                              bhnd_generic_get_clock_latency(device_t dev,
   79                                      device_t child, bhnd_clock clock,
   80                                      u_int *latency);
   81 int                              bhnd_generic_get_clock_freq(device_t dev,
   82                                      device_t child, bhnd_clock clock,
   83                                      u_int *freq);
   84 int                              bhnd_generic_request_clock(device_t dev,
   85                                      device_t child, bhnd_clock clock);
   86 int                              bhnd_generic_enable_clocks(device_t dev,
   87                                      device_t child, uint32_t clocks);
   88 int                              bhnd_generic_request_ext_rsrc(device_t dev,
   89                                      device_t child, u_int rsrc);
   90 int                              bhnd_generic_release_ext_rsrc(device_t dev,
   91                                      device_t child, u_int rsrc);
   92 
   93 int                              bhnd_generic_print_child(device_t dev,
   94                                      device_t child);
   95 void                             bhnd_generic_probe_nomatch(device_t dev,
   96                                      device_t child);
   97 
   98 void                             bhnd_generic_child_deleted(device_t dev,
   99                                      device_t child);
  100 int                              bhnd_generic_suspend_child(device_t dev,
  101                                      device_t child);
  102 int                              bhnd_generic_resume_child(device_t dev,
  103                                      device_t child);
  104 
  105 int                              bhnd_generic_setup_intr(device_t dev,
  106                                      device_t child, struct resource *irq,
  107                                      int flags, driver_filter_t *filter,
  108                                      driver_intr_t *intr, void *arg,
  109                                      void **cookiep);
  110 
  111 int                              bhnd_generic_get_nvram_var(device_t dev,
  112                                      device_t child, const char *name,
  113                                      void *buf, size_t *size,
  114                                      bhnd_nvram_type type);
  115 
  116 /**
  117  * bhnd driver instance state. Must be first member of all subclass
  118  * softc structures.
  119  */
  120 struct bhnd_softc {
  121         device_t dev;   /**< bus device */
  122 };
  123 
  124 #endif /* _BHND_BHNDVAR_H_ */

Cache object: aca530a6d9b583a7343656a57ceab7e2


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.