Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
d78602c1
Commit
d78602c1
authored
May 08, 2003
by
Greg Kroah-Hartman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[PATCH] i2c: add i2c_adapter class support
parent
d498eb57
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
22 additions
and
4 deletions
+22
-4
drivers/i2c/i2c-core.c
drivers/i2c/i2c-core.c
+20
-3
include/linux/i2c.h
include/linux/i2c.h
+2
-1
No files found.
drivers/i2c/i2c-core.c
View file @
d78602c1
...
@@ -62,6 +62,10 @@ static struct device_driver i2c_generic_driver = {
...
@@ -62,6 +62,10 @@ static struct device_driver i2c_generic_driver = {
.
remove
=
i2c_device_remove
,
.
remove
=
i2c_device_remove
,
};
};
static
struct
class
i2c_adapter_class
=
{
.
name
=
"i2c-adapter"
};
/* ---------------------------------------------------
/* ---------------------------------------------------
* registering functions
* registering functions
...
@@ -97,6 +101,13 @@ int i2c_add_adapter(struct i2c_adapter *adap)
...
@@ -97,6 +101,13 @@ int i2c_add_adapter(struct i2c_adapter *adap)
adap
->
dev
.
driver
=
&
i2c_generic_driver
;
adap
->
dev
.
driver
=
&
i2c_generic_driver
;
device_register
(
&
adap
->
dev
);
device_register
(
&
adap
->
dev
);
/* Add this adapter to the i2c_adapter class */
memset
(
&
adap
->
class_dev
,
0x00
,
sizeof
(
struct
class_device
));
adap
->
class_dev
.
dev
=
&
adap
->
dev
;
adap
->
class_dev
.
class
=
&
i2c_adapter_class
;
strncpy
(
adap
->
class_dev
.
class_id
,
adap
->
dev
.
bus_id
,
BUS_ID_SIZE
);
class_device_register
(
&
adap
->
class_dev
);
/* inform drivers of new adapters */
/* inform drivers of new adapters */
list_for_each
(
item
,
&
drivers
)
{
list_for_each
(
item
,
&
drivers
)
{
driver
=
list_entry
(
item
,
struct
i2c_driver
,
list
);
driver
=
list_entry
(
item
,
struct
i2c_driver
,
list
);
...
@@ -150,6 +161,7 @@ int i2c_del_adapter(struct i2c_adapter *adap)
...
@@ -150,6 +161,7 @@ int i2c_del_adapter(struct i2c_adapter *adap)
}
}
/* clean up the sysfs representation */
/* clean up the sysfs representation */
class_device_unregister
(
&
adap
->
class_dev
);
device_unregister
(
&
adap
->
dev
);
device_unregister
(
&
adap
->
dev
);
list_del
(
&
adap
->
list
);
list_del
(
&
adap
->
list
);
...
@@ -443,14 +455,19 @@ struct bus_type i2c_bus_type = {
...
@@ -443,14 +455,19 @@ struct bus_type i2c_bus_type = {
.
match
=
i2c_device_match
,
.
match
=
i2c_device_match
,
};
};
static
int
__init
i2c_init
(
void
)
static
int
__init
i2c_init
(
void
)
{
{
return
bus_register
(
&
i2c_bus_type
);
int
retval
;
retval
=
bus_register
(
&
i2c_bus_type
);
if
(
retval
)
return
retval
;
return
class_register
(
&
i2c_adapter_class
);
}
}
static
void
__exit
i2c_exit
(
void
)
static
void
__exit
i2c_exit
(
void
)
{
{
class_unregister
(
&
i2c_adapter_class
);
bus_unregister
(
&
i2c_bus_type
);
bus_unregister
(
&
i2c_bus_type
);
}
}
...
@@ -475,7 +492,7 @@ int i2c_transfer(struct i2c_adapter * adap, struct i2c_msg msgs[],int num)
...
@@ -475,7 +492,7 @@ int i2c_transfer(struct i2c_adapter * adap, struct i2c_msg msgs[],int num)
return
ret
;
return
ret
;
}
else
{
}
else
{
dev_err
(
&
adap
->
dev
,
"I2C level transfers not supported
\n
"
);
DEB2
(
dev_dbg
(
&
adap
->
dev
,
"I2C level transfers not supported
\n
"
)
);
return
-
ENOSYS
;
return
-
ENOSYS
;
}
}
}
}
...
...
include/linux/i2c.h
View file @
d78602c1
...
@@ -240,7 +240,8 @@ struct i2c_adapter {
...
@@ -240,7 +240,8 @@ struct i2c_adapter {
int
timeout
;
int
timeout
;
int
retries
;
int
retries
;
struct
device
dev
;
/* the adapter device */
struct
device
dev
;
/* the adapter device */
struct
class_device
class_dev
;
/* the class device */
#ifdef CONFIG_PROC_FS
#ifdef CONFIG_PROC_FS
/* No need to set this when you initialize the adapter */
/* No need to set this when you initialize the adapter */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment