<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.13">
  <compounddef id="struct_u_s_b_d___h_w___a_p_i___t" kind="struct" language="C++" prot="public">
    <compoundname>USBD_HW_API_T</compoundname>
    <includes refid="mw__usbd__hw_8h" local="no">mw_usbd/mw_usbd_hw.h</includes>
      <sectiondef kind="public-attrib">
      <memberdef kind="variable" id="struct_u_s_b_d___h_w___a_p_i___t_1a0139f290b9605de953245f12b5a0ff26" prot="public" static="no" mutable="no">
        <type>uint32_t(*</type>
        <definition>uint32_t USBD_HW_API_T::GetMemSize</definition>
        <argsstring>)(USBD_API_INIT_PARAM_T *param)</argsstring>
        <name>GetMemSize</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Function to determine the memory required by the USB device stack&apos;s DCD and core layers.</para><para>This function is called by application layer before calling pUsbApi-&gt;hw-&gt;<ref refid="struct_u_s_b_d___h_w___a_p_i___t_1adf7b0f0dc37399c73b3cb03224a6715c" kindref="member">Init()</ref>, to allocate memory used by DCD and core layers. The application should allocate the memory which is accessible by USB controller/DMA controller. <simplesect kind="note"><para>Some memory areas are not accessible by all bus masters.</para></simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">param</parametername>
</parameternamelist>
<parameterdescription>
<para>Structure containing USB device stack initialization parameters. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>Returns the required memory size in bytes. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hw.h" line="87" column="1" bodyfile="mw_usbd/mw_usbd_hw.h" bodystart="87" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_w___a_p_i___t_1adf7b0f0dc37399c73b3cb03224a6715c" prot="public" static="no" mutable="no">
        <type><ref refid="error_8h_1a905255056c349318139d94aa4523d516" kindref="member">ErrorCode_t</ref>(*</type>
        <definition>ErrorCode_t USBD_HW_API_T::Init</definition>
        <argsstring>)(USBD_HANDLE_T *phUsb, USB_CORE_DESCS_T *pDesc, USBD_API_INIT_PARAM_T *param)</argsstring>
        <name>Init</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Function to initialize USB device stack&apos;s DCD and core layers.</para><para>This function is called by application layer to initialize USB hardware and core layers. On successful initialization the function returns a handle to USB device stack which should be passed to the rest of the functions.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">phUsb</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to the USB device stack handle of type USBD_HANDLE_T. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">pDesc</parametername>
</parameternamelist>
<parameterdescription>
<para>Structure containing pointers to various descriptor arrays needed by the stack. These descriptors are reported to USB host as part of enumerations process. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">param</parametername>
</parameternamelist>
<parameterdescription>
<para>Structure containing USB device stack initialization parameters. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>Returns <ref refid="error_8h_1a905255056c349318139d94aa4523d516" kindref="member">ErrorCode_t</ref> type to indicate success or error condition. </para></simplesect>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>LPC_OK(0)</parametername>
</parameternamelist>
<parameterdescription>
<para>On success </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ERR_USBD_BAD_MEM_BUF(0x0004000b)</parametername>
</parameternamelist>
<parameterdescription>
<para>When insufficient memory buffer is passed or memory is not aligned on 2048 boundary. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hw.h" line="105" column="1" bodyfile="mw_usbd/mw_usbd_hw.h" bodystart="105" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_w___a_p_i___t_1a94f866b8fdcb6c08b622badfa5703545" prot="public" static="no" mutable="no">
        <type>void(*</type>
        <definition>void USBD_HW_API_T::Connect</definition>
        <argsstring>)(USBD_HANDLE_T hUsb, uint32_t con)</argsstring>
        <name>Connect</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Function to make USB device visible/invisible on the USB bus.</para><para>This function is called after the USB initialization. This function uses the soft connect feature to make the device visible on the USB bus. This function is called only after the application is ready to handle the USB data. The enumeration process is started by the host after the device detection. The driver handles the enumeration process according to the USB descriptors passed in the USB initialization function.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hUsb</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to the USB device stack. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">con</parametername>
