24 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
26 #include <linux/module.h>
27 #include <linux/errno.h>
28 #include <linux/kernel.h>
30 #include <linux/i2c.h>
40 static int scl = CONFIG_SCx200_I2C_SCL;
41 static int sda = CONFIG_SCx200_I2C_SDA;
48 static void scx200_i2c_setscl(
void *
data,
int state)
50 scx200_gpio_set(scl, state);
53 static void scx200_i2c_setsda(
void *
data,
int state)
55 scx200_gpio_set(
sda, state);
58 static int scx200_i2c_getscl(
void *
data)
60 return scx200_gpio_get(scl);
63 static int scx200_i2c_getsda(
void *
data)
65 return scx200_gpio_get(
sda);
74 .setsda = scx200_i2c_setsda,
75 .setscl = scx200_i2c_setscl,
76 .getsda = scx200_i2c_getsda,
77 .getscl = scx200_i2c_getscl,
85 .algo_data = &scx200_i2c_data,
86 .name =
"NatSemi SCx200 I2C",
89 static int scx200_i2c_init(
void)
91 pr_debug(
"NatSemi SCx200 I2C Driver\n");
94 pr_err(
"no SCx200 gpio pins available\n");
100 if (scl == -1 ||
sda == -1 || scl ==
sda) {
101 pr_err(
"scl and sda must be specified\n");
110 pr_err(
"adapter %s registration failed\n", scx200_i2c_ops.
name);
117 static void scx200_i2c_cleanup(
void)