fix LPC812 PWM

Dependents:   IR_LED_Send

Fork of mbed-dev by mbed official

Revision:
113:b3775bf36a83
Parent:
0:9b334a45a8ff
--- a/targets/cmsis/TARGET_STM/TARGET_STM32L0/stm32l0xx_hal_pcd.h	Sun Apr 17 17:45:10 2016 +0100
+++ b/targets/cmsis/TARGET_STM/TARGET_STM32L0/stm32l0xx_hal_pcd.h	Tue Apr 19 11:15:15 2016 +0100
@@ -2,13 +2,13 @@
   ******************************************************************************
   * @file    stm32l0xx_hal_pcd.h
   * @author  MCD Application Team
-  * @version V1.2.0
-  * @date    06-February-2015
+  * @version V1.5.0
+  * @date    8-January-2016
   * @brief   Header file of PCD HAL module.
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
+  * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
   *
   * Redistribution and use in source and binary forms, with or without modification,
   * are permitted provided that the following conditions are met:
@@ -45,7 +45,7 @@
  extern "C" {
 #endif
 
-#if !defined (STM32L031xx) && !defined (STM32L041xx) && !defined (STM32L051xx) && !defined (STM32L061xx) && !defined (STM32L071xx) && !defined (STM32L081xx)
+#if !defined (STM32L011xx) && !defined (STM32L021xx) && !defined (STM32L031xx) && !defined (STM32L041xx) && !defined (STM32L051xx) && !defined (STM32L061xx) && !defined (STM32L071xx) && !defined (STM32L081xx)
 
 /* Includes ------------------------------------------------------------------*/
 #include "stm32l0xx_hal_def.h"  
@@ -53,10 +53,13 @@
   * @{
   */
 
-/** @addtogroup PCD
+/** @defgroup PCD PCD
   * @{
   */ 
 
+/** @defgroup PCD_Exported_Types PCD Exported Types
+  * @{
+  */
 /* Exported types ------------------------------------------------------------*/ 
 
    /** 
@@ -64,10 +67,11 @@
   */  
 typedef enum 
 {
-  PCD_READY    = 0x00,
-  PCD_ERROR    = 0x01,
-  PCD_BUSY     = 0x02,
-  PCD_TIMEOUT  = 0x03
+  HAL_PCD_STATE_RESET    = 0x00,
+  HAL_PCD_STATE_READY    = 0x01,
+  HAL_PCD_STATE_ERROR    = 0x02,
+  HAL_PCD_STATE_BUSY     = 0x03,
+  HAL_PCD_STATE_TIMEOUT  = 0x04
 } PCD_StateTypeDef;
 
 typedef enum
@@ -86,20 +90,7 @@
   PCD_EP_BUF1
 }PCD_EP_BUF_NUM;  
 
-#define PCD_ENDP0                             ((uint8_t)0)
-#define PCD_ENDP1                             ((uint8_t)1)
-#define PCD_ENDP2                             ((uint8_t)2)
-#define PCD_ENDP3                             ((uint8_t)3)
-#define PCD_ENDP4                             ((uint8_t)4)
-#define PCD_ENDP5                             ((uint8_t)5)
-#define PCD_ENDP6                             ((uint8_t)6)
-#define PCD_ENDP7                             ((uint8_t)7)
 
-/*  Endpoint Kind */
-#define PCD_SNG_BUF                                      0
-#define PCD_DBL_BUF                                      1
-
-#define IS_PCD_ALL_INSTANCE            IS_USB_ALL_INSTANCE
 /** 
   * @brief  PCD Initialization Structure definition  
   */
@@ -191,14 +182,44 @@
   void                    *pData;      /*!< Pointer to upper stack Handler     */    
   
 } PCD_HandleTypeDef;
- 
+
+/**
+  * @}
+  */
+
+
 #include "stm32l0xx_hal_pcd_ex.h"    
 /* Exported constants --------------------------------------------------------*/
-/** @defgroup PCD_Exported_Constants
+/** @defgroup PCD_Exported_Constants PCD Exported Constants
+  * @{
+  */
+
+/** @defgroup PCD_EndPoint PCD End Point
   * @{
   */
 