</parameternamelist>
<parameterdescription>
<para>States whether to connect (1) or to disconnect (0). </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>Nothing. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hw.h" line="120" column="1" bodyfile="mw_usbd/mw_usbd_hw.h" bodystart="120" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_w___a_p_i___t_1a00d85b9c68f1ec92c8092dafe524fe2b" prot="public" static="no" mutable="no">
        <type>void(*</type>
        <definition>void USBD_HW_API_T::ISR</definition>
        <argsstring>)(USBD_HANDLE_T hUsb)</argsstring>
        <name>ISR</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Function to USB device controller interrupt events.</para><para>When the user application is active the interrupt handlers are mapped in the user flash space. The user application must provide an interrupt handler for the USB interrupt and call this function in the interrupt handler routine. The driver interrupt handler takes appropriate action according to the data received on the USB bus.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hUsb</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to the USB device stack. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>Nothing. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hw.h" line="133" column="1" bodyfile="mw_usbd/mw_usbd_hw.h" bodystart="133" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_w___a_p_i___t_1aa8865aa13798d88076d1f60e4aa05ffd" prot="public" static="no" mutable="no">
        <type>void(*</type>
        <definition>void USBD_HW_API_T::Reset</definition>
        <argsstring>)(USBD_HANDLE_T hUsb)</argsstring>
        <name>Reset</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Function to Reset USB device stack and hardware controller.</para><para>Reset USB device stack and hardware controller. Disables all endpoints except EP0. Clears all pending interrupts and resets endpoint transfer queues. This function is called internally by pUsbApi-&gt;hw-&gt;init() and from reset event.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hUsb</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to the USB device stack. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>Nothing. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hw.h" line="145" column="1" bodyfile="mw_usbd/mw_usbd_hw.h" bodystart="145" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_w___a_p_i___t_1ac4fda1a2255a941af2defbaf43ec6fc2" prot="public" static="no" mutable="no">
        <type>void(*</type>
        <definition>void USBD_HW_API_T::ForceFullSpeed</definition>
        <argsstring>)(USBD_HANDLE_T hUsb, uint32_t cfg)</argsstring>
        <name>ForceFullSpeed</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Function to force high speed USB device to operate in full speed mode.</para><para>This function is useful for testing the behavior of current device when connected to a full speed only hosts.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hUsb</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to the USB device stack. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">cfg</parametername>
</parameternamelist>
<parameterdescription>
<para>When 1 - set force full-speed or 0 - clear force full-speed. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>Nothing. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hw.h" line="158" column="1" bodyfile="mw_usbd/mw_usbd_hw.h" bodystart="158" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_w___a_p_i___t_1a303ebdddeba4fbe77a9bf82d10829d06" prot="public" static="no" mutable="no">
        <type>void(*</type>
        <definition>void USBD_HW_API_T::WakeUpCfg</definition>
        <argsstring>)(USBD_HANDLE_T hUsb, uint32_t cfg)</argsstring>
        <name>WakeUpCfg</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Function to configure USB device controller to wake-up host on remote events.</para><para>This function is called by application layer to configure the USB device controller to wakeup on remote events. It is recommended to call this function from users&apos;s USB_WakeUpCfg() callback routine registered with stack. <simplesect kind="note"><para>User&apos;s USB_WakeUpCfg() is registered with stack by setting the USB_WakeUpCfg member of <ref refid="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t" kindref="compound">USBD_API_INIT_PARAM_T</ref> structure before calling pUsbApi-&gt;hw-&gt;<ref refid="struct_u_s_b_d___h_w___a_p_i___t_1adf7b0f0dc37399c73b3cb03224a6715c" kindref="member">Init()</ref> routine. Certain USB device controllers needed to keep some clocks always on to generate resume signaling through pUsbApi-&gt;hw-&gt;<ref refid="struct_u_s_b_d___h_w___a_p_i___t_1aa4e8e27a0733b22a2ac797a462bd52be" kindref="member">WakeUp()</ref>. This hook is provided to support such controllers. In most controllers cases this is an empty routine.</para></simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hUsb</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to the USB device stack. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">cfg</parametername>
