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/sdhci/sdhci_if.m

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 # Copyright (c) 2006 M. Warner Losh <imp@FreeBSD.org>
    3 #
    4 # Redistribution and use in source and binary forms, with or without
    5 # modification, are permitted provided that the following conditions
    6 # are met:
    7 # 1. Redistributions of source code must retain the above copyright
    8 #    notice, this list of conditions and the following disclaimer.
    9 # 2. Redistributions in binary form must reproduce the above copyright
   10 #    notice, this list of conditions and the following disclaimer in the
   11 #    documentation and/or other materials provided with the distribution.
   12 #
   13 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
   14 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   15 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   16 # ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
   17 # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   18 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   19 # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   20 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   21 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   22 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   23 # SUCH DAMAGE.
   24 #
   25 # Portions of this software may have been developed with reference to
   26 # the SD Simplified Specification.  The following disclaimer may apply:
   27 #
   28 # The following conditions apply to the release of the simplified
   29 # specification ("Simplified Specification") by the SD Card Association and
   30 # the SD Group. The Simplified Specification is a subset of the complete SD
   31 # Specification which is owned by the SD Card Association and the SD
   32 # Group. This Simplified Specification is provided on a non-confidential
   33 # basis subject to the disclaimers below. Any implementation of the
   34 # Simplified Specification may require a license from the SD Card
   35 # Association, SD Group, SD-3C LLC or other third parties.
   36 #
   37 # Disclaimers:
   38 #
   39 # The information contained in the Simplified Specification is presented only
   40 # as a standard specification for SD Cards and SD Host/Ancillary products and
   41 # is provided "AS-IS" without any representations or warranties of any
   42 # kind. No responsibility is assumed by the SD Group, SD-3C LLC or the SD
   43 # Card Association for any damages, any infringements of patents or other
   44 # right of the SD Group, SD-3C LLC, the SD Card Association or any third
   45 # parties, which may result from its use. No license is granted by
   46 # implication, estoppel or otherwise under any patent or other rights of the
   47 # SD Group, SD-3C LLC, the SD Card Association or any third party. Nothing
   48 # herein shall be construed as an obligation by the SD Group, the SD-3C LLC
   49 # or the SD Card Association to disclose or distribute any technical
   50 # information, know-how or other confidential information to any third party.
   51 #
   52 # $FreeBSD$
   53 #
   54 
   55 #
   56 # This is the set of callbacks that mmc bridges call into the bus, or
   57 # that mmc/sd card drivers call to make requests.
   58 #
   59 
   60 #include <sys/lock.h>
   61 #include <sys/mutex.h>
   62 #include <sys/types.h>
   63 #include <sys/sysctl.h>
   64 #include <sys/taskqueue.h>
   65 
   66 #include <machine/bus.h>
   67 
   68 #include <dev/mmc/bridge.h>
   69 #include <dev/sdhci/sdhci.h>
   70 
   71 CODE {
   72         static int
   73         null_set_clock(device_t brdev __unused,
   74             struct sdhci_slot *slot __unused,
   75             int clock)
   76         {
   77                 return (clock);
   78         }
   79 
   80         static void
   81         null_set_uhs_timing(device_t brdev __unused,
   82             struct sdhci_slot *slot __unused)
   83         {
   84 
   85         }
   86 }
   87 
   88 INTERFACE sdhci;
   89 
   90 METHOD uint8_t read_1 {
   91         device_t                brdev;
   92         struct sdhci_slot       *slot;
   93         bus_size_t              off;
   94 }
   95 
   96 METHOD uint16_t read_2 {
   97         device_t                brdev;
   98         struct sdhci_slot       *slot;
   99         bus_size_t              off;
  100 }
  101 
  102 METHOD uint32_t read_4 {
  103         device_t                brdev;
  104         struct sdhci_slot       *slot;
  105         bus_size_t              off;
  106 }
  107 
  108 METHOD void read_multi_4 {
  109         device_t                brdev;
  110         struct sdhci_slot       *slot;
  111         bus_size_t              off;
  112         uint32_t                *data;
  113         bus_size_t              count;
  114 }
  115 
  116 METHOD void write_1 {
  117         device_t                brdev;
  118         struct sdhci_slot       *slot;
  119         bus_size_t              off;
  120         uint8_t                 val;
  121 }
  122 
  123 METHOD void write_2 {
  124         device_t                brdev;
  125         struct sdhci_slot       *slot;
  126         bus_size_t              off;
  127         uint16_t                val;
  128 }
  129 
  130 METHOD void write_4 {
  131         device_t                brdev;
  132         struct sdhci_slot       *slot;
  133         bus_size_t              off;
  134         uint32_t                val;
  135 }
  136 
  137 METHOD void write_multi_4 {
  138         device_t                brdev;
  139         struct sdhci_slot       *slot;
  140         bus_size_t              off;
  141         uint32_t                *data;
  142         bus_size_t              count;
  143 }
  144 
  145 METHOD int platform_will_handle {
  146         device_t                brdev;
  147         struct sdhci_slot       *slot;
  148 }
  149 
  150 METHOD void platform_start_transfer {
  151         device_t                brdev;
  152         struct sdhci_slot       *slot;
  153         uint32_t                *intmask;
  154 }
  155 
  156 METHOD void platform_finish_transfer {
  157         device_t                brdev;
  158         struct sdhci_slot       *slot;
  159 }
  160 
  161 METHOD uint32_t min_freq {
  162         device_t                brdev;
  163         struct sdhci_slot       *slot;
  164 } DEFAULT sdhci_generic_min_freq;
  165 
  166 METHOD bool get_card_present {
  167         device_t                brdev;
  168         struct sdhci_slot       *slot;
  169 } DEFAULT sdhci_generic_get_card_present;
  170 
  171 METHOD void set_uhs_timing {
  172         device_t                brdev;
  173         struct sdhci_slot       *slot;
  174 } DEFAULT null_set_uhs_timing;
  175 
  176 METHOD int set_clock {
  177         device_t                brdev;
  178         struct sdhci_slot       *slot;
  179         int                     clock;
  180 } DEFAULT null_set_clock;
  181 
  182 METHOD void reset {
  183         device_t                brdev;
  184         struct sdhci_slot       *slot;
  185         uint8_t                 mask;
  186 } DEFAULT sdhci_generic_reset;

Cache object: a8a45620d56032d5022ac8d2a242dee1


[ 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.