-/** @defgroup PCD_Speed
+
+#define PCD_ENDP0                             ((uint8_t)0)
+#define PCD_ENDP1                             ((uint8_t)1)
+#define PCD_ENDP2                             ((uint8_t)2)
+#define PCD_ENDP3                             ((uint8_t)3)
+#define PCD_ENDP4                             ((uint8_t)4)
+#define PCD_ENDP5                             ((uint8_t)5)
+#define PCD_ENDP6                             ((uint8_t)6)
+#define PCD_ENDP7                             ((uint8_t)7)
+
+/*  Endpoint Kind */
+#define PCD_SNG_BUF                                      0
+#define PCD_DBL_BUF                                      1
+
+#define IS_PCD_ALL_INSTANCE            IS_USB_ALL_INSTANCE
+
+/**
+  * @}
+  */
+
+
+/** @defgroup PCD_Speed PCD Speed
   * @{
   */
 #define PCD_SPEED_HIGH               0 /* Not Supported */
@@ -207,7 +228,7 @@
   * @}
   */
   
-  /** @defgroup PCD_USB_Core_PHY
+  /** @defgroup PCD_USB_Core_PHY PCD USB Core PHY
   * @{
   */
 #define PCD_PHY_EMBEDDED             2
@@ -215,7 +236,7 @@
   * @}
   */
 
-  /** @defgroup PCD_USB_EP0_MPS
+  /** @defgroup PCD_USB_EP0_MPS PCD USB EP0 MPS
   * @{
   */
 #define DEP0CTL_MPS_64                         0
@@ -231,7 +252,7 @@
   * @}
   */ 
   
-/** @defgroup PCD_USB_EP_Type
+/** @defgroup PCD_USB_EP_Type PCD USB EP Type
   * @{
   */
 #define PCD_EP_TYPE_CTRL                                 0
@@ -242,20 +263,17 @@
   * @}
   */
 
-/**
-  * @}
-  */ 
   
 /* Exported macros -----------------------------------------------------------*/
 
-/** @defgroup PCD_Interrupt_Clock
+/** @defgroup PCD_Interrupt_Clock PCD Interrupt
  *  @brief macros to handle interrupts and specific clock configurations
  * @{
  */
 #define __HAL_PCD_GET_FLAG(__HANDLE__, __INTERRUPT__)      ((((__HANDLE__)->Instance->ISTR) & (__INTERRUPT__)) == (__INTERRUPT__))
-#define __HAL_PCD_CLEAR_FLAG(__HANDLE__, __INTERRUPT__)    (((__HANDLE__)->Instance->ISTR) = ~(__INTERRUPT__))
+#define __HAL_PCD_CLEAR_FLAG(__HANDLE__, __INTERRUPT__)    (((__HANDLE__)->Instance->ISTR) &= (uint16_t) ~(__INTERRUPT__))
 
-#define  USB_WAKEUP_EXTI_LINE              ((uint32_t)0x00040000)  /*!< External interrupt line 18 Connected to the USB FS EXTI Line */
+#define  USB_WAKEUP_EXTI_LINE              (EXTI_IMR_IM18)  /*!< External interrupt line 18 Connected to the USB FS EXTI Line */
 
 #define __HAL_USB_WAKEUP_EXTI_ENABLE_IT()    EXTI->IMR |= USB_WAKEUP_EXTI_LINE
 #define __HAL_USB_WAKEUP_EXTI_DISABLE_IT()   EXTI->IMR &= ~(USB_WAKEUP_EXTI_LINE)
@@ -273,6 +291,7 @@
 
 /**
   * @brief  sets the type in the endpoint register(bits EP_TYPE[1:0])
+  * @param  USBx: USB device.
   * @param  bEpNum: Endpoint Number.
   * @param  wType: Endpoint Type.
   * @retval None
@@ -282,6 +301,7 @@
 
 /**
   * @brief  gets the type in the endpoint register(bits EP_TYPE[1:0])
+  * @param  USBx: USB device.
   * @param  bEpNum: Endpoint Number.
   * @retval Endpoint Type
   */
@@ -290,12 +310,13 @@
 
 /**
   * @brief free buffer used from the application realizing it to the line
-          toggles bit SW_BUF in the double buffered endpoint register
+  *         toggles bit SW_BUF in the double buffered endpoint register
+  * @param  USBx: USB device.
   * @param   bEpNum, bDir
   * @retval None
   */
 #define PCD_FreeUserBuffer(USBx, bEpNum, bDir)\