</parameternamelist>
<parameterdescription>
<para>When 1 - Configure controller to wake on remote events or 0 - Configure controller not to wake on remote events. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>Nothing. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hw.h" line="177" column="1" bodyfile="mw_usbd/mw_usbd_hw.h" bodystart="177" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_w___a_p_i___t_1aac740eff46c33a2e55505d38b78bbc15" prot="public" static="no" mutable="no">
        <type>void(*</type>
        <definition>void USBD_HW_API_T::SetAddress</definition>
        <argsstring>)(USBD_HANDLE_T hUsb, uint32_t adr)</argsstring>
        <name>SetAddress</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Function to set USB address assigned by host in device controller hardware.</para><para>This function is called automatically when USB_REQUEST_SET_ADDRESS request is received by the stack from USB host. This interface is provided to users to invoke this function in other scenarios which are not handle by current stack. In most user applications this function is not called directly. Also this function can be used by users who are selectively modifying the USB device stack&apos;s standard handlers through callback interface exposed by the stack.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hUsb</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to the USB device stack. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">adr</parametername>
</parameternamelist>
<parameterdescription>
<para>USB bus Address to which the device controller should respond. Usually assigned by the USB host. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>Nothing. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hw.h" line="194" column="1" bodyfile="mw_usbd/mw_usbd_hw.h" bodystart="194" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_w___a_p_i___t_1a14ff45a427052dd46f20f01e00ec759c" prot="public" static="no" mutable="no">
        <type>void(*</type>
        <definition>void USBD_HW_API_T::Configure</definition>
        <argsstring>)(USBD_HANDLE_T hUsb, uint32_t cfg)</argsstring>
        <name>Configure</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Function to configure device controller hardware with selected configuration.</para><para>This function is called automatically when USB_REQUEST_SET_CONFIGURATION request is received by the stack from USB host. This interface is provided to users to invoke this function in other scenarios which are not handle by current stack. In most user applications this function is not called directly. Also this function can be used by users who are selectively modifying the USB device stack&apos;s standard handlers through callback interface exposed by the stack.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hUsb</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to the USB device stack. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">cfg</parametername>
</parameternamelist>
<parameterdescription>
<para>Configuration index. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>Nothing. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hw.h" line="210" column="1" bodyfile="mw_usbd/mw_usbd_hw.h" bodystart="210" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_w___a_p_i___t_1a05143cf85edf626e786ae3a24be105e2" prot="public" static="no" mutable="no">
        <type>void(*</type>
        <definition>void USBD_HW_API_T::ConfigEP</definition>
        <argsstring>)(USBD_HANDLE_T hUsb, USB_ENDPOINT_DESCRIPTOR *pEPD)</argsstring>
        <name>ConfigEP</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Function to configure USB Endpoint according to descriptor.</para><para>This function is called automatically when USB_REQUEST_SET_CONFIGURATION request is received by the stack from USB host. All the endpoints associated with the selected configuration are configured. This interface is provided to users to invoke this function in other scenarios which are not handle by current stack. In most user applications this function is not called directly. Also this function can be used by users who are selectively modifying the USB device stack&apos;s standard handlers through callback interface exposed by the stack.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hUsb</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to the USB device stack. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">pEPD</parametername>
</parameternamelist>
<parameterdescription>
<para>Endpoint descriptor structure defined in USB 2.0 specification. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>Nothing. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hw.h" line="227" column="1" bodyfile="mw_usbd/mw_usbd_hw.h" bodystart="227" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_w___a_p_i___t_1ab95b4205de9657a5f5bba6aafd5c9b1b" prot="public" static="no" mutable="no">
        <type>void(*</type>
        <definition>void USBD_HW_API_T::DirCtrlEP</definition>
        <argsstring>)(USBD_HANDLE_T hUsb, uint32_t dir)</argsstring>
        <name>DirCtrlEP</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Function to set direction for USB control endpoint EP0.</para><para>This function is called automatically by the stack on need basis. This interface is provided to users to invoke this function in other scenarios which are not handle by current stack. In most user applications this function is not called directly. Also this function can be used by users who are selectively modifying the USB device stack&apos;s standard handlers through callback interface exposed by the stack.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hUsb</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to the USB device stack. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">cfg</parametername>
</parameternamelist>
<parameterdescription>
<para>When 1 - Set EP0 in IN transfer mode 0 - Set EP0 in OUT transfer mode </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>Nothing. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hw.h" line="243" column="1" bodyfile="mw_usbd/mw_usbd_hw.h" bodystart="243" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_w___a_p_i___t_1a2ed5cd50bbf5612c2ca6515482119f14" prot="public" static="no" mutable="no">
        <type>void(*</type>
        <definition>void USBD_HW_API_T::EnableEP</definition>
        <argsstring>)(USBD_HANDLE_T hUsb, uint32_t EPNum)</argsstring>
        <name>EnableEP</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Function to enable selected USB endpoint.</para><para>This function enables interrupts on selected endpoint.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hUsb</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to the USB device stack. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">EPNum</parametername>
</parameternamelist>
<parameterdescription>
<para>Endpoint number as per USB specification. ie. An EP1_IN is represented by 0x81 number. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>Nothing. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hw.h" line="255" column="1" bodyfile="mw_usbd/mw_usbd_hw.h" bodystart="255" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_w___a_p_i___t_1a1f346a7f9024f17e4def61e15b5db1b6" prot="public" static="no" mutable="no">
        <type>void(*</type>
        <definition>void USBD_HW_API_T::DisableEP</definition>
        <argsstring>)(USBD_HANDLE_T hUsb, uint32_t EPNum)</argsstring>
        <name>DisableEP</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Function to disable selected USB endpoint.</para><para>This function disables interrupts on selected endpoint.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hUsb</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to the USB device stack. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">EPNum</parametername>
</parameternamelist>
<parameterdescription>
<para>Endpoint number as per USB specification. ie. An EP1_IN is represented by 0x81 number. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>Nothing. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hw.h" line="267" column="1" bodyfile="mw_usbd/mw_usbd_hw.h" bodystart="267" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_w___a_p_i___t_1aaf39abc4c1d2bbf0de4800fcaee74f7e" prot="public" static="no" mutable="no">
        <type>void(*</type>
        <definition>void USBD_HW_API_T::ResetEP</definition>
        <argsstring>)(USBD_HANDLE_T hUsb, uint32_t EPNum)</argsstring>
        <name>ResetEP</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Function to reset selected USB endpoint.</para><para>This function flushes the endpoint buffers and resets data toggle logic.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hUsb</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to the USB device stack. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">EPNum</parametername>
</parameternamelist>
<parameterdescription>
<para>Endpoint number as per USB specification. ie. An EP1_IN is represented by 0x81 number. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>Nothing. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hw.h" line="279" column="1" bodyfile="mw_usbd/mw_usbd_hw.h" bodystart="279" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_w___a_p_i___t_1a120a026986cd54f2ebac307bfe7298ed" prot="public" static="no" mutable="no">
        <type>void(*</type>
        <definition>void USBD_HW_API_T::SetStallEP</definition>
        <argsstring>)(USBD_HANDLE_T hUsb, uint32_t EPNum)</argsstring>
        <name>SetStallEP</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Function to STALL selected USB endpoint.</para><para>Generates STALL signaling for requested endpoint.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hUsb</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to the USB device stack. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">EPNum</parametername>
