boards: cxd56xx: Add cxd5610 gnss driver
Add cxd5610 gnss driver as board-specific sensor driver.
This commit is contained in:
parent
ed5785ad06
commit
f49fa466b6
@ -203,3 +203,54 @@ config RPR0521RS_PROXIMITY_INTERRUPT
|
|||||||
|
|
||||||
endif # SENSORS_RPR0521RS_SCU
|
endif # SENSORS_RPR0521RS_SCU
|
||||||
endif # SCU_SENSORS
|
endif # SCU_SENSORS
|
||||||
|
|
||||||
|
config SENSORS_CXD5610_GNSS
|
||||||
|
bool "Sony CXD5610 GNSS"
|
||||||
|
default n
|
||||||
|
---help---
|
||||||
|
Enable driver for CXD5610 GNSS device.
|
||||||
|
|
||||||
|
if SENSORS_CXD5610_GNSS
|
||||||
|
|
||||||
|
config SENSORS_CXD5610_GNSS_SNDBUF_SIZE
|
||||||
|
int "CXD5610 GNSS send buffer size"
|
||||||
|
default 64
|
||||||
|
|
||||||
|
config SENSORS_CXD5610_GNSS_RCVBUF_SIZE
|
||||||
|
int "CXD5610 GNSS receive buffer size"
|
||||||
|
default 64
|
||||||
|
|
||||||
|
config SENSORS_CXD5610_GNSS_NOTIFYBUF_SIZE
|
||||||
|
int "CXD5610 GNSS notify buffer size"
|
||||||
|
default 1536
|
||||||
|
|
||||||
|
config SENSORS_CXD5610_GNSS_NPOLLWAITERS
|
||||||
|
int "CXD5610 GNSS max poll waiters"
|
||||||
|
default 4
|
||||||
|
|
||||||
|
config SENSORS_CXD5610_GNSS_NSIGNALRECEIVERS
|
||||||
|
int "CXD5610 GNSS max signal receivers"
|
||||||
|
default 4
|
||||||
|
|
||||||
|
config SENSORS_CXD5610_GNSS_RX_THREAD_PRIORITY
|
||||||
|
int "CXD5610 GNSS receive thread priority"
|
||||||
|
default 120
|
||||||
|
|
||||||
|
config SENSORS_CXD5610_GNSS_RX_THREAD_STACKSIZE
|
||||||
|
int "CXD5610 GNSS receive thread stack size"
|
||||||
|
default 1024
|
||||||
|
|
||||||
|
config SENSORS_CXD5610_GNSS_UNALIGNED_ACCESS
|
||||||
|
bool "Unaligned access"
|
||||||
|
default y
|
||||||
|
depends on !ENDIAN_BIG
|
||||||
|
---help---
|
||||||
|
Support unaligned word and half-word access on little endian.
|
||||||
|
|
||||||
|
config SENSORS_CXD5610_GNSS_READ_COMPAT
|
||||||
|
bool "Compatible with CXD5602 GNSS"
|
||||||
|
default y
|
||||||
|
---help---
|
||||||
|
Support compatible with CXD5602 GNSS
|
||||||
|
|
||||||
|
endif # SENSORS_CXD5610_GNSS
|
||||||
|
@ -62,6 +62,10 @@ ifeq ($(CONFIG_SENSORS_RPR0521RS_SCU),y)
|
|||||||
CSRCS += rpr0521rs_scu.c
|
CSRCS += rpr0521rs_scu.c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_SENSORS_CXD5610_GNSS),y)
|
||||||
|
CSRCS += cxd5610_gnss.c
|
||||||
|
endif
|
||||||
|
|
||||||
DEPPATH += --dep-path platform$(DELIM)sensors
|
DEPPATH += --dep-path platform$(DELIM)sensors
|
||||||
VPATH += :platform$(DELIM)sensors
|
VPATH += :platform$(DELIM)sensors
|
||||||
CFLAGS += ${INCDIR_PREFIX}$(TOPDIR)$(DELIM)drivers$(DELIM)platform$(DELIM)sensors
|
CFLAGS += ${INCDIR_PREFIX}$(TOPDIR)$(DELIM)drivers$(DELIM)platform$(DELIM)sensors
|
||||||
|
2266
boards/arm/cxd56xx/drivers/sensors/cxd5610_gnss.c
Normal file
2266
boards/arm/cxd56xx/drivers/sensors/cxd5610_gnss.c
Normal file
File diff suppressed because it is too large
Load Diff
98
include/nuttx/sensors/cxd5610_gnss.h
Normal file
98
include/nuttx/sensors/cxd5610_gnss.h
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
* include/nuttx/sensors/cxd5610_gnss.h
|
||||||
|
*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
|
* this work for additional information regarding copyright ownership. The
|
||||||
|
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance with the
|
||||||
|
* License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
* License for the specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef __INCLUDE_NUTTX_SENSORS_CXD5610_GNSS_H
|
||||||
|
#define __INCLUDE_NUTTX_SENSORS_CXD5610_GNSS_H
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Included Files
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#include <nuttx/config.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Public Types
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/* This structure provides the "lower-half" driver operations available to
|
||||||
|
* the "upper-half" driver.
|
||||||
|
*/
|
||||||
|
|
||||||
|
struct cxd5610_gnss_lowerhalf_s;
|
||||||
|
|
||||||
|
/* Structure for cxd5610 lower-half operations */
|
||||||
|
|
||||||
|
struct cxd5610_gnss_lowerops_s
|
||||||
|
{
|
||||||
|
/* Configure the cxd5610 gnss sensor device */
|
||||||
|
|
||||||
|
CODE int (*send)(FAR struct cxd5610_gnss_lowerhalf_s *lower,
|
||||||
|
FAR uint8_t *buffer, int buflen);
|
||||||
|
CODE int (*recv)(FAR struct cxd5610_gnss_lowerhalf_s *lower,
|
||||||
|
FAR uint8_t *buffer, int buflen);
|
||||||
|
CODE int (*enableint)(FAR struct cxd5610_gnss_lowerhalf_s *lower,
|
||||||
|
CODE void (*handler)(void));
|
||||||
|
CODE int (*disableint)(FAR struct cxd5610_gnss_lowerhalf_s *lower);
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Structure for cxd5610 lower-half driver */
|
||||||
|
|
||||||
|
struct cxd5610_gnss_lowerhalf_s
|
||||||
|
{
|
||||||
|
FAR const struct cxd5610_gnss_lowerops_s *ops;
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define EXTERN extern "C"
|
||||||
|
extern "C"
|
||||||
|
{
|
||||||
|
#else
|
||||||
|
#define EXTERN extern
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Public Function Prototypes
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: cxd5610_gnss_register
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Register the CXD5610 GNSS character device as 'devpath'
|
||||||
|
*
|
||||||
|
* Input Parameters:
|
||||||
|
* devpath - The full path to the driver to register.
|
||||||
|
* lower - An instance of the lower half interface
|
||||||
|
*
|
||||||
|
* Returned Value:
|
||||||
|
* Zero (OK) on success; a negated errno value on failure.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
int cxd5610_gnss_register(FAR const char *devpath,
|
||||||
|
FAR struct cxd5610_gnss_lowerhalf_s *lower);
|
||||||
|
|
||||||
|
#undef EXTERN
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __INCLUDE_NUTTX_SENSORS_CXD5610_GNSS_H */
|
Loading…
Reference in New Issue
Block a user