-{\
+do {\
   if (bDir == PCD_EP_DBUF_OUT)\
   { /* OUT double buffered endpoint */\
     PCD_TX_DTOG(USBx, bEpNum);\
@@ -304,31 +325,33 @@
   { /* IN double buffered endpoint */\
     PCD_RX_DTOG(USBx, bEpNum);\
   }\
-}
+} while(0)
 
 /**
   * @brief gets direction of the double buffered endpoint
+  * @param  USBx: USB device.
   * @param   bEpNum: Endpoint Number.
   * @retval EP_DBUF_OUT, EP_DBUF_IN,
   *         EP_DBUF_ERR if the endpoint counter not yet programmed.
   */
 #define PCD_GET_DB_DIR(USBx, bEpNum)\
-{\
+do {\
   if ((uint16_t)(*PCD_EP_RX_CNT(USBx, bEpNum) & 0xFC00) != 0)\
     return(PCD_EP_DBUF_OUT);\
   else if (((uint16_t)(*PCD_EP_TX_CNT(USBx, bEpNum)) & 0x03FF) != 0)\
     return(PCD_EP_DBUF_IN);\
   else\
     return(PCD_EP_DBUF_ERR);\
-}
+} while(0)
 
 /**
   * @brief  sets the status for tx transfer (bits STAT_TX[1:0]).
+  * @param  USBx: USB device.
   * @param  bEpNum: Endpoint Number.
   * @param  wState: new state
   * @retval None
   */
-#define PCD_SET_EP_TX_STATUS(USBx, bEpNum, wState) {\
+#define PCD_SET_EP_TX_STATUS(USBx, bEpNum, wState) do {\
    register uint16_t _wRegVal;       \
    \
     _wRegVal = PCD_GET_ENDPOINT(USBx, bEpNum) & USB_EPTX_DTOGMASK;\
@@ -339,15 +362,16 @@
    if((USB_EPTX_DTOG2 & wState)!= 0)      \
      _wRegVal ^= USB_EPTX_DTOG2;        \
    PCD_SET_ENDPOINT(USBx, bEpNum, (_wRegVal | USB_EP_CTR_RX|USB_EP_CTR_TX));    \
-  } /* PCD_SET_EP_TX_STATUS */
+  } while(0) /* PCD_SET_EP_TX_STATUS */
 
 /**
   * @brief  sets the status for rx transfer (bits STAT_TX[1:0])
+  * @param  USBx: USB device.
   * @param  bEpNum: Endpoint Number.
   * @param  wState: new state
   * @retval None
   */
-#define PCD_SET_EP_RX_STATUS(USBx, bEpNum,wState) {\
+#define PCD_SET_EP_RX_STATUS(USBx, bEpNum,wState) do {\
     register uint16_t _wRegVal;   \
     \
     _wRegVal = PCD_GET_ENDPOINT(USBx, bEpNum) & USB_EPRX_DTOGMASK;\
@@ -358,16 +382,17 @@
     if((USB_EPRX_DTOG2 & wState)!= 0) \
       _wRegVal ^= USB_EPRX_DTOG2;  \
     PCD_SET_ENDPOINT(USBx, bEpNum, (_wRegVal | USB_EP_CTR_RX|USB_EP_CTR_TX)); \
-  } /* PCD_SET_EP_RX_STATUS */
+  } while(0) /* PCD_SET_EP_RX_STATUS */
 
 /**
   * @brief  sets the status for rx & tx (bits STAT_TX[1:0] & STAT_RX[1:0])
+  * @param  USBx: USB device.
   * @param  bEpNum: Endpoint Number.
   * @param  wStaterx: new state.
   * @param  wStatetx: new state.
   * @retval None
   */
-#define PCD_SET_EP_TXRX_STATUS(USBx,bEpNum,wStaterx,wStatetx) {\
+#define PCD_SET_EP_TXRX_STATUS(USBx,bEpNum,wStaterx,wStatetx) do {\
     register uint32_t _wRegVal;   \
     \
     _wRegVal = PCD_GET_ENDPOINT(USBx, bEpNum) & (USB_EPRX_DTOGMASK |USB_EPTX_STAT) ;\
@@ -384,11 +409,12 @@
     if((USB_EPTX_DTOG2 & wStatetx)!= 0)      \
       _wRegVal ^= USB_EPTX_DTOG2;        \
     PCD_SET_ENDPOINT(USBx, bEpNum, _wRegVal | USB_EP_CTR_RX|USB_EP_CTR_TX);    \