</parameternamelist>
<parameterdescription>
<para>Endpoint number as per USB specification. ie. An EP1_IN is represented by 0x81 number. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>Nothing. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hw.h" line="291" column="1" bodyfile="mw_usbd/mw_usbd_hw.h" bodystart="291" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_w___a_p_i___t_1a8f1c9298a6c41d175a26e6c7cfa644a8" prot="public" static="no" mutable="no">
        <type>void(*</type>
        <definition>void USBD_HW_API_T::ClrStallEP</definition>
        <argsstring>)(USBD_HANDLE_T hUsb, uint32_t EPNum)</argsstring>
        <name>ClrStallEP</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Function to clear STALL state for the requested endpoint.</para><para>This function clears STALL state for the requested endpoint.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hUsb</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to the USB device stack. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">EPNum</parametername>
</parameternamelist>
<parameterdescription>
<para>Endpoint number as per USB specification. ie. An EP1_IN is represented by 0x81 number. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>Nothing. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hw.h" line="303" column="1" bodyfile="mw_usbd/mw_usbd_hw.h" bodystart="303" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_w___a_p_i___t_1ad29373feb1c7b6a6be1eb82884a48478" prot="public" static="no" mutable="no">
        <type><ref refid="error_8h_1a905255056c349318139d94aa4523d516" kindref="member">ErrorCode_t</ref>(*</type>
        <definition>ErrorCode_t USBD_HW_API_T::SetTestMode</definition>
        <argsstring>)(USBD_HANDLE_T hUsb, uint8_t mode)</argsstring>
        <name>SetTestMode</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Function to set high speed USB device controller in requested test mode.</para><para>USB-IF requires the high speed device to be put in various test modes for electrical testing. This USB device stack calls this function whenever it receives USB_REQUEST_CLEAR_FEATURE request for USB_FEATURE_TEST_MODE. Users can put the device in test mode by directly calling this function. Returns ERR_USBD_INVALID_REQ when device controller is full-speed only.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hUsb</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to the USB device stack. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">mode</parametername>
</parameternamelist>
<parameterdescription>
<para>Test mode defined in USB 2.0 electrical testing specification. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>Returns <ref refid="error_8h_1a905255056c349318139d94aa4523d516" kindref="member">ErrorCode_t</ref> type to indicate success or error condition. </para></simplesect>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>LPC_OK(0)</parametername>
</parameternamelist>
<parameterdescription>
<para>- On success </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ERR_USBD_INVALID_REQ(0x00040001)</parametername>
</parameternamelist>
<parameterdescription>
<para>- Invalid test mode or Device controller is full-speed only. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hw.h" line="321" column="1" bodyfile="mw_usbd/mw_usbd_hw.h" bodystart="321" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_w___a_p_i___t_1a563550e0a99ee45b29c4aaa7a1f57e1d" prot="public" static="no" mutable="no">
        <type>uint32_t(*</type>
        <definition>uint32_t USBD_HW_API_T::ReadEP</definition>
        <argsstring>)(USBD_HANDLE_T hUsb, uint32_t EPNum, uint8_t *pData)</argsstring>
        <name>ReadEP</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Function to read data received on the requested endpoint.</para><para>This function is called by USB stack and the application layer to read the data received on the requested endpoint.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hUsb</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to the USB device stack. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">EPNum</parametername>
</parameternamelist>
<parameterdescription>
<para>Endpoint number as per USB specification. ie. An EP1_IN is represented by 0x81 number. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">pData</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to the data buffer where data is to be copied. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>Returns the number of bytes copied to the buffer. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hw.h" line="335" column="1" bodyfile="mw_usbd/mw_usbd_hw.h" bodystart="335" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_w___a_p_i___t_1a9430c42695d6d31f626dc72d69fb69ad" prot="public" static="no" mutable="no">
        <type>uint32_t(*</type>
        <definition>uint32_t USBD_HW_API_T::ReadReqEP</definition>
        <argsstring>)(USBD_HANDLE_T hUsb, uint32_t EPNum, uint8_t *pData, uint32_t len)</argsstring>
        <name>ReadReqEP</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Function to queue read request on the specified endpoint.</para><para>This function is called by USB stack and the application layer to queue a read request on the specified endpoint.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hUsb</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to the USB device stack. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">EPNum</parametername>
