Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
misc
bmp085-i2c.c
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2012 Bosch Sensortec GmbH
3
* Copyright (c) 2012 Unixphere AB
4
*
5
* This program is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License as published by
7
* the Free Software Foundation; either version 2 of the License, or
8
* (at your option) any later version.
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License
16
* along with this program; if not, write to the Free Software
17
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18
*/
19
20
#include <linux/module.h>
21
#include <linux/i2c.h>
22
#include <
linux/err.h
>
23
#include "
bmp085.h
"
24
25
#define BMP085_I2C_ADDRESS 0x77
26
27
static
const
unsigned
short
normal_i2c[] = {
BMP085_I2C_ADDRESS
,
28
I2C_CLIENT_END
};
29
30
static
int
bmp085_i2c_detect(
struct
i2c_client
*
client
,
31
struct
i2c_board_info
*
info
)
32
{
33
if
(client->
addr
!=
BMP085_I2C_ADDRESS
)
34
return
-
ENODEV
;
35
36
return
bmp085_detect
(&client->
dev
);
37
}
38
39
static
int
__devinit
bmp085_i2c_probe(
struct
i2c_client
*client,
40
const
struct
i2c_device_id
*
id
)
41
{
42
int
err
;
43
struct
regmap
*
regmap
=
devm_regmap_init_i2c
(client,
44
&
bmp085_regmap_config
);
45
46
if
(IS_ERR(regmap)) {
47
err = PTR_ERR(regmap);
48
dev_err
(&client->
dev
,
"Failed to init regmap: %d\n"
, err);
49
return
err
;
50
}
51
52
return
bmp085_probe
(&client->
dev
, regmap);
53
}
54
55
static
int
bmp085_i2c_remove(
struct
i2c_client
*client)
56
{
57
return
bmp085_remove
(&client->
dev
);
58
}
59
60
static
const
struct
i2c_device_id
bmp085_id[] = {
61
{
BMP085_NAME
, 0 },
62
{
"bmp180"
, 0 },
63
{ }
64
};
65
MODULE_DEVICE_TABLE
(i2c, bmp085_id);
66
67
static
struct
i2c_driver
bmp085_i2c_driver = {
68
.driver = {
69
.owner =
THIS_MODULE
,
70
.name =
BMP085_NAME
,
71
},
72
.id_table = bmp085_id,
73
.probe = bmp085_i2c_probe,
74
.remove =
__devexit_p
(bmp085_i2c_remove),
75
76
.detect = bmp085_i2c_detect,
77
.address_list = normal_i2c
78
};
79
80
module_i2c_driver
(bmp085_i2c_driver);
81
82
MODULE_AUTHOR
(
"Eric Andersson <
[email protected]
>"
);
83
MODULE_DESCRIPTION
(
"BMP085 I2C bus driver"
);
84
MODULE_LICENSE
(
"GPL"
);
Generated on Thu Jan 10 2013 13:54:37 for Linux Kernel by
1.8.2