1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * STMicroelectronics magnetometers driver 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Copyright 2012-2013 STMicroelectronics Inc. 6*4882a593Smuzhiyun * 7*4882a593Smuzhiyun * Denis Ciocca <denis.ciocca@st.com> 8*4882a593Smuzhiyun * v. 1.0.0 9*4882a593Smuzhiyun */ 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun #ifndef ST_MAGN_H 12*4882a593Smuzhiyun #define ST_MAGN_H 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun #include <linux/types.h> 15*4882a593Smuzhiyun #include <linux/iio/common/st_sensors.h> 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun #define LSM303DLH_MAGN_DEV_NAME "lsm303dlh_magn" 18*4882a593Smuzhiyun #define LSM303DLHC_MAGN_DEV_NAME "lsm303dlhc_magn" 19*4882a593Smuzhiyun #define LSM303DLM_MAGN_DEV_NAME "lsm303dlm_magn" 20*4882a593Smuzhiyun #define LIS3MDL_MAGN_DEV_NAME "lis3mdl" 21*4882a593Smuzhiyun #define LSM303AGR_MAGN_DEV_NAME "lsm303agr_magn" 22*4882a593Smuzhiyun #define LIS2MDL_MAGN_DEV_NAME "lis2mdl" 23*4882a593Smuzhiyun #define LSM9DS1_MAGN_DEV_NAME "lsm9ds1_magn" 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun const struct st_sensor_settings *st_magn_get_settings(const char *name); 26*4882a593Smuzhiyun int st_magn_common_probe(struct iio_dev *indio_dev); 27*4882a593Smuzhiyun void st_magn_common_remove(struct iio_dev *indio_dev); 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun #ifdef CONFIG_IIO_BUFFER 30*4882a593Smuzhiyun int st_magn_allocate_ring(struct iio_dev *indio_dev); 31*4882a593Smuzhiyun void st_magn_deallocate_ring(struct iio_dev *indio_dev); 32*4882a593Smuzhiyun int st_magn_trig_set_state(struct iio_trigger *trig, bool state); 33*4882a593Smuzhiyun #define ST_MAGN_TRIGGER_SET_STATE (&st_magn_trig_set_state) 34*4882a593Smuzhiyun #else /* CONFIG_IIO_BUFFER */ st_magn_probe_trigger(struct iio_dev * indio_dev,int irq)35*4882a593Smuzhiyunstatic inline int st_magn_probe_trigger(struct iio_dev *indio_dev, int irq) 36*4882a593Smuzhiyun { 37*4882a593Smuzhiyun return 0; 38*4882a593Smuzhiyun } st_magn_remove_trigger(struct iio_dev * indio_dev,int irq)39*4882a593Smuzhiyunstatic inline void st_magn_remove_trigger(struct iio_dev *indio_dev, int irq) 40*4882a593Smuzhiyun { 41*4882a593Smuzhiyun return; 42*4882a593Smuzhiyun } st_magn_allocate_ring(struct iio_dev * indio_dev)43*4882a593Smuzhiyunstatic inline int st_magn_allocate_ring(struct iio_dev *indio_dev) 44*4882a593Smuzhiyun { 45*4882a593Smuzhiyun return 0; 46*4882a593Smuzhiyun } st_magn_deallocate_ring(struct iio_dev * indio_dev)47*4882a593Smuzhiyunstatic inline void st_magn_deallocate_ring(struct iio_dev *indio_dev) 48*4882a593Smuzhiyun { 49*4882a593Smuzhiyun } 50*4882a593Smuzhiyun #define ST_MAGN_TRIGGER_SET_STATE NULL 51*4882a593Smuzhiyun #endif /* CONFIG_IIO_BUFFER */ 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun #endif /* ST_MAGN_H */ 54