</parameternamelist>
<parameterdescription>
<para>Endpoint number as per USB specification. ie. An EP1_IN is represented by 0x81 number. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">pData</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to the data buffer where data is to be copied. This buffer address should be accessible by USB DMA master. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">len</parametername>
</parameternamelist>
<parameterdescription>
<para>Length of the buffer passed. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>Returns the length of the requested buffer. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hw.h" line="351" column="1" bodyfile="mw_usbd/mw_usbd_hw.h" bodystart="351" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_w___a_p_i___t_1a4cdd89766fb47d106014234d6fc96092" prot="public" static="no" mutable="no">
        <type>uint32_t(*</type>
        <definition>uint32_t USBD_HW_API_T::ReadSetupPkt</definition>
        <argsstring>)(USBD_HANDLE_T hUsb, uint32_t EPNum, uint32_t *pData)</argsstring>
        <name>ReadSetupPkt</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Function to read setup packet data received on the requested endpoint.</para><para>This function is called by USB stack and the application layer to read setup packet data received on the requested endpoint.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hUsb</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to the USB device stack. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">EPNum</parametername>
</parameternamelist>
<parameterdescription>
<para>Endpoint number as per USB specification. ie. An EP0_IN is represented by 0x80 number. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">pData</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to the data buffer where data is to be copied. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>Returns the number of bytes copied to the buffer. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hw.h" line="365" column="1" bodyfile="mw_usbd/mw_usbd_hw.h" bodystart="365" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_w___a_p_i___t_1aac0f044c14779dca4425403e2a50991c" prot="public" static="no" mutable="no">
        <type>uint32_t(*</type>
        <definition>uint32_t USBD_HW_API_T::WriteEP</definition>
        <argsstring>)(USBD_HANDLE_T hUsb, uint32_t EPNum, uint8_t *pData, uint32_t cnt)</argsstring>
        <name>WriteEP</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Function to write data to be sent on the requested endpoint.</para><para>This function is called by USB stack and the application layer to send data on the requested endpoint.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hUsb</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to the USB device stack. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">EPNum</parametername>
</parameternamelist>
<parameterdescription>
<para>Endpoint number as per USB specification. ie. An EP1_IN is represented by 0x81 number. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">pData</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to the data buffer from where data is to be copied. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">cnt</parametername>
</parameternamelist>
<parameterdescription>
<para>Number of bytes to write. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>Returns the number of bytes written. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hw.h" line="380" column="1" bodyfile="mw_usbd/mw_usbd_hw.h" bodystart="380" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_w___a_p_i___t_1aa4e8e27a0733b22a2ac797a462bd52be" prot="public" static="no" mutable="no">
        <type>void(*</type>
        <definition>void USBD_HW_API_T::WakeUp</definition>
        <argsstring>)(USBD_HANDLE_T hUsb)</argsstring>
        <name>WakeUp</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Function to generate resume signaling on bus for remote host wakeup.</para><para>This function is called by application layer to remotely wakeup host controller when system is in suspend state. Application should indicate this remote wakeup capability by setting USB_CONFIG_REMOTE_WAKEUP in bmAttributes of Configuration Descriptor. Also this routine will generate resume signalling only if host enables USB_FEATURE_REMOTE_WAKEUP by sending SET_FEATURE request before suspending the bus.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hUsb</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to the USB device stack. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>Nothing. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hw.h" line="395" column="1" bodyfile="mw_usbd/mw_usbd_hw.h" bodystart="395" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_w___a_p_i___t_1ac8ba5c7f74d1861430a067375b4af885" prot="public" static="no" mutable="no">
        <type><ref refid="error_8h_1a905255056c349318139d94aa4523d516" kindref="member">ErrorCode_t</ref>(*</type>
        <definition>void USBD_HW_API_T::EnableEvent</definition>
        <argsstring>)(USBD_HANDLE_T hUsb, uint32_t EPNum, uint32_t event_type, uint32_t enable)</argsstring>
        <name>EnableEvent</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Function to enable/disable selected USB event.</para><para>This function enables interrupts on selected endpoint.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hUsb</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to the USB device stack. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">EPNum</parametername>
