1872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca/* 2872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca * STMicroelectronics magnetometers driver 3872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca * 4872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca * Copyright 2012-2013 STMicroelectronics Inc. 5872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca * 6872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca * Denis Ciocca <denis.ciocca@st.com> 7872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca * v. 1.0.0 8872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca * Licensed under the GPL-2. 9872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca */ 10872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca 11872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca#ifndef ST_MAGN_H 12872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca#define ST_MAGN_H 13872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca 14872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca#include <linux/types.h> 15872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca#include <linux/iio/common/st_sensors.h> 16872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca 17872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca#define LSM303DLHC_MAGN_DEV_NAME "lsm303dlhc_magn" 18872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca#define LSM303DLM_MAGN_DEV_NAME "lsm303dlm_magn" 19872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca#define LIS3MDL_MAGN_DEV_NAME "lis3mdl" 20872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca 2123cde4d65cc7d11e2048d2b240cdf13927ac50d0Denis CIOCCAint st_magn_common_probe(struct iio_dev *indio_dev, 2223cde4d65cc7d11e2048d2b240cdf13927ac50d0Denis CIOCCA struct st_sensors_platform_data *pdata); 23872e79add7561645b130fba63aa7ca12098a9361Denis Cioccavoid st_magn_common_remove(struct iio_dev *indio_dev); 24872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca 25872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca#ifdef CONFIG_IIO_BUFFER 26872e79add7561645b130fba63aa7ca12098a9361Denis Cioccaint st_magn_allocate_ring(struct iio_dev *indio_dev); 27872e79add7561645b130fba63aa7ca12098a9361Denis Cioccavoid st_magn_deallocate_ring(struct iio_dev *indio_dev); 28872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca#else /* CONFIG_IIO_BUFFER */ 29872e79add7561645b130fba63aa7ca12098a9361Denis Cioccastatic inline int st_magn_probe_trigger(struct iio_dev *indio_dev, int irq) 30872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca{ 31872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca return 0; 32872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca} 33872e79add7561645b130fba63aa7ca12098a9361Denis Cioccastatic inline void st_magn_remove_trigger(struct iio_dev *indio_dev, int irq) 34872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca{ 35872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca return; 36872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca} 37872e79add7561645b130fba63aa7ca12098a9361Denis Cioccastatic inline int st_magn_allocate_ring(struct iio_dev *indio_dev) 38872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca{ 39872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca return 0; 40872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca} 41872e79add7561645b130fba63aa7ca12098a9361Denis Cioccastatic inline void st_magn_deallocate_ring(struct iio_dev *indio_dev) 42872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca{ 43872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca} 44872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca#endif /* CONFIG_IIO_BUFFER */ 45872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca 46872e79add7561645b130fba63aa7ca12098a9361Denis Ciocca#endif /* ST_MAGN_H */ 47