-  } /* PCD_SET_EP_TXRX_STATUS */
+  } while(0) /* PCD_SET_EP_TXRX_STATUS */
 
 /**
   * @brief  gets the status for tx/rx transfer (bits STAT_TX[1:0]
   *         /STAT_RX[1:0])
+  * @param  USBx: USB device.
   * @param  bEpNum: Endpoint Number.
   * @retval status
   */
@@ -398,6 +424,7 @@
 
 /**
   * @brief  sets directly the VALID tx/rx-status into the endpoint register
+  * @param  USBx: USB device.
   * @param  bEpNum: Endpoint Number.
   * @retval None
   */
@@ -407,6 +434,7 @@
 
 /**
   * @brief  checks stall condition in an endpoint.
+  * @param  USBx: USB device.
   * @param  bEpNum: Endpoint Number.
   * @retval TRUE = endpoint in stall condition.
   */
@@ -417,6 +445,7 @@
 
 /**
   * @brief  set & clear EP_KIND bit.
+  * @param  USBx: USB device.
   * @param  bEpNum: Endpoint Number.
   * @retval None
   */
@@ -427,6 +456,7 @@
 
 /**
   * @brief  Sets/clears directly STATUS_OUT bit in the endpoint register.
+  * @param  USBx: USB device.
   * @param  bEpNum: Endpoint Number.
   * @retval None
   */
@@ -435,6 +465,7 @@
 
 /**
   * @brief  Sets/clears directly EP_KIND bit in the endpoint register.
+  * @param  USBx: USB device.
   * @param  bEpNum: Endpoint Number.
   * @retval None
   */
@@ -443,6 +474,7 @@
 
 /**
   * @brief  Clears bit CTR_RX / CTR_TX in the endpoint register.
+  * @param  USBx: USB device.
   * @param  bEpNum: Endpoint Number.
   * @retval None
   */
@@ -453,6 +485,7 @@
 
 /**
   * @brief  Toggles DTOG_RX / DTOG_TX bit in the endpoint register.
+  * @param  USBx: USB device.
   * @param  bEpNum: Endpoint Number.
   * @retval None
   */
@@ -463,6 +496,7 @@
 
 /**
   * @brief  Clears DTOG_RX / DTOG_TX bit in the endpoint register.
+  * @param  USBx: USB device.
   * @param  bEpNum: Endpoint Number.
   * @retval None
   */
@@ -473,6 +507,7 @@
       
 /**
   * @brief  Sets address in an endpoint register.
+  * @param  USBx: USB device.
   * @param  bEpNum: Endpoint Number.
   * @param  bAddr: Address.
   * @retval None
@@ -482,6 +517,7 @@
 
 /**
   * @brief  Gets address in an endpoint register.
+  * @param  USBx: USB device.
   * @param  bEpNum: Endpoint Number.
   * @retval None
   */
@@ -493,6 +529,7 @@
 
 /**
   * @brief  sets address of the tx/rx buffer.
+  * @param  USBx: USB device.
   * @param  bEpNum: Endpoint Number.
   * @param  wAddr: address to be set (must be word aligned).
   * @retval None
@@ -502,6 +539,7 @@
 
 /**
   * @brief  Gets address of the tx/rx buffer.
+  * @param  USBx: USB device.
   * @param  bEpNum: Endpoint Number.
   * @retval address of the buffer.
   */
@@ -510,48 +548,51 @@
 
 /**
   * @brief  Sets counter of rx buffer with no. of blocks.
-  * @param  bEpNum: Endpoint Number.
+  * @param  dwReg: Register.
   * @param  wCount: Counter.
+  * @param  wNBlocks: Nb of block
   * @retval None
   */
-#define PCD_CALC_BLK32(dwReg,wCount,wNBlocks) {\
+#define PCD_CALC_BLK32(dwReg,wCount,wNBlocks) do {\
     wNBlocks = wCount >> 5;\
     if((wCount & 0x1f) == 0)\
       wNBlocks--;\
     *pdwReg = (uint16_t)((wNBlocks << 10) | 0x8000);\
-  }/* PCD_CALC_BLK32 */
+  } while(0) /* PCD_CALC_BLK32 */
 
-#define PCD_CALC_BLK2(dwReg,wCount,wNBlocks) {\
+#define PCD_CALC_BLK2(dwReg,wCount,wNBlocks) do {\
     wNBlocks = wCount >> 1;\
     if((wCount & 0x1) != 0)\
       wNBlocks++;\
     *pdwReg = (uint16_t)(wNBlocks << 10);\
-  }/* PCD_CALC_BLK2 */
+  } while(0) /* PCD_CALC_BLK2 */
 