</parameternamelist>
<parameterdescription>
<para>Endpoint number corresponding to the event. ie. An EP1_IN is represented by 0x81 number. For device events set this param to 0x0. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">event_type</parametername>
</parameternamelist>
<parameterdescription>
<para>Type of endpoint event. See <ref refid="group___u_s_b_d___h_w_1ga61dde6aa35d2912927ef1b185eedaa13" kindref="member">USBD_EVENT_T</ref> for more details. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">enable</parametername>
</parameternamelist>
<parameterdescription>
<para>1 - enable event, 0 - disable event. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>Returns <ref refid="error_8h_1a905255056c349318139d94aa4523d516" kindref="member">ErrorCode_t</ref> type to indicate success or error condition. </para></simplesect>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>LPC_OK(0)</parametername>
</parameternamelist>
<parameterdescription>
<para>- On success </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ERR_USBD_INVALID_REQ(0x00040001)</parametername>
</parameternamelist>
<parameterdescription>
<para>- Invalid event type. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hw.h" line="412" column="1" bodyfile="mw_usbd/mw_usbd_hw.h" bodystart="412" bodyend="-1"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>Hardware API functions structure.</para><para>This module exposes functions which interact directly with USB device controller hardware. </para>    </briefdescription>
    <detaileddescription>
    </detaileddescription>
    <location file="mw_usbd/mw_usbd_hw.h" line="75" column="1" bodyfile="mw_usbd/mw_usbd_hw.h" bodystart="75" bodyend="414"/>
    <listofallmembers>
      <member refid="struct_u_s_b_d___h_w___a_p_i___t_1a8f1c9298a6c41d175a26e6c7cfa644a8" prot="public" virt="non-virtual"><scope>USBD_HW_API_T</scope><name>ClrStallEP</name></member>
      <member refid="struct_u_s_b_d___h_w___a_p_i___t_1a05143cf85edf626e786ae3a24be105e2" prot="public" virt="non-virtual"><scope>USBD_HW_API_T</scope><name>ConfigEP</name></member>
      <member refid="struct_u_s_b_d___h_w___a_p_i___t_1a14ff45a427052dd46f20f01e00ec759c" prot="public" virt="non-virtual"><scope>USBD_HW_API_T</scope><name>Configure</name></member>
      <member refid="struct_u_s_b_d___h_w___a_p_i___t_1a94f866b8fdcb6c08b622badfa5703545" prot="public" virt="non-virtual"><scope>USBD_HW_API_T</scope><name>Connect</name></member>
      <member refid="struct_u_s_b_d___h_w___a_p_i___t_1ab95b4205de9657a5f5bba6aafd5c9b1b" prot="public" virt="non-virtual"><scope>USBD_HW_API_T</scope><name>DirCtrlEP</name></member>
      <member refid="struct_u_s_b_d___h_w___a_p_i___t_1a1f346a7f9024f17e4def61e15b5db1b6" prot="public" virt="non-virtual"><scope>USBD_HW_API_T</scope><name>DisableEP</name></member>
      <member refid="struct_u_s_b_d___h_w___a_p_i___t_1a2ed5cd50bbf5612c2ca6515482119f14" prot="public" virt="non-virtual"><scope>USBD_HW_API_T</scope><name>EnableEP</name></member>
      <member refid="struct_u_s_b_d___h_w___a_p_i___t_1ac8ba5c7f74d1861430a067375b4af885" prot="public" virt="non-virtual"><scope>USBD_HW_API_T</scope><name>EnableEvent</name></member>
      <member refid="struct_u_s_b_d___h_w___a_p_i___t_1ac4fda1a2255a941af2defbaf43ec6fc2" prot="public" virt="non-virtual"><scope>USBD_HW_API_T</scope><name>ForceFullSpeed</name></member>
      <member refid="struct_u_s_b_d___h_w___a_p_i___t_1a0139f290b9605de953245f12b5a0ff26" prot="public" virt="non-virtual"><scope>USBD_HW_API_T</scope><name>GetMemSize</name></member>
      <member refid="struct_u_s_b_d___h_w___a_p_i___t_1adf7b0f0dc37399c73b3cb03224a6715c" prot="public" virt="non-virtual"><scope>USBD_HW_API_T</scope><name>Init</name></member>
      <member refid="struct_u_s_b_d___h_w___a_p_i___t_1a00d85b9c68f1ec92c8092dafe524fe2b" prot="public" virt="non-virtual"><scope>USBD_HW_API_T</scope><name>ISR</name></member>
      <member refid="struct_u_s_b_d___h_w___a_p_i___t_1a563550e0a99ee45b29c4aaa7a1f57e1d" prot="public" virt="non-virtual"><scope>USBD_HW_API_T</scope><name>ReadEP</name></member>
      <member refid="struct_u_s_b_d___h_w___a_p_i___t_1a9430c42695d6d31f626dc72d69fb69ad" prot="public" virt="non-virtual"><scope>USBD_HW_API_T</scope><name>ReadReqEP</name></member>
      <member refid="struct_u_s_b_d___h_w___a_p_i___t_1a4cdd89766fb47d106014234d6fc96092" prot="public" virt="non-virtual"><scope>USBD_HW_API_T</scope><name>ReadSetupPkt</name></member>
      <member refid="struct_u_s_b_d___h_w___a_p_i___t_1aa8865aa13798d88076d1f60e4aa05ffd" prot="public" virt="non-virtual"><scope>USBD_HW_API_T</scope><name>Reset</name></member>
      <member refid="struct_u_s_b_d___h_w___a_p_i___t_1aaf39abc4c1d2bbf0de4800fcaee74f7e" prot="public" virt="non-virtual"><scope>USBD_HW_API_T</scope><name>ResetEP</name></member>
      <member refid="struct_u_s_b_d___h_w___a_p_i___t_1aac740eff46c33a2e55505d38b78bbc15" prot="public" virt="non-virtual"><scope>USBD_HW_API_T</scope><name>SetAddress</name></member>
      <member refid="struct_u_s_b_d___h_w___a_p_i___t_1a120a026986cd54f2ebac307bfe7298ed" prot="public" virt="non-virtual"><scope>USBD_HW_API_T</scope><name>SetStallEP</name></member>
      <member refid="struct_u_s_b_d___h_w___a_p_i___t_1ad29373feb1c7b6a6be1eb82884a48478" prot="public" virt="non-virtual"><scope>USBD_HW_API_T</scope><name>SetTestMode</name></member>
      <member refid="struct_u_s_b_d___h_w___a_p_i___t_1aa4e8e27a0733b22a2ac797a462bd52be" prot="public" virt="non-virtual"><scope>USBD_HW_API_T</scope><name>WakeUp</name></member>
      <member refid="struct_u_s_b_d___h_w___a_p_i___t_1a303ebdddeba4fbe77a9bf82d10829d06" prot="public" virt="non-virtual"><scope>USBD_HW_API_T</scope><name>WakeUpCfg</name></member>
      <member refid="struct_u_s_b_d___h_w___a_p_i___t_1aac0f044c14779dca4425403e2a50991c" prot="public" virt="non-virtual"><scope>USBD_HW_API_T</scope><name>WriteEP</name></member>
    </listofallmembers>
  </compounddef>
</doxygen>
