18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * STMicroelectronics gyroscopes driver 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright 2012-2013 STMicroelectronics Inc. 68c2ecf20Sopenharmony_ci * 78c2ecf20Sopenharmony_ci * Denis Ciocca <denis.ciocca@st.com> 88c2ecf20Sopenharmony_ci * v. 1.0.0 98c2ecf20Sopenharmony_ci */ 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci#ifndef ST_GYRO_H 128c2ecf20Sopenharmony_ci#define ST_GYRO_H 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci#include <linux/types.h> 158c2ecf20Sopenharmony_ci#include <linux/iio/common/st_sensors.h> 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ci#define L3G4200D_GYRO_DEV_NAME "l3g4200d" 188c2ecf20Sopenharmony_ci#define LSM330D_GYRO_DEV_NAME "lsm330d_gyro" 198c2ecf20Sopenharmony_ci#define LSM330DL_GYRO_DEV_NAME "lsm330dl_gyro" 208c2ecf20Sopenharmony_ci#define LSM330DLC_GYRO_DEV_NAME "lsm330dlc_gyro" 218c2ecf20Sopenharmony_ci#define L3GD20_GYRO_DEV_NAME "l3gd20" 228c2ecf20Sopenharmony_ci#define L3GD20H_GYRO_DEV_NAME "l3gd20h" 238c2ecf20Sopenharmony_ci#define L3G4IS_GYRO_DEV_NAME "l3g4is_ui" 248c2ecf20Sopenharmony_ci#define LSM330_GYRO_DEV_NAME "lsm330_gyro" 258c2ecf20Sopenharmony_ci#define LSM9DS0_GYRO_DEV_NAME "lsm9ds0_gyro" 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ci/** 288c2ecf20Sopenharmony_ci * struct st_sensors_platform_data - gyro platform data 298c2ecf20Sopenharmony_ci * @drdy_int_pin: DRDY on gyros is available only on INT2 pin. 308c2ecf20Sopenharmony_ci */ 318c2ecf20Sopenharmony_cistatic __maybe_unused const struct st_sensors_platform_data gyro_pdata = { 328c2ecf20Sopenharmony_ci .drdy_int_pin = 2, 338c2ecf20Sopenharmony_ci}; 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ciconst struct st_sensor_settings *st_gyro_get_settings(const char *name); 368c2ecf20Sopenharmony_ciint st_gyro_common_probe(struct iio_dev *indio_dev); 378c2ecf20Sopenharmony_civoid st_gyro_common_remove(struct iio_dev *indio_dev); 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_ci#ifdef CONFIG_IIO_BUFFER 408c2ecf20Sopenharmony_ciint st_gyro_allocate_ring(struct iio_dev *indio_dev); 418c2ecf20Sopenharmony_civoid st_gyro_deallocate_ring(struct iio_dev *indio_dev); 428c2ecf20Sopenharmony_ciint st_gyro_trig_set_state(struct iio_trigger *trig, bool state); 438c2ecf20Sopenharmony_ci#define ST_GYRO_TRIGGER_SET_STATE (&st_gyro_trig_set_state) 448c2ecf20Sopenharmony_ci#else /* CONFIG_IIO_BUFFER */ 458c2ecf20Sopenharmony_cistatic inline int st_gyro_allocate_ring(struct iio_dev *indio_dev) 468c2ecf20Sopenharmony_ci{ 478c2ecf20Sopenharmony_ci return 0; 488c2ecf20Sopenharmony_ci} 498c2ecf20Sopenharmony_cistatic inline void st_gyro_deallocate_ring(struct iio_dev *indio_dev) 508c2ecf20Sopenharmony_ci{ 518c2ecf20Sopenharmony_ci} 528c2ecf20Sopenharmony_ci#define ST_GYRO_TRIGGER_SET_STATE NULL 538c2ecf20Sopenharmony_ci#endif /* CONFIG_IIO_BUFFER */ 548c2ecf20Sopenharmony_ci 558c2ecf20Sopenharmony_ci#endif /* ST_GYRO_H */ 56