-#define PCD_SET_EP_CNT_RX_REG(dwReg,wCount)  {\
+#define PCD_SET_EP_CNT_RX_REG(dwReg,wCount)  do {\
     uint16_t wNBlocks;\
     if(wCount > 62){PCD_CALC_BLK32(dwReg,wCount,wNBlocks);}\
     else {PCD_CALC_BLK2(dwReg,wCount,wNBlocks);}\
-  }/* PCD_SET_EP_CNT_RX_REG */
+  } while(0) /* PCD_SET_EP_CNT_RX_REG */
 
-#define PCD_SET_EP_RX_DBUF0_CNT(USBx, bEpNum,wCount) {\
+#define PCD_SET_EP_RX_DBUF0_CNT(USBx, bEpNum,wCount) do {\
     uint16_t *pdwReg = PCD_EP_TX_CNT(USBx, bEpNum); \
     PCD_SET_EP_CNT_RX_REG(pdwReg, wCount);\
-  }
+  } while(0)
 /**
   * @brief  sets counter for the tx/rx buffer.
+  * @param  USBx: USB device.
   * @param  bEpNum: Endpoint Number.
   * @param  wCount: Counter value.
   * @retval None
   */
 #define PCD_SET_EP_TX_CNT(USBx, bEpNum,wCount) (*PCD_EP_TX_CNT(USBx, bEpNum) = wCount)
-#define PCD_SET_EP_RX_CNT(USBx, bEpNum,wCount) {\
+#define PCD_SET_EP_RX_CNT(USBx, bEpNum,wCount) do {\
     uint16_t *pdwReg = PCD_EP_RX_CNT(USBx, bEpNum); \
     PCD_SET_EP_CNT_RX_REG(pdwReg, wCount);\
-  }
+  } while(0)
 
 /**
   * @brief  gets counter of the tx buffer.
+  * @param  USBx: USB device.
   * @param  bEpNum: Endpoint Number.
   * @retval Counter value
   */
@@ -560,6 +601,7 @@
 
 /**
   * @brief  Sets buffer 0/1 address in a double buffer endpoint.
+  * @param  USBx: USB device.
   * @param  bEpNum: Endpoint Number.
   * @param  wBuf0Addr: buffer 0 address.
   * @retval Counter value
@@ -569,6 +611,7 @@
 
 /**
   * @brief  Sets addresses in a double buffer endpoint.
+  * @param  USBx: USB device.
   * @param  bEpNum: Endpoint Number.
   * @param  wBuf0Addr: buffer 0 address.
   * @param  wBuf1Addr = buffer 1 address.
@@ -581,6 +624,7 @@
 
 /**
   * @brief  Gets buffer 0/1 address of a double buffer endpoint.
+  * @param  USBx: USB device.
   * @param  bEpNum: Endpoint Number.
   * @retval None
   */
@@ -589,9 +633,9 @@
 
 /**
   * @brief  Gets buffer 0/1 address of a double buffer endpoint.
+  * @param  USBx: USB device.
   * @param  bEpNum: Endpoint Number.
-  *        bDir: endpoint dir  EP_DBUF_OUT = OUT 
-  *         EP_DBUF_IN  = IN 
+  * @param  bDir: endpoint dir  EP_DBUF_OUT = OUT and EP_DBUF_IN  = IN
   * @param  wCount: Counter value 
   * @retval None
   */
@@ -613,33 +657,51 @@
       *PCD_EP_RX_CNT(USBx, bEpNum) = (uint32_t)wCount; \
   } /* SetEPDblBuf1Count */
 
-#define PCD_SET_EP_DBUF_CNT(USBx, bEpNum, bDir, wCount) {\
+#define PCD_SET_EP_DBUF_CNT(USBx, bEpNum, bDir, wCount) do {\
     PCD_SET_EP_DBUF0_CNT(USBx, bEpNum, bDir, wCount); \
     PCD_SET_EP_DBUF1_CNT(USBx, bEpNum, bDir, wCount); \
-  } /* PCD_SET_EP_DBUF_CNT  */
+  } while(0) /* PCD_SET_EP_DBUF_CNT  */
 
 /**
   * @brief  Gets buffer 0/1 rx/tx counter for double buffering.
+  * @param  USBx: USB device.
   * @param  bEpNum: Endpoint Number.
   * @retval None
   */
 #define PCD_GET_EP_DBUF0_CNT(USBx, bEpNum) (PCD_GET_EP_TX_CNT(USBx, bEpNum))
 #define PCD_GET_EP_DBUF1_CNT(USBx, bEpNum) (PCD_GET_EP_RX_CNT(USBx, bEpNum))
 
