commit
f816e7a69b
@ -57,7 +57,7 @@
|
||||
* Private Functions
|
||||
****************************************************************************/
|
||||
|
||||
static struct stm32l4_freerun_s *g_freerun;
|
||||
FAR static struct stm32l4_freerun_s *g_freerun;
|
||||
|
||||
/****************************************************************************
|
||||
* Private Functions
|
||||
@ -81,9 +81,9 @@ static struct stm32l4_freerun_s *g_freerun;
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
static int stm32l4_freerun_handler(int irq, void *context)
|
||||
static int stm32l4_freerun_handler(int irq, FAR void *context)
|
||||
{
|
||||
struct stm32l4_freerun_s *freerun = g_freerun;
|
||||
FAR struct stm32l4_freerun_s *freerun = g_freerun;
|
||||
|
||||
DEBUGASSERT(freerun != NULL && freerun->overflow < UINT32_MAX);
|
||||
freerun->overflow++;
|
||||
@ -115,8 +115,8 @@ static int stm32l4_freerun_handler(int irq, void *context)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int stm32l4_freerun_initialize(struct stm32l4_freerun_s *freerun, int chan,
|
||||
uint16_t resolution)
|
||||
int stm32l4_freerun_initialize(FAR struct stm32l4_freerun_s *freerun, int chan,
|
||||
uint16_t resolution)
|
||||
{
|
||||
uint32_t frequency;
|
||||
|
||||
@ -183,8 +183,8 @@ int stm32l4_freerun_initialize(struct stm32l4_freerun_s *freerun, int chan,
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int stm32l4_freerun_counter(struct stm32l4_freerun_s *freerun,
|
||||
struct timespec *ts)
|
||||
int stm32l4_freerun_counter(FAR struct stm32l4_freerun_s *freerun,
|
||||
FAR struct timespec *ts)
|
||||
{
|
||||
uint64_t usec;
|
||||
uint32_t counter;
|
||||
@ -275,7 +275,7 @@ int stm32l4_freerun_counter(struct stm32l4_freerun_s *freerun,
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int stm32l4_freerun_uninitialize(struct stm32l4_freerun_s *freerun)
|
||||
int stm32l4_freerun_uninitialize(FAR struct stm32l4_freerun_s *freerun)
|
||||
{
|
||||
DEBUGASSERT(freerun && freerun->tch);
|
||||
|
||||
|
@ -83,11 +83,11 @@ static struct stm32l4_oneshot_s *g_oneshot;
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
static int stm32l4_oneshot_handler(int irq, void *context)
|
||||
static int stm32l4_oneshot_handler(int irq, FAR void *context)
|
||||
{
|
||||
struct stm32l4_oneshot_s *oneshot = g_oneshot;
|
||||
FAR struct stm32l4_oneshot_s *oneshot = g_oneshot;
|
||||
oneshot_handler_t oneshot_handler;
|
||||
void *oneshot_arg;
|
||||
FAR void *oneshot_arg;
|
||||
|
||||
tmrinfo("Expired...\n");
|
||||
DEBUGASSERT(oneshot != NULL && oneshot->handler);
|
||||
@ -138,8 +138,8 @@ static int stm32l4_oneshot_handler(int irq, void *context)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int stm32l4_oneshot_initialize(struct stm32l4_oneshot_s *oneshot, int chan,
|
||||
uint16_t resolution)
|
||||
int stm32l4_oneshot_initialize(FAR struct stm32l4_oneshot_s *oneshot, int chan,
|
||||
uint16_t resolution)
|
||||
{
|
||||
uint32_t frequency;
|
||||
|
||||
@ -181,7 +181,8 @@ int stm32l4_oneshot_initialize(struct stm32l4_oneshot_s *oneshot, int chan,
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int stm32l4_oneshot_max_delay(struct stm32l4_oneshot_s *oneshot, uint64_t *usec)
|
||||
int stm32l4_oneshot_max_delay(FAR struct stm32l4_oneshot_s *oneshot,
|
||||
FAR uint64_t *usec)
|
||||
{
|
||||
DEBUGASSERT(oneshot != NULL && usec != NULL);
|
||||
|
||||
@ -210,9 +211,9 @@ int stm32l4_oneshot_max_delay(struct stm32l4_oneshot_s *oneshot, uint64_t *usec)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int stm32l4_oneshot_start(struct stm32l4_oneshot_s *oneshot,
|
||||
oneshot_handler_t handler, void *arg,
|
||||
const struct timespec *ts)
|
||||
int stm32l4_oneshot_start(FAR struct stm32l4_oneshot_s *oneshot,
|
||||
oneshot_handler_t handler, FAR void *arg,
|
||||
FAR const struct timespec *ts)
|
||||
{
|
||||
uint64_t usec;
|
||||
uint64_t period;
|
||||
@ -307,8 +308,8 @@ int stm32l4_oneshot_start(struct stm32l4_oneshot_s *oneshot,
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int stm32l4_oneshot_cancel(struct stm32l4_oneshot_s *oneshot,
|
||||
struct timespec *ts)
|
||||
int stm32l4_oneshot_cancel(FAR struct stm32l4_oneshot_s *oneshot,
|
||||
FAR struct timespec *ts)
|
||||
{
|
||||
irqstate_t flags;
|
||||
uint64_t usec;
|
||||
|
@ -295,7 +295,7 @@ static void stm32l4_putreg(uint32_t addr, uint32_t value);
|
||||
#endif
|
||||
|
||||
static inline void stm32l4_modifyreg(uint32_t addr, uint32_t clrbits,
|
||||
uint32_t setbits);
|
||||
uint32_t setbits);
|
||||
|
||||
#ifdef CONFIG_STM32L4_USBHOST_PKTDUMP
|
||||
# define stm32l4_pktdump(m,b,n) lib_dumpbuffer(m,b,n)
|
||||
@ -305,12 +305,12 @@ static inline void stm32l4_modifyreg(uint32_t addr, uint32_t clrbits,
|
||||
|
||||
/* Semaphores ******************************************************************/
|
||||
|
||||
static void stm32l4_takesem(sem_t *sem);
|
||||
static void stm32l4_takesem(FAR sem_t *sem);
|
||||
#define stm32l4_givesem(s) sem_post(s);
|
||||
|
||||
/* Byte stream access helper functions *****************************************/
|
||||
|
||||
static inline uint16_t stm32l4_getle16(const uint8_t *val);
|
||||
static inline uint16_t stm32l4_getle16(FAR const uint8_t *val);
|
||||
|
||||
/* Channel management **********************************************************/
|
||||
|
||||
@ -319,27 +319,27 @@ static inline void stm32l4_chan_free(FAR struct stm32l4_usbhost_s *priv, int chi
|
||||
static inline void stm32l4_chan_freeall(FAR struct stm32l4_usbhost_s *priv);
|
||||
static void stm32l4_chan_configure(FAR struct stm32l4_usbhost_s *priv, int chidx);
|
||||
static void stm32l4_chan_halt(FAR struct stm32l4_usbhost_s *priv, int chidx,
|
||||
enum stm32l4_chreason_e chreason);
|
||||
enum stm32l4_chreason_e chreason);
|
||||
static int stm32l4_chan_waitsetup(FAR struct stm32l4_usbhost_s *priv,
|
||||
FAR struct stm32l4_chan_s *chan);
|
||||
FAR struct stm32l4_chan_s *chan);
|
||||
#ifdef CONFIG_USBHOST_ASYNCH
|
||||
static int stm32l4_chan_asynchsetup(FAR struct stm32l4_usbhost_s *priv,
|
||||
FAR struct stm32l4_chan_s *chan,
|
||||
usbhost_asynch_t callback, FAR void *arg);
|
||||
FAR struct stm32l4_chan_s *chan,
|
||||
usbhost_asynch_t callback, FAR void *arg);
|
||||
#endif
|
||||
static int stm32l4_chan_wait(FAR struct stm32l4_usbhost_s *priv,
|
||||
FAR struct stm32l4_chan_s *chan);
|
||||
FAR struct stm32l4_chan_s *chan);
|
||||
static void stm32l4_chan_wakeup(FAR struct stm32l4_usbhost_s *priv,
|
||||
FAR struct stm32l4_chan_s *chan);
|
||||
FAR struct stm32l4_chan_s *chan);
|
||||
static int stm32l4_ctrlchan_alloc(FAR struct stm32l4_usbhost_s *priv,
|
||||
uint8_t epno, uint8_t funcaddr, uint8_t speed,
|
||||
FAR struct stm32l4_ctrlinfo_s *ctrlep);
|
||||
uint8_t epno, uint8_t funcaddr, uint8_t speed,
|
||||
FAR struct stm32l4_ctrlinfo_s *ctrlep);
|
||||
static int stm32l4_ctrlep_alloc(FAR struct stm32l4_usbhost_s *priv,
|
||||
FAR const struct usbhost_epdesc_s *epdesc,
|
||||
FAR usbhost_ep_t *ep);
|
||||
FAR const struct usbhost_epdesc_s *epdesc,
|
||||
FAR usbhost_ep_t *ep);
|
||||
static int stm32l4_xfrep_alloc(FAR struct stm32l4_usbhost_s *priv,
|
||||
FAR const struct usbhost_epdesc_s *epdesc,
|
||||
FAR usbhost_ep_t *ep);
|
||||
FAR const struct usbhost_epdesc_s *epdesc,
|
||||
FAR usbhost_ep_t *ep);
|
||||
|
||||
/* Control/data transfer logic *************************************************/
|
||||
|
||||
@ -348,44 +348,44 @@ static void stm32l4_transfer_start(FAR struct stm32l4_usbhost_s *priv, int chidx
|
||||
static inline uint16_t stm32l4_getframe(void);
|
||||
#endif
|
||||
static int stm32l4_ctrl_sendsetup(FAR struct stm32l4_usbhost_s *priv,
|
||||
FAR struct stm32l4_ctrlinfo_s *ep0,
|
||||
FAR const struct usb_ctrlreq_s *req);
|
||||
FAR struct stm32l4_ctrlinfo_s *ep0,
|
||||
FAR const struct usb_ctrlreq_s *req);
|
||||
static int stm32l4_ctrl_senddata(FAR struct stm32l4_usbhost_s *priv,
|
||||
FAR struct stm32l4_ctrlinfo_s *ep0,
|
||||
FAR uint8_t *buffer, unsigned int buflen);
|
||||
FAR struct stm32l4_ctrlinfo_s *ep0,
|
||||
FAR uint8_t *buffer, unsigned int buflen);
|
||||
static int stm32l4_ctrl_recvdata(FAR struct stm32l4_usbhost_s *priv,
|
||||
FAR struct stm32l4_ctrlinfo_s *ep0,
|
||||
FAR uint8_t *buffer, unsigned int buflen);
|
||||
FAR struct stm32l4_ctrlinfo_s *ep0,
|
||||
FAR uint8_t *buffer, unsigned int buflen);
|
||||
static int stm32l4_in_setup(FAR struct stm32l4_usbhost_s *priv, int chidx);
|
||||
static ssize_t stm32l4_in_transfer(FAR struct stm32l4_usbhost_s *priv, int chidx,
|
||||
FAR uint8_t *buffer, size_t buflen);
|
||||
FAR uint8_t *buffer, size_t buflen);
|
||||
#ifdef CONFIG_USBHOST_ASYNCH
|
||||
static void stm32l4_in_next(FAR struct stm32l4_usbhost_s *priv,
|
||||
FAR struct stm32l4_chan_s *chan);
|
||||
FAR struct stm32l4_chan_s *chan);
|
||||
static int stm32l4_in_asynch(FAR struct stm32l4_usbhost_s *priv, int chidx,
|
||||
FAR uint8_t *buffer, size_t buflen,
|
||||
usbhost_asynch_t callback, FAR void *arg);
|
||||
FAR uint8_t *buffer, size_t buflen,
|
||||
usbhost_asynch_t callback, FAR void *arg);
|
||||
#endif
|
||||
static int stm32l4_out_setup(FAR struct stm32l4_usbhost_s *priv, int chidx);
|
||||
static ssize_t stm32l4_out_transfer(FAR struct stm32l4_usbhost_s *priv, int chidx,
|
||||
FAR uint8_t *buffer, size_t buflen);
|
||||
FAR uint8_t *buffer, size_t buflen);
|
||||
#ifdef CONFIG_USBHOST_ASYNCH
|
||||
static void stm32l4_out_next(FAR struct stm32l4_usbhost_s *priv,
|
||||
FAR struct stm32l4_chan_s *chan);
|
||||
FAR struct stm32l4_chan_s *chan);
|
||||
static int stm32l4_out_asynch(FAR struct stm32l4_usbhost_s *priv, int chidx,
|
||||
FAR uint8_t *buffer, size_t buflen,
|
||||
usbhost_asynch_t callback, FAR void *arg);
|
||||
FAR uint8_t *buffer, size_t buflen,
|
||||
usbhost_asynch_t callback, FAR void *arg);
|
||||
#endif
|
||||
|
||||
/* Interrupt handling **********************************************************/
|
||||
/* Lower level interrupt handlers */
|
||||
|
||||
static void stm32l4_gint_wrpacket(FAR struct stm32l4_usbhost_s *priv,
|
||||
FAR uint8_t *buffer, int chidx, int buflen);
|
||||
FAR uint8_t *buffer, int chidx, int buflen);
|
||||
static inline void stm32l4_gint_hcinisr(FAR struct stm32l4_usbhost_s *priv,
|
||||
int chidx);
|
||||
int chidx);
|
||||
static inline void stm32l4_gint_hcoutisr(FAR struct stm32l4_usbhost_s *priv,
|
||||
int chidx);
|
||||
int chidx);
|
||||
static void stm32l4_gint_connected(FAR struct stm32l4_usbhost_s *priv);
|
||||
static void stm32l4_gint_disconnected(FAR struct stm32l4_usbhost_s *priv);
|
||||
|
||||
@ -416,47 +416,47 @@ static void stm32l4_txfe_enable(FAR struct stm32l4_usbhost_s *priv, int chidx);
|
||||
/* USB host controller operations **********************************************/
|
||||
|
||||
static int stm32l4_wait(FAR struct usbhost_connection_s *conn,
|
||||
FAR struct usbhost_hubport_s **hport);
|
||||
FAR struct usbhost_hubport_s **hport);
|
||||
static int stm32l4_rh_enumerate(FAR struct stm32l4_usbhost_s *priv,
|
||||
FAR struct usbhost_connection_s *conn,
|
||||
FAR struct usbhost_hubport_s *hport);
|
||||
FAR struct usbhost_connection_s *conn,
|
||||
FAR struct usbhost_hubport_s *hport);
|
||||
static int stm32l4_enumerate(FAR struct usbhost_connection_s *conn,
|
||||
FAR struct usbhost_hubport_s *hport);
|
||||
FAR struct usbhost_hubport_s *hport);
|
||||
|
||||
static int stm32l4_ep0configure(FAR struct usbhost_driver_s *drvr,
|
||||
usbhost_ep_t ep0, uint8_t funcaddr, uint8_t speed,
|
||||
uint16_t maxpacketsize);
|
||||
usbhost_ep_t ep0, uint8_t funcaddr, uint8_t speed,
|
||||
uint16_t maxpacketsize);
|
||||
static int stm32l4_epalloc(FAR struct usbhost_driver_s *drvr,
|
||||
FAR const FAR struct usbhost_epdesc_s *epdesc,
|
||||
FAR usbhost_ep_t *ep);
|
||||
FAR const FAR struct usbhost_epdesc_s *epdesc,
|
||||
FAR usbhost_ep_t *ep);
|
||||
static int stm32l4_epfree(FAR struct usbhost_driver_s *drvr, usbhost_ep_t ep);
|
||||
static int stm32l4_alloc(FAR struct usbhost_driver_s *drvr,
|
||||
FAR uint8_t **buffer, FAR size_t *maxlen);
|
||||
FAR uint8_t **buffer, FAR size_t *maxlen);
|
||||
static int stm32l4_free(FAR struct usbhost_driver_s *drvr, FAR uint8_t *buffer);
|
||||
static int stm32l4_ioalloc(FAR struct usbhost_driver_s *drvr,
|
||||
FAR uint8_t **buffer, size_t buflen);
|
||||
FAR uint8_t **buffer, size_t buflen);
|
||||
static int stm32l4_iofree(FAR struct usbhost_driver_s *drvr, FAR uint8_t *buffer);
|
||||
static int stm32l4_ctrlin(FAR struct usbhost_driver_s *drvr, usbhost_ep_t ep0,
|
||||
const struct usb_ctrlreq_s *req,
|
||||
FAR uint8_t *buffer);
|
||||
FAR const struct usb_ctrlreq_s *req,
|
||||
FAR uint8_t *buffer);
|
||||
static int stm32l4_ctrlout(FAR struct usbhost_driver_s *drvr, usbhost_ep_t ep0,
|
||||
FAR const struct usb_ctrlreq_s *req,
|
||||
FAR const uint8_t *buffer);
|
||||
FAR const struct usb_ctrlreq_s *req,
|
||||
FAR const uint8_t *buffer);
|
||||
static ssize_t stm32l4_transfer(FAR struct usbhost_driver_s *drvr, usbhost_ep_t ep,
|
||||
FAR uint8_t *buffer, size_t buflen);
|
||||
FAR uint8_t *buffer, size_t buflen);
|
||||
#ifdef CONFIG_USBHOST_ASYNCH
|
||||
static int stm32l4_asynch(FAR struct usbhost_driver_s *drvr, usbhost_ep_t ep,
|
||||
FAR uint8_t *buffer, size_t buflen,
|
||||
usbhost_asynch_t callback, FAR void *arg);
|
||||
FAR uint8_t *buffer, size_t buflen,
|
||||
usbhost_asynch_t callback, FAR void *arg);
|
||||
#endif
|
||||
static int stm32l4_cancel(FAR struct usbhost_driver_s *drvr, usbhost_ep_t ep);
|
||||
#ifdef CONFIG_USBHOST_HUB
|
||||
static int stm32l4_connect(FAR struct usbhost_driver_s *drvr,
|
||||
FAR struct usbhost_hubport_s *hport,
|
||||
bool connected);
|
||||
FAR struct usbhost_hubport_s *hport,
|
||||
bool connected);
|
||||
#endif
|
||||
static void stm32l4_disconnect(FAR struct usbhost_driver_s *drvr,
|
||||
FAR struct usbhost_hubport_s *hport);
|
||||
FAR struct usbhost_hubport_s *hport);
|
||||
|
||||
/* Initialization **************************************************************/
|
||||
|
||||
@ -626,7 +626,8 @@ static void stm32l4_putreg(uint32_t addr, uint32_t val)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
static inline void stm32l4_modifyreg(uint32_t addr, uint32_t clrbits, uint32_t setbits)
|
||||
static inline void stm32l4_modifyreg(uint32_t addr, uint32_t clrbits,
|
||||
uint32_t setbits)
|
||||
{
|
||||
stm32l4_putreg(addr, (((stm32l4_getreg(addr)) & ~clrbits) | setbits));
|
||||
}
|
||||
@ -640,7 +641,7 @@ static inline void stm32l4_modifyreg(uint32_t addr, uint32_t clrbits, uint32_t s
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
static void stm32l4_takesem(sem_t *sem)
|
||||
static void stm32l4_takesem(FAR sem_t *sem)
|
||||
{
|
||||
/* Take the semaphore (perhaps waiting) */
|
||||
|
||||
@ -662,7 +663,7 @@ static void stm32l4_takesem(sem_t *sem)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
static inline uint16_t stm32l4_getle16(const uint8_t *val)
|
||||
static inline uint16_t stm32l4_getle16(FAR const uint8_t *val)
|
||||
{
|
||||
return (uint16_t)val[1] << 8 | (uint16_t)val[0];
|
||||
}
|
||||
@ -909,7 +910,7 @@ static void stm32l4_chan_configure(FAR struct stm32l4_usbhost_s *priv, int chidx
|
||||
****************************************************************************/
|
||||
|
||||
static void stm32l4_chan_halt(FAR struct stm32l4_usbhost_s *priv, int chidx,
|
||||
enum stm32l4_chreason_e chreason)
|
||||
enum stm32l4_chreason_e chreason)
|
||||
{
|
||||
uint32_t hcchar;
|
||||
uint32_t intmsk;
|
||||
@ -999,7 +1000,7 @@ static void stm32l4_chan_halt(FAR struct stm32l4_usbhost_s *priv, int chidx,
|
||||
****************************************************************************/
|
||||
|
||||
static int stm32l4_chan_waitsetup(FAR struct stm32l4_usbhost_s *priv,
|
||||
FAR struct stm32l4_chan_s *chan)
|
||||
FAR struct stm32l4_chan_s *chan)
|
||||
{
|
||||
irqstate_t flags = enter_critical_section();
|
||||
int ret = -ENODEV;
|
||||
@ -1040,8 +1041,8 @@ static int stm32l4_chan_waitsetup(FAR struct stm32l4_usbhost_s *priv,
|
||||
|
||||
#ifdef CONFIG_USBHOST_ASYNCH
|
||||
static int stm32l4_chan_asynchsetup(FAR struct stm32l4_usbhost_s *priv,
|
||||
FAR struct stm32l4_chan_s *chan,
|
||||
usbhost_asynch_t callback, FAR void *arg)
|
||||
FAR struct stm32l4_chan_s *chan,
|
||||
usbhost_asynch_t callback, FAR void *arg)
|
||||
{
|
||||
irqstate_t flags = enter_critical_section();
|
||||
int ret = -ENODEV;
|
||||
@ -1077,7 +1078,7 @@ static int stm32l4_chan_asynchsetup(FAR struct stm32l4_usbhost_s *priv,
|
||||
****************************************************************************/
|
||||
|
||||
static int stm32l4_chan_wait(FAR struct stm32l4_usbhost_s *priv,
|
||||
FAR struct stm32l4_chan_s *chan)
|
||||
FAR struct stm32l4_chan_s *chan)
|
||||
{
|
||||
irqstate_t flags;
|
||||
int ret;
|
||||
@ -1134,7 +1135,7 @@ static int stm32l4_chan_wait(FAR struct stm32l4_usbhost_s *priv,
|
||||
****************************************************************************/
|
||||
|
||||
static void stm32l4_chan_wakeup(FAR struct stm32l4_usbhost_s *priv,
|
||||
FAR struct stm32l4_chan_s *chan)
|
||||
FAR struct stm32l4_chan_s *chan)
|
||||
{
|
||||
/* Is the transfer complete? */
|
||||
|
||||
@ -1190,8 +1191,8 @@ static void stm32l4_chan_wakeup(FAR struct stm32l4_usbhost_s *priv,
|
||||
****************************************************************************/
|
||||
|
||||
static int stm32l4_ctrlchan_alloc(FAR struct stm32l4_usbhost_s *priv,
|
||||
uint8_t epno, uint8_t funcaddr, uint8_t speed,
|
||||
FAR struct stm32l4_ctrlinfo_s *ctrlep)
|
||||
uint8_t epno, uint8_t funcaddr, uint8_t speed,
|
||||
FAR struct stm32l4_ctrlinfo_s *ctrlep)
|
||||
{
|
||||
FAR struct stm32l4_chan_s *chan;
|
||||
int inndx;
|
||||
@ -1266,8 +1267,8 @@ static int stm32l4_ctrlchan_alloc(FAR struct stm32l4_usbhost_s *priv,
|
||||
****************************************************************************/
|
||||
|
||||
static int stm32l4_ctrlep_alloc(FAR struct stm32l4_usbhost_s *priv,
|
||||
FAR const struct usbhost_epdesc_s *epdesc,
|
||||
FAR usbhost_ep_t *ep)
|
||||
FAR const struct usbhost_epdesc_s *epdesc,
|
||||
FAR usbhost_ep_t *ep)
|
||||
{
|
||||
FAR struct usbhost_hubport_s *hport;
|
||||
FAR struct stm32l4_ctrlinfo_s *ctrlep;
|
||||
@ -1328,8 +1329,8 @@ static int stm32l4_ctrlep_alloc(FAR struct stm32l4_usbhost_s *priv,
|
||||
************************************************************************************/
|
||||
|
||||
static int stm32l4_xfrep_alloc(FAR struct stm32l4_usbhost_s *priv,
|
||||
FAR const struct usbhost_epdesc_s *epdesc,
|
||||
FAR usbhost_ep_t *ep)
|
||||
FAR const struct usbhost_epdesc_s *epdesc,
|
||||
FAR usbhost_ep_t *ep)
|
||||
{
|
||||
struct usbhost_hubport_s *hport;
|
||||
FAR struct stm32l4_chan_s *chan;
|
||||
@ -1385,7 +1386,8 @@ static int stm32l4_xfrep_alloc(FAR struct stm32l4_usbhost_s *priv,
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
static void stm32l4_transfer_start(FAR struct stm32l4_usbhost_s *priv, int chidx)
|
||||
static void stm32l4_transfer_start(FAR struct stm32l4_usbhost_s *priv,
|
||||
int chidx)
|
||||
{
|
||||
FAR struct stm32l4_chan_s *chan;
|
||||
uint32_t regval;
|
||||
@ -1593,8 +1595,8 @@ static inline uint16_t stm32l4_getframe(void)
|
||||
****************************************************************************/
|
||||
|
||||
static int stm32l4_ctrl_sendsetup(FAR struct stm32l4_usbhost_s *priv,
|
||||
FAR struct stm32l4_ctrlinfo_s *ep0,
|
||||
FAR const struct usb_ctrlreq_s *req)
|
||||
FAR struct stm32l4_ctrlinfo_s *ep0,
|
||||
FAR const struct usb_ctrlreq_s *req)
|
||||
{
|
||||
FAR struct stm32l4_chan_s *chan;
|
||||
systime_t start;
|
||||
@ -1670,8 +1672,8 @@ static int stm32l4_ctrl_sendsetup(FAR struct stm32l4_usbhost_s *priv,
|
||||
****************************************************************************/
|
||||
|
||||
static int stm32l4_ctrl_senddata(FAR struct stm32l4_usbhost_s *priv,
|
||||
FAR struct stm32l4_ctrlinfo_s *ep0,
|
||||
FAR uint8_t *buffer, unsigned int buflen)
|
||||
FAR struct stm32l4_ctrlinfo_s *ep0,
|
||||
FAR uint8_t *buffer, unsigned int buflen)
|
||||
{
|
||||
FAR struct stm32l4_chan_s *chan = &priv->chan[ep0->outndx];
|
||||
int ret;
|
||||
@ -1723,8 +1725,8 @@ static int stm32l4_ctrl_senddata(FAR struct stm32l4_usbhost_s *priv,
|
||||
****************************************************************************/
|
||||
|
||||
static int stm32l4_ctrl_recvdata(FAR struct stm32l4_usbhost_s *priv,
|
||||
FAR struct stm32l4_ctrlinfo_s *ep0,
|
||||
FAR uint8_t *buffer, unsigned int buflen)
|
||||
FAR struct stm32l4_ctrlinfo_s *ep0,
|
||||
FAR uint8_t *buffer, unsigned int buflen)
|
||||
{
|
||||
FAR struct stm32l4_chan_s *chan = &priv->chan[ep0->inndx];
|
||||
int ret;
|
||||
@ -1823,8 +1825,9 @@ static int stm32l4_in_setup(FAR struct stm32l4_usbhost_s *priv, int chidx)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
static ssize_t stm32l4_in_transfer(FAR struct stm32l4_usbhost_s *priv, int chidx,
|
||||
FAR uint8_t *buffer, size_t buflen)
|
||||
static ssize_t stm32l4_in_transfer(FAR struct stm32l4_usbhost_s *priv,
|
||||
int chidx, FAR uint8_t *buffer,
|
||||
size_t buflen)
|
||||
{
|
||||
FAR struct stm32l4_chan_s *chan;
|
||||
systime_t start;
|
||||
@ -1910,7 +1913,7 @@ static ssize_t stm32l4_in_transfer(FAR struct stm32l4_usbhost_s *priv, int chidx
|
||||
|
||||
#ifdef CONFIG_USBHOST_ASYNCH
|
||||
static void stm32l4_in_next(FAR struct stm32l4_usbhost_s *priv,
|
||||
FAR struct stm32l4_chan_s *chan)
|
||||
FAR struct stm32l4_chan_s *chan)
|
||||
{
|
||||
usbhost_asynch_t callback;
|
||||
FAR void *arg;
|
||||
@ -1975,8 +1978,8 @@ static void stm32l4_in_next(FAR struct stm32l4_usbhost_s *priv,
|
||||
|
||||
#ifdef CONFIG_USBHOST_ASYNCH
|
||||
static int stm32l4_in_asynch(FAR struct stm32l4_usbhost_s *priv, int chidx,
|
||||
FAR uint8_t *buffer, size_t buflen,
|
||||
usbhost_asynch_t callback, FAR void *arg)
|
||||
FAR uint8_t *buffer, size_t buflen,
|
||||
usbhost_asynch_t callback, FAR void *arg)
|
||||
{
|
||||
FAR struct stm32l4_chan_s *chan;
|
||||
int ret;
|
||||
@ -2082,8 +2085,9 @@ static int stm32l4_out_setup(FAR struct stm32l4_usbhost_s *priv, int chidx)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
static ssize_t stm32l4_out_transfer(FAR struct stm32l4_usbhost_s *priv, int chidx,
|
||||
FAR uint8_t *buffer, size_t buflen)
|
||||
static ssize_t stm32l4_out_transfer(FAR struct stm32l4_usbhost_s *priv,
|
||||
int chidx, FAR uint8_t *buffer,
|
||||
size_t buflen)
|
||||
{
|
||||
FAR struct stm32l4_chan_s *chan;
|
||||
systime_t start;
|
||||
@ -2196,7 +2200,7 @@ static ssize_t stm32l4_out_transfer(FAR struct stm32l4_usbhost_s *priv, int chid
|
||||
|
||||
#ifdef CONFIG_USBHOST_ASYNCH
|
||||
static void stm32l4_out_next(FAR struct stm32l4_usbhost_s *priv,
|
||||
FAR struct stm32l4_chan_s *chan)
|
||||
FAR struct stm32l4_chan_s *chan)
|
||||
{
|
||||
usbhost_asynch_t callback;
|
||||
FAR void *arg;
|
||||
@ -2261,8 +2265,8 @@ static void stm32l4_out_next(FAR struct stm32l4_usbhost_s *priv,
|
||||
|
||||
#ifdef CONFIG_USBHOST_ASYNCH
|
||||
static int stm32l4_out_asynch(FAR struct stm32l4_usbhost_s *priv, int chidx,
|
||||
FAR uint8_t *buffer, size_t buflen,
|
||||
usbhost_asynch_t callback, FAR void *arg)
|
||||
FAR uint8_t *buffer, size_t buflen,
|
||||
usbhost_asynch_t callback, FAR void *arg)
|
||||
{
|
||||
FAR struct stm32l4_chan_s *chan;
|
||||
int ret;
|
||||
@ -2305,7 +2309,7 @@ static int stm32l4_out_asynch(FAR struct stm32l4_usbhost_s *priv, int chidx,
|
||||
****************************************************************************/
|
||||
|
||||
static void stm32l4_gint_wrpacket(FAR struct stm32l4_usbhost_s *priv,
|
||||
FAR uint8_t *buffer, int chidx, int buflen)
|
||||
FAR uint8_t *buffer, int chidx, int buflen)
|
||||
{
|
||||
FAR uint32_t *src;
|
||||
uint32_t fifo;
|
||||
@ -2355,7 +2359,7 @@ static void stm32l4_gint_wrpacket(FAR struct stm32l4_usbhost_s *priv,
|
||||
****************************************************************************/
|
||||
|
||||
static inline void stm32l4_gint_hcinisr(FAR struct stm32l4_usbhost_s *priv,
|
||||
int chidx)
|
||||
int chidx)
|
||||
{
|
||||
FAR struct stm32l4_chan_s *chan = &priv->chan[chidx];
|
||||
uint32_t regval;
|
||||
@ -2616,7 +2620,7 @@ static inline void stm32l4_gint_hcinisr(FAR struct stm32l4_usbhost_s *priv,
|
||||
****************************************************************************/
|
||||
|
||||
static inline void stm32l4_gint_hcoutisr(FAR struct stm32l4_usbhost_s *priv,
|
||||
int chidx)
|
||||
int chidx)
|
||||
{
|
||||
FAR struct stm32l4_chan_s *chan = &priv->chan[chidx];
|
||||
uint32_t regval;
|
||||
@ -3732,7 +3736,7 @@ static void stm32l4_txfe_enable(FAR struct stm32l4_usbhost_s *priv, int chidx)
|
||||
****************************************************************************/
|
||||
|
||||
static int stm32l4_wait(FAR struct usbhost_connection_s *conn,
|
||||
FAR struct usbhost_hubport_s **hport)
|
||||
FAR struct usbhost_hubport_s **hport)
|
||||
{
|
||||
FAR struct stm32l4_usbhost_s *priv = &g_usbhost;
|
||||
struct usbhost_hubport_s *connport;
|
||||
@ -3819,8 +3823,8 @@ static int stm32l4_wait(FAR struct usbhost_connection_s *conn,
|
||||
****************************************************************************/
|
||||
|
||||
static int stm32l4_rh_enumerate(FAR struct stm32l4_usbhost_s *priv,
|
||||
FAR struct usbhost_connection_s *conn,
|
||||
FAR struct usbhost_hubport_s *hport)
|
||||
FAR struct usbhost_connection_s *conn,
|
||||
FAR struct usbhost_hubport_s *hport)
|
||||
{
|
||||
uint32_t regval;
|
||||
int ret;
|
||||
@ -3873,7 +3877,7 @@ static int stm32l4_rh_enumerate(FAR struct stm32l4_usbhost_s *priv,
|
||||
}
|
||||
|
||||
static int stm32l4_enumerate(FAR struct usbhost_connection_s *conn,
|
||||
FAR struct usbhost_hubport_s *hport)
|
||||
FAR struct usbhost_hubport_s *hport)
|
||||
{
|
||||
FAR struct stm32l4_usbhost_s *priv = &g_usbhost;
|
||||
int ret;
|
||||
@ -3946,9 +3950,9 @@ static int stm32l4_enumerate(FAR struct usbhost_connection_s *conn,
|
||||
*
|
||||
************************************************************************************/
|
||||
|
||||
static int stm32l4_ep0configure(FAR struct usbhost_driver_s *drvr, usbhost_ep_t ep0,
|
||||
uint8_t funcaddr, uint8_t speed,
|
||||
uint16_t maxpacketsize)
|
||||
static int stm32l4_ep0configure(FAR struct usbhost_driver_s *drvr,
|
||||
usbhost_ep_t ep0, uint8_t funcaddr,
|
||||
uint8_t speed, uint16_t maxpacketsize)
|
||||
{
|
||||
FAR struct stm32l4_usbhost_s *priv = (FAR struct stm32l4_usbhost_s *)drvr;
|
||||
FAR struct stm32l4_ctrlinfo_s *ep0info = (FAR struct stm32l4_ctrlinfo_s *)ep0;
|
||||
@ -4006,8 +4010,8 @@ static int stm32l4_ep0configure(FAR struct usbhost_driver_s *drvr, usbhost_ep_t
|
||||
************************************************************************************/
|
||||
|
||||
static int stm32l4_epalloc(FAR struct usbhost_driver_s *drvr,
|
||||
FAR const struct usbhost_epdesc_s *epdesc,
|
||||
FAR usbhost_ep_t *ep)
|
||||
FAR const struct usbhost_epdesc_s *epdesc,
|
||||
FAR usbhost_ep_t *ep)
|
||||
{
|
||||
FAR struct stm32l4_usbhost_s *priv = (FAR struct stm32l4_usbhost_s *)drvr;
|
||||
int ret;
|
||||
@ -4129,9 +4133,9 @@ static int stm32l4_epfree(FAR struct usbhost_driver_s *drvr, usbhost_ep_t ep)
|
||||
* - Never called from an interrupt handler.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#warning this function name is too generic
|
||||
static int stm32l4_alloc(FAR struct usbhost_driver_s *drvr,
|
||||
FAR uint8_t **buffer, FAR size_t *maxlen)
|
||||
FAR uint8_t **buffer, FAR size_t *maxlen)
|
||||
{
|
||||
FAR uint8_t *alloc;
|
||||
|
||||
@ -4174,7 +4178,7 @@ static int stm32l4_alloc(FAR struct usbhost_driver_s *drvr,
|
||||
* - Never called from an interrupt handler.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#warning this function name is too generic
|
||||
static int stm32l4_free(FAR struct usbhost_driver_s *drvr, FAR uint8_t *buffer)
|
||||
{
|
||||
/* There is no special memory requirement */
|
||||
@ -4210,9 +4214,9 @@ static int stm32l4_free(FAR struct usbhost_driver_s *drvr, FAR uint8_t *buffer)
|
||||
* This function will *not* be called from an interrupt handler.
|
||||
*
|
||||
************************************************************************************/
|
||||
|
||||
#warning this function name is too generic
|
||||
static int stm32l4_ioalloc(FAR struct usbhost_driver_s *drvr,
|
||||
FAR uint8_t **buffer, size_t buflen)
|
||||
FAR uint8_t **buffer, size_t buflen)
|
||||
{
|
||||
FAR uint8_t *alloc;
|
||||
|
||||
@ -4254,7 +4258,7 @@ static int stm32l4_ioalloc(FAR struct usbhost_driver_s *drvr,
|
||||
* This function will *not* be called from an interrupt handler.
|
||||
*
|
||||
************************************************************************************/
|
||||
|
||||
#warning this function name is too generic
|
||||
static int stm32l4_iofree(FAR struct usbhost_driver_s *drvr, FAR uint8_t *buffer)
|
||||
{
|
||||
/* There is no special memory requirement */
|
||||
@ -4300,8 +4304,8 @@ static int stm32l4_iofree(FAR struct usbhost_driver_s *drvr, FAR uint8_t *buffer
|
||||
****************************************************************************/
|
||||
|
||||
static int stm32l4_ctrlin(FAR struct usbhost_driver_s *drvr, usbhost_ep_t ep0,
|
||||
FAR const struct usb_ctrlreq_s *req,
|
||||
FAR uint8_t *buffer)
|
||||
FAR const struct usb_ctrlreq_s *req,
|
||||
FAR uint8_t *buffer)
|
||||
{
|
||||
FAR struct stm32l4_usbhost_s *priv = (FAR struct stm32l4_usbhost_s *)drvr;
|
||||
FAR struct stm32l4_ctrlinfo_s *ep0info = (FAR struct stm32l4_ctrlinfo_s *)ep0;
|
||||
@ -4385,8 +4389,8 @@ static int stm32l4_ctrlin(FAR struct usbhost_driver_s *drvr, usbhost_ep_t ep0,
|
||||
}
|
||||
|
||||
static int stm32l4_ctrlout(FAR struct usbhost_driver_s *drvr, usbhost_ep_t ep0,
|
||||
FAR const struct usb_ctrlreq_s *req,
|
||||
FAR const uint8_t *buffer)
|
||||
FAR const struct usb_ctrlreq_s *req,
|
||||
FAR const uint8_t *buffer)
|
||||
{
|
||||
FAR struct stm32l4_usbhost_s *priv = (FAR struct stm32l4_usbhost_s *)drvr;
|
||||
FAR struct stm32l4_ctrlinfo_s *ep0info = (FAR struct stm32l4_ctrlinfo_s *)ep0;
|
||||
@ -4510,7 +4514,7 @@ static int stm32l4_ctrlout(FAR struct usbhost_driver_s *drvr, usbhost_ep_t ep0,
|
||||
****************************************************************************/
|
||||
|
||||
static ssize_t stm32l4_transfer(FAR struct usbhost_driver_s *drvr, usbhost_ep_t ep,
|
||||
FAR uint8_t *buffer, size_t buflen)
|
||||
FAR uint8_t *buffer, size_t buflen)
|
||||
{
|
||||
FAR struct stm32l4_usbhost_s *priv = (FAR struct stm32l4_usbhost_s *)drvr;
|
||||
unsigned int chidx = (unsigned int)ep;
|
||||
@ -4576,8 +4580,8 @@ static ssize_t stm32l4_transfer(FAR struct usbhost_driver_s *drvr, usbhost_ep_t
|
||||
|
||||
#ifdef CONFIG_USBHOST_ASYNCH
|
||||
static int stm32l4_asynch(FAR struct usbhost_driver_s *drvr, usbhost_ep_t ep,
|
||||
FAR uint8_t *buffer, size_t buflen,
|
||||
usbhost_asynch_t callback, FAR void *arg)
|
||||
FAR uint8_t *buffer, size_t buflen,
|
||||
usbhost_asynch_t callback, FAR void *arg)
|
||||
{
|
||||
FAR struct stm32l4_usbhost_s *priv = (FAR struct stm32l4_usbhost_s *)drvr;
|
||||
unsigned int chidx = (unsigned int)ep;
|
||||
@ -4717,8 +4721,8 @@ static int stm32l4_cancel(FAR struct usbhost_driver_s *drvr, usbhost_ep_t ep)
|
||||
|
||||
#ifdef CONFIG_USBHOST_HUB
|
||||
static int stm32l4_connect(FAR struct usbhost_driver_s *drvr,
|
||||
FAR struct usbhost_hubport_s *hport,
|
||||
bool connected)
|
||||
FAR struct usbhost_hubport_s *hport,
|
||||
bool connected)
|
||||
{
|
||||
FAR struct stm32l4_usbhost_s *priv = (FAR struct stm32l4_usbhost_s *)drvr;
|
||||
irqstate_t flags;
|
||||
@ -4771,7 +4775,7 @@ static int stm32l4_connect(FAR struct usbhost_driver_s *drvr,
|
||||
****************************************************************************/
|
||||
|
||||
static void stm32l4_disconnect(FAR struct usbhost_driver_s *drvr,
|
||||
FAR struct usbhost_hubport_s *hport)
|
||||
FAR struct usbhost_hubport_s *hport)
|
||||
{
|
||||
DEBUGASSERT(hport != NULL);
|
||||
hport->devclass = NULL;
|
||||
|
@ -535,7 +535,7 @@ static void rtc_resume(void)
|
||||
************************************************************************************/
|
||||
|
||||
#ifdef CONFIG_RTC_ALARM
|
||||
static int stm32l4_rtc_alarm_handler(int irq, void *context)
|
||||
static int stm32l4_rtc_alarm_handler(int irq, FAR void *context)
|
||||
{
|
||||
FAR struct alm_cbinfo_s *cbinfo;
|
||||
alm_callback_t cb;
|
||||
|
@ -152,7 +152,7 @@ static struct stm32l4_tickless_s g_tickless;
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
static void stm32l4_oneshot_handler(void *arg)
|
||||
static void stm32l4_oneshot_handler(FAR void *arg)
|
||||
{
|
||||
tmrinfo("Expired...\n");
|
||||
sched_timer_expiration();
|
||||
|
@ -217,7 +217,7 @@
|
||||
|
||||
struct stm32l4_tim_priv_s
|
||||
{
|
||||
const struct stm32l4_tim_ops_s *ops;
|
||||
FAR const struct stm32l4_tim_ops_s *ops;
|
||||
stm32l4_tim_mode_t mode;
|
||||
uint32_t base; /* TIMn base address */
|
||||
};
|
||||
@ -229,16 +229,16 @@ struct stm32l4_tim_priv_s
|
||||
/* Register helpers */
|
||||
|
||||
static inline uint16_t stm32l4_getreg16(FAR struct stm32l4_tim_dev_s *dev,
|
||||
uint8_t offset);
|
||||
static inline void stm32l4_putreg16(FAR struct stm32l4_tim_dev_s *dev, uint8_t offset,
|
||||
uint16_t value);
|
||||
uint8_t offset);
|
||||
static inline void stm32l4_putreg16(FAR struct stm32l4_tim_dev_s *dev,
|
||||
uint8_t offset, uint16_t value);
|
||||
static inline void stm32l4_modifyreg16(FAR struct stm32l4_tim_dev_s *dev,
|
||||
uint8_t offset, uint16_t clearbits,
|
||||
uint16_t setbits);
|
||||
uint8_t offset, uint16_t clearbits,
|
||||
uint16_t setbits);
|
||||
static inline uint32_t stm32l4_getreg32(FAR struct stm32l4_tim_dev_s *dev,
|
||||
uint8_t offset);
|
||||
static inline void stm32l4_putreg32(FAR struct stm32l4_tim_dev_s *dev, uint8_t offset,
|
||||
uint32_t value);
|
||||
uint8_t offset);
|
||||
static inline void stm32l4_putreg32(FAR struct stm32l4_tim_dev_s *dev,
|
||||
uint8_t offset, uint32_t value);
|
||||
|
||||
/* Timer helpers */
|
||||
|
||||
@ -254,21 +254,26 @@ static void stm32l4_tim_gpioconfig(uint32_t cfg, stm32l4_tim_channel_t mode);
|
||||
|
||||
/* Timer methods */
|
||||
|
||||
static int stm32l4_tim_setmode(FAR struct stm32l4_tim_dev_s *dev, stm32l4_tim_mode_t mode);
|
||||
static int stm32l4_tim_setclock(FAR struct stm32l4_tim_dev_s *dev, uint32_t freq);
|
||||
static int stm32l4_tim_setmode(FAR struct stm32l4_tim_dev_s *dev,
|
||||
stm32l4_tim_mode_t mode);
|
||||
static int stm32l4_tim_setclock(FAR struct stm32l4_tim_dev_s *dev,
|
||||
uint32_t freq);
|
||||
static void stm32l4_tim_setperiod(FAR struct stm32l4_tim_dev_s *dev,
|
||||
uint32_t period);
|
||||
uint32_t period);
|
||||
static uint32_t stm32l4_tim_getcounter(FAR struct stm32l4_tim_dev_s *dev);
|
||||
static int stm32l4_tim_setchannel(FAR struct stm32l4_tim_dev_s *dev, uint8_t channel,
|
||||
stm32l4_tim_channel_t mode);
|
||||
static int stm32l4_tim_setcompare(FAR struct stm32l4_tim_dev_s *dev, uint8_t channel,
|
||||
uint32_t compare);
|
||||
static int stm32l4_tim_getcapture(FAR struct stm32l4_tim_dev_s *dev, uint8_t channel);
|
||||
static int stm32l4_tim_setchannel(FAR struct stm32l4_tim_dev_s *dev,
|
||||
uint8_t channel, stm32l4_tim_channel_t mode);
|
||||
static int stm32l4_tim_setcompare(FAR struct stm32l4_tim_dev_s *dev,
|
||||
uint8_t channel, uint32_t compare);
|
||||
static int stm32l4_tim_getcapture(FAR struct stm32l4_tim_dev_s *dev,
|
||||
uint8_t channel);
|
||||
static int stm32l4_tim_setisr(FAR struct stm32l4_tim_dev_s *dev,
|
||||
int (*handler)(int irq, void *context),
|
||||
int source);
|
||||
static void stm32l4_tim_enableint(FAR struct stm32l4_tim_dev_s *dev, int source);
|
||||
static void stm32l4_tim_disableint(FAR struct stm32l4_tim_dev_s *dev, int source);
|
||||
int (*handler)(int irq, FAR void *context),
|
||||
int source);
|
||||
static void stm32l4_tim_enableint(FAR struct stm32l4_tim_dev_s *dev,
|
||||
int source);
|
||||
static void stm32l4_tim_disableint(FAR struct stm32l4_tim_dev_s *dev,
|
||||
int source);
|
||||
static void stm32l4_tim_ackint(FAR struct stm32l4_tim_dev_s *dev, int source);
|
||||
static int stm32l4_tim_checkint(FAR struct stm32l4_tim_dev_s *dev, int source);
|
||||
|
||||
@ -403,7 +408,7 @@ struct stm32l4_tim_priv_s stm32l4_tim17_priv =
|
||||
************************************************************************************/
|
||||
|
||||
static inline uint16_t stm32l4_getreg16(FAR struct stm32l4_tim_dev_s *dev,
|
||||
uint8_t offset)
|
||||
uint8_t offset)
|
||||
{
|
||||
return getreg16(((struct stm32l4_tim_priv_s *)dev)->base + offset);
|
||||
}
|
||||
@ -416,8 +421,8 @@ static inline uint16_t stm32l4_getreg16(FAR struct stm32l4_tim_dev_s *dev,
|
||||
*
|
||||
************************************************************************************/
|
||||
|
||||
static inline void stm32l4_putreg16(FAR struct stm32l4_tim_dev_s *dev, uint8_t offset,
|
||||
uint16_t value)
|
||||
static inline void stm32l4_putreg16(FAR struct stm32l4_tim_dev_s *dev,
|
||||
uint8_t offset, uint16_t value)
|
||||
{
|
||||
putreg16(value, ((struct stm32l4_tim_priv_s *)dev)->base + offset);
|
||||
}
|
||||
@ -431,10 +436,11 @@ static inline void stm32l4_putreg16(FAR struct stm32l4_tim_dev_s *dev, uint8_t o
|
||||
************************************************************************************/
|
||||
|
||||
static inline void stm32l4_modifyreg16(FAR struct stm32l4_tim_dev_s *dev,
|
||||
uint8_t offset, uint16_t clearbits,
|
||||
uint16_t setbits)
|
||||
uint8_t offset, uint16_t clearbits,
|
||||
uint16_t setbits)
|
||||
{
|
||||
modifyreg16(((struct stm32l4_tim_priv_s *)dev)->base + offset, clearbits, setbits);
|
||||
modifyreg16(((struct stm32l4_tim_priv_s *)dev)->base + offset, clearbits,
|
||||
setbits);
|
||||
}
|
||||
|
||||
/************************************************************************************
|
||||
@ -447,7 +453,7 @@ static inline void stm32l4_modifyreg16(FAR struct stm32l4_tim_dev_s *dev,
|
||||
************************************************************************************/
|
||||
|
||||
static inline uint32_t stm32l4_getreg32(FAR struct stm32l4_tim_dev_s *dev,
|
||||
uint8_t offset)
|
||||
uint8_t offset)
|
||||
{
|
||||
return getreg32(((struct stm32l4_tim_priv_s *)dev)->base + offset);
|
||||
}
|
||||
@ -461,8 +467,8 @@ static inline uint32_t stm32l4_getreg32(FAR struct stm32l4_tim_dev_s *dev,
|
||||
*
|
||||
************************************************************************************/
|
||||
|
||||
static inline void stm32l4_putreg32(FAR struct stm32l4_tim_dev_s *dev, uint8_t offset,
|
||||
uint32_t value)
|
||||
static inline void stm32l4_putreg32(FAR struct stm32l4_tim_dev_s *dev,
|
||||
uint8_t offset, uint32_t value)
|
||||
{
|
||||
putreg32(value, ((struct stm32l4_tim_priv_s *)dev)->base + offset);
|
||||
}
|
||||
@ -541,7 +547,8 @@ static void stm32l4_tim_gpioconfig(uint32_t cfg, stm32l4_tim_channel_t mode)
|
||||
* Name: stm32l4_tim_setmode
|
||||
************************************************************************************/
|
||||
|
||||
static int stm32l4_tim_setmode(FAR struct stm32l4_tim_dev_s *dev, stm32l4_tim_mode_t mode)
|
||||
static int stm32l4_tim_setmode(FAR struct stm32l4_tim_dev_s *dev,
|
||||
stm32l4_tim_mode_t mode)
|
||||
{
|
||||
uint16_t val = ATIM_CR1_CEN | ATIM_CR1_ARPE;
|
||||
|
||||
@ -611,7 +618,8 @@ static int stm32l4_tim_setmode(FAR struct stm32l4_tim_dev_s *dev, stm32l4_tim_mo
|
||||
* Name: stm32l4_tim_setclock
|
||||
************************************************************************************/
|
||||
|
||||
static int stm32l4_tim_setclock(FAR struct stm32l4_tim_dev_s *dev, uint32_t freq)
|
||||
static int stm32l4_tim_setclock(FAR struct stm32l4_tim_dev_s *dev,
|
||||
uint32_t freq)
|
||||
{
|
||||
uint32_t freqin;
|
||||
int prescaler;
|
||||
@ -747,8 +755,8 @@ static uint32_t stm32l4_tim_getcounter(FAR struct stm32l4_tim_dev_s *dev)
|
||||
* Name: stm32l4_tim_setchannel
|
||||
************************************************************************************/
|
||||
|
||||
static int stm32l4_tim_setchannel(FAR struct stm32l4_tim_dev_s *dev, uint8_t channel,
|
||||
stm32l4_tim_channel_t mode)
|
||||
static int stm32l4_tim_setchannel(FAR struct stm32l4_tim_dev_s *dev,
|
||||
uint8_t channel, stm32l4_tim_channel_t mode)
|
||||
{
|
||||
uint16_t ccmr_orig = 0;
|
||||
uint16_t ccmr_val = 0;
|
||||
@ -1096,8 +1104,8 @@ static int stm32l4_tim_setchannel(FAR struct stm32l4_tim_dev_s *dev, uint8_t cha
|
||||
* Name: stm32l4_tim_setcompare
|
||||
************************************************************************************/
|
||||
|
||||
static int stm32l4_tim_setcompare(FAR struct stm32l4_tim_dev_s *dev, uint8_t channel,
|
||||
uint32_t compare)
|
||||
static int stm32l4_tim_setcompare(FAR struct stm32l4_tim_dev_s *dev,
|
||||
uint8_t channel, uint32_t compare)
|
||||
{
|
||||
DEBUGASSERT(dev != NULL);
|
||||
|
||||
@ -1125,7 +1133,8 @@ static int stm32l4_tim_setcompare(FAR struct stm32l4_tim_dev_s *dev, uint8_t cha
|
||||
* Name: stm32l4_tim_getcapture
|
||||
************************************************************************************/
|
||||
|
||||
static int stm32l4_tim_getcapture(FAR struct stm32l4_tim_dev_s *dev, uint8_t channel)
|
||||
static int stm32l4_tim_getcapture(FAR struct stm32l4_tim_dev_s *dev,
|
||||
uint8_t channel)
|
||||
{
|
||||
DEBUGASSERT(dev != NULL);
|
||||
|
||||
@ -1149,8 +1158,8 @@ static int stm32l4_tim_getcapture(FAR struct stm32l4_tim_dev_s *dev, uint8_t cha
|
||||
************************************************************************************/
|
||||
|
||||
static int stm32l4_tim_setisr(FAR struct stm32l4_tim_dev_s *dev,
|
||||
int (*handler)(int irq, void *context),
|
||||
int source)
|
||||
int (*handler)(int irq, FAR void *context),
|
||||
int source)
|
||||
{
|
||||
int vectorno;
|
||||
|
||||
@ -1256,7 +1265,8 @@ static void stm32l4_tim_enableint(FAR struct stm32l4_tim_dev_s *dev, int source)
|
||||
* Name: stm32l4_tim_disableint
|
||||
************************************************************************************/
|
||||
|
||||
static void stm32l4_tim_disableint(FAR struct stm32l4_tim_dev_s *dev, int source)
|
||||
static void stm32l4_tim_disableint(FAR struct stm32l4_tim_dev_s *dev,
|
||||
int source)
|
||||
{
|
||||
DEBUGASSERT(dev != NULL);
|
||||
stm32l4_modifyreg16(dev, STM32L4_BTIM_DIER_OFFSET, ATIM_DIER_UIE, 0);
|
||||
@ -1386,7 +1396,7 @@ FAR struct stm32l4_tim_dev_s *stm32l4_tim_init(int timer)
|
||||
*
|
||||
************************************************************************************/
|
||||
|
||||
int stm32l4_tim_deinit(FAR struct stm32l4_tim_dev_s * dev)
|
||||
int stm32l4_tim_deinit(FAR struct stm32l4_tim_dev_s *dev)
|
||||
{
|
||||
DEBUGASSERT(dev != NULL);
|
||||
|
||||
|
@ -144,9 +144,9 @@ static int stm32l4_timer_handler(FAR struct stm32l4_lowerhalf_s *lower);
|
||||
static int stm32l4_start(FAR struct timer_lowerhalf_s *lower);
|
||||
static int stm32l4_stop(FAR struct timer_lowerhalf_s *lower);
|
||||
static int stm32l4_settimeout(FAR struct timer_lowerhalf_s *lower,
|
||||
uint32_t timeout);
|
||||
uint32_t timeout);
|
||||
static tccb_t stm32l4_sethandler(FAR struct timer_lowerhalf_s *lower,
|
||||
tccb_t handler);
|
||||
tccb_t handler);
|
||||
|
||||
/****************************************************************************
|
||||
* Private Data
|
||||
@ -437,9 +437,9 @@ static int stm32l4_start(FAR struct timer_lowerhalf_s *lower)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
static int stm32l4_stop(struct timer_lowerhalf_s *lower)
|
||||
static int stm32l4_stop(FAR struct timer_lowerhalf_s *lower)
|
||||
{
|
||||
struct stm32l4_lowerhalf_s *priv = (struct stm32l4_lowerhalf_s *)lower;
|
||||
FAR struct stm32l4_lowerhalf_s *priv = (FAR struct stm32l4_lowerhalf_s *)lower;
|
||||
|
||||
if (priv->started)
|
||||
{
|
||||
@ -471,7 +471,8 @@ static int stm32l4_stop(struct timer_lowerhalf_s *lower)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
static int stm32l4_settimeout(FAR struct timer_lowerhalf_s *lower, uint32_t timeout)
|
||||
static int stm32l4_settimeout(FAR struct timer_lowerhalf_s *lower,
|
||||
uint32_t timeout)
|
||||
{
|
||||
FAR struct stm32l4_lowerhalf_s *priv = (FAR struct stm32l4_lowerhalf_s *)lower;
|
||||
uint64_t maxtimeout;
|
||||
@ -517,7 +518,7 @@ static int stm32l4_settimeout(FAR struct timer_lowerhalf_s *lower, uint32_t time
|
||||
****************************************************************************/
|
||||
|
||||
static tccb_t stm32l4_sethandler(FAR struct timer_lowerhalf_s *lower,
|
||||
tccb_t newhandler)
|
||||
tccb_t newhandler)
|
||||
{
|
||||
FAR struct stm32l4_lowerhalf_s *priv = (FAR struct stm32l4_lowerhalf_s *)lower;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user