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/mmc/mmcbr_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 #include <sys/types.h>
   56 #include <dev/mmc/mmcreg.h>
   57 
   58 #
   59 # This is the interface that a mmc bridge chip gives to the mmc bus
   60 # that attaches to the mmc bridge.
   61 #
   62 
   63 INTERFACE mmcbr;
   64 
   65 #
   66 # Default implementations of some methods.
   67 #
   68 CODE {
   69         static int
   70         null_switch_vccq(device_t brdev __unused, device_t reqdev __unused)
   71         {
   72 
   73                 return (0);
   74         }
   75 
   76         static int
   77         null_retune(device_t brdev __unused, device_t reqdev __unused,
   78             bool reset __unused)
   79         {
   80 
   81                 return (0);
   82         }
   83 
   84         static int
   85         null_tune(device_t brdev __unused, device_t reqdev __unused,
   86             bool hs400 __unused)
   87         {
   88 
   89                 return (0);
   90         }
   91 };
   92 
   93 #
   94 # Called by the mmcbus to set up the IO pins correctly, the common/core
   95 # supply voltage (VDD/VCC) to use for the device, the clock frequency, the
   96 # type of SPI chip select, power mode and bus width.
   97 #
   98 METHOD int update_ios {
   99         device_t        brdev;
  100         device_t        reqdev;
  101 };
  102 
  103 #
  104 # Called by the mmcbus to switch the signaling voltage (VCCQ).
  105 #
  106 METHOD int switch_vccq {
  107         device_t        brdev;
  108         device_t        reqdev;
  109 } DEFAULT null_switch_vccq;
  110 
  111 #
  112 # Called by the mmcbus with the bridge claimed to execute initial tuning.
  113 #
  114 METHOD int tune {
  115         device_t        brdev;
  116         device_t        reqdev;
  117         bool            hs400;
  118 } DEFAULT null_tune;
  119 
  120 #
  121 # Called by the mmcbus with the bridge claimed to execute re-tuning.
  122 #
  123 METHOD int retune {
  124         device_t        brdev;
  125         device_t        reqdev;
  126         bool            reset;
  127 } DEFAULT null_retune;
  128 
  129 #
  130 # Called by the mmcbus or its children to schedule a mmc request.  These
  131 # requests are queued.  Time passes.  The bridge then gets notification
  132 # of the status of the request, who then notifies the requesting device
  133 # by calling the completion function supplied as part of the request.
  134 # Requires the bridge to be claimed.
  135 #
  136 METHOD int request {
  137         device_t        brdev;
  138         device_t        reqdev;
  139         struct mmc_request *req;
  140 };
  141 
  142 #
  143 # Called by mmcbus to get the read only status bits.
  144 #
  145 METHOD int get_ro {
  146         device_t        brdev;
  147         device_t        reqdev;
  148 };
  149 
  150 #
  151 # Claim the current bridge, blocking the current thread until the host
  152 # is no longer busy.
  153 #
  154 METHOD int acquire_host {
  155         device_t        brdev;
  156         device_t        reqdev;
  157 };
  158 
  159 #
  160 # Release the current bridge.
  161 #
  162 METHOD int release_host {
  163         device_t        brdev;
  164         device_t        reqdev;
  165 };

Cache object: 0322649cc24149bee00789176d8929b9


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