+/**
+  * @}
+  */
 
 /**
   * @}
   */
 
 /* Exported functions --------------------------------------------------------*/
+/** @defgroup PCD_Exported_Functions PCD Exported Functions
+  * @{
+  */
 
+/** @defgroup PCD_Exported_Functions_Group1 Initialization and de-initialization functions
+ *  @brief    Initialization and Configuration functions
+ * @{
+ */
 /* Initialization/de-initialization functions  **********************************/
 HAL_StatusTypeDef HAL_PCD_Init(PCD_HandleTypeDef *hpcd);
 HAL_StatusTypeDef HAL_PCD_DeInit (PCD_HandleTypeDef *hpcd);
 void HAL_PCD_MspInit(PCD_HandleTypeDef *hpcd);
 void HAL_PCD_MspDeInit(PCD_HandleTypeDef *hpcd);
+/**
+  * @}
+  */
+/** @defgroup PCD_Exported_Functions_Group2 IO Data transfers functions
+ *  @brief   Data transfers functions
+ *  @{
+ */
 
-/* I/O operation functions  *****************************************************/
+ /* I/O operation functions  *****************************************************/
  /* Non-Blocking mode: Interrupt */
 HAL_StatusTypeDef HAL_PCD_Start(PCD_HandleTypeDef *hpcd);
 HAL_StatusTypeDef HAL_PCD_Stop(PCD_HandleTypeDef *hpcd);
@@ -656,9 +718,14 @@
 void HAL_PCD_ISOINIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum);
 void HAL_PCD_ConnectCallback(PCD_HandleTypeDef *hpcd);
 void HAL_PCD_DisconnectCallback(PCD_HandleTypeDef *hpcd);
-
+/**
+  * @}
+  */
 
-
+/** @defgroup PCD_Exported_Functions_Group3 Peripheral Control functions
+ *  @brief   management functions
+ *  @{
+ */
 /* Peripheral Control functions  ************************************************/
 HAL_StatusTypeDef HAL_PCD_DevConnect(PCD_HandleTypeDef *hpcd);
 HAL_StatusTypeDef HAL_PCD_DevDisconnect(PCD_HandleTypeDef *hpcd);
@@ -673,18 +740,46 @@
 HAL_StatusTypeDef HAL_PCD_EP_Flush(PCD_HandleTypeDef *hpcd, uint8_t ep_addr);
 HAL_StatusTypeDef HAL_PCD_ActivateRemoteWakeup(PCD_HandleTypeDef *hpcd);
 HAL_StatusTypeDef HAL_PCD_DeActivateRemoteWakeup(PCD_HandleTypeDef *hpcd);
+void PCD_WritePMA(USB_TypeDef  *USBx, uint8_t *pbUsrBuf, uint16_t wPMABufAddr, uint16_t wNBytes);
+void PCD_ReadPMA(USB_TypeDef  *USBx, uint8_t *pbUsrBuf, uint16_t wPMABufAddr, uint16_t wNBytes);
+/**
+  * @}
+  */
+/** @defgroup PCD_Exported_Functions_Group4 Peripheral State functions
+ *  @brief   Peripheral State functions
+ *  @{
+ */
+
 /* Peripheral State functions  **************************************************/
 PCD_StateTypeDef HAL_PCD_GetState(PCD_HandleTypeDef *hpcd);
 
 /**
   * @}
+  */
+
+/**
+  * @}
+  */
+
+/* Define the private group ***********************************/
+/**************************************************************/
+/** @defgroup PCD_Private PCD Private
+  * @{
+  */
+/**
+  * @}
+  */
+/**************************************************************/
+
+/**
+  * @}
   */ 
 
 /**
   * @}
   */ 
 
-#endif /* #if !defined (STM32L031xx) && !defined (STM32L041xx) && !defined (STM32L051xx) && !defined (STM32L061xx) && !defined (STM32L071xx) && !defined (STM32L081xx) */
+#endif /* #if !defined (STM32L011xx) && !defined (STM32L021xx) && !defined (STM32L031xx) && !defined (STM32L041xx) && !defined (STM32L051xx) && !defined (STM32L061xx) && !defined (STM32L071xx) && !defined (STM32L081xx) */
 
 #ifdef __cplusplus
 }