Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
linux-seco-imx
Manage
Activity
Members
Labels
Plan
Issues
0
Issue boards
Milestones
Iterations
Jira
Code
Merge requests
12
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Deploy
Releases
Package Registry
Model registry
Operate
Terraform modules
Analyze
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Clea OS
bsp
nxp
linux-seco-imx
Commits
fb3de30c
Commit
fb3de30c
authored
10 years ago
by
Wolfram Sang
Browse files
Options
Downloads
Patches
Plain Diff
i2c: pmcmsp: make use of the new infrastructure for quirks
Signed-off-by:
Wolfram Sang
<
wsa@the-dreams.de
>
parent
f2325c54
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
drivers/i2c/busses/i2c-pmcmsp.c
+16
-26
16 additions, 26 deletions
drivers/i2c/busses/i2c-pmcmsp.c
with
16 additions
and
26 deletions
drivers/i2c/busses/i2c-pmcmsp.c
+
16
−
26
View file @
fb3de30c
...
...
@@ -456,14 +456,6 @@ static enum pmcmsptwi_xfer_result pmcmsptwi_xfer_cmd(
return
-
EINVAL
;
}
if
(
cmd
->
read_len
>
MSP_MAX_BYTES_PER_RW
||
cmd
->
write_len
>
MSP_MAX_BYTES_PER_RW
)
{
dev_err
(
&
pmcmsptwi_adapter
.
dev
,
"%s: Cannot transfer more than %d bytes
\n
"
,
__func__
,
MSP_MAX_BYTES_PER_RW
);
return
-
EINVAL
;
}
mutex_lock
(
&
data
->
lock
);
dev_dbg
(
&
pmcmsptwi_adapter
.
dev
,
"Setting address to 0x%04x
\n
"
,
cmd
->
addr
);
...
...
@@ -520,25 +512,14 @@ static int pmcmsptwi_master_xfer(struct i2c_adapter *adap,
struct
pmcmsptwi_cfg
oldcfg
,
newcfg
;
int
ret
;
if
(
num
>
2
)
{
dev_dbg
(
&
adap
->
dev
,
"%d messages unsupported
\n
"
,
num
);
return
-
EINVAL
;
}
else
if
(
num
==
2
)
{
/* Check for a dual write-then-read command */
if
(
num
==
2
)
{
struct
i2c_msg
*
nextmsg
=
msg
+
1
;
if
(
!
(
msg
->
flags
&
I2C_M_RD
)
&&
(
nextmsg
->
flags
&
I2C_M_RD
)
&&
msg
->
addr
==
nextmsg
->
addr
)
{
cmd
.
type
=
MSP_TWI_CMD_WRITE_READ
;
cmd
.
write_len
=
msg
->
len
;
cmd
.
write_data
=
msg
->
buf
;
cmd
.
read_len
=
nextmsg
->
len
;
cmd
.
read_data
=
nextmsg
->
buf
;
}
else
{
dev_dbg
(
&
adap
->
dev
,
"Non write-read dual messages unsupported
\n
"
);
return
-
EINVAL
;
}
cmd
.
type
=
MSP_TWI_CMD_WRITE_READ
;
cmd
.
write_len
=
msg
->
len
;
cmd
.
write_data
=
msg
->
buf
;
cmd
.
read_len
=
nextmsg
->
len
;
cmd
.
read_data
=
nextmsg
->
buf
;
}
else
if
(
msg
->
flags
&
I2C_M_RD
)
{
cmd
.
type
=
MSP_TWI_CMD_READ
;
cmd
.
read_len
=
msg
->
len
;
...
...
@@ -598,6 +579,14 @@ static u32 pmcmsptwi_i2c_func(struct i2c_adapter *adapter)
I2C_FUNC_SMBUS_WORD_DATA
|
I2C_FUNC_SMBUS_PROC_CALL
;
}
static
struct
i2c_adapter_quirks
pmcmsptwi_i2c_quirks
=
{
.
flags
=
I2C_AQ_COMB_WRITE_THEN_READ
,
.
max_write_len
=
MSP_MAX_BYTES_PER_RW
,
.
max_read_len
=
MSP_MAX_BYTES_PER_RW
,
.
max_comb_1st_msg_len
=
MSP_MAX_BYTES_PER_RW
,
.
max_comb_2nd_msg_len
=
MSP_MAX_BYTES_PER_RW
,
};
/* -- Initialization -- */
static
struct
i2c_algorithm
pmcmsptwi_algo
=
{
...
...
@@ -609,6 +598,7 @@ static struct i2c_adapter pmcmsptwi_adapter = {
.
owner
=
THIS_MODULE
,
.
class
=
I2C_CLASS_HWMON
|
I2C_CLASS_SPD
,
.
algo
=
&
pmcmsptwi_algo
,
.
quirks
=
&
pmcmsptwi_i2c_quirks
,
.
name
=
DRV_NAME
,
};
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment