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