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
b26a95d4
Commit
b26a95d4
authored
Jan 21, 2016
by
Dmitry Torokhov
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'next' into for-linus
Prepare second round of input updates for 4.5 merge window.
parents
009f7738
809d9516
Changes
4
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
456 additions
and
210 deletions
+456
-210
Documentation/devicetree/bindings/input/gpio-keys.txt
Documentation/devicetree/bindings/input/gpio-keys.txt
+1
-0
drivers/input/joystick/xpad.c
drivers/input/joystick/xpad.c
+425
-166
drivers/input/keyboard/gpio_keys.c
drivers/input/keyboard/gpio_keys.c
+4
-2
drivers/input/touchscreen/atmel_mxt_ts.c
drivers/input/touchscreen/atmel_mxt_ts.c
+26
-42
No files found.
Documentation/devicetree/bindings/input/gpio-keys.txt
View file @
b26a95d4
...
@@ -6,6 +6,7 @@ Required properties:
...
@@ -6,6 +6,7 @@ Required properties:
Optional properties:
Optional properties:
- autorepeat: Boolean, Enable auto repeat feature of Linux input
- autorepeat: Boolean, Enable auto repeat feature of Linux input
subsystem.
subsystem.
- label: String, name of the input device.
Each button (key) is represented as a sub-node of "gpio-keys":
Each button (key) is represented as a sub-node of "gpio-keys":
Subnode properties:
Subnode properties:
...
...
drivers/input/joystick/xpad.c
View file @
b26a95d4
This diff is collapsed.
Click to expand it.
drivers/input/keyboard/gpio_keys.c
View file @
b26a95d4
...
@@ -630,7 +630,7 @@ gpio_keys_get_devtree_pdata(struct device *dev)
...
@@ -630,7 +630,7 @@ gpio_keys_get_devtree_pdata(struct device *dev)
if
(
!
node
)
if
(
!
node
)
return
ERR_PTR
(
-
ENODEV
);
return
ERR_PTR
(
-
ENODEV
);
nbuttons
=
of_get_child_count
(
node
);
nbuttons
=
of_get_
available_
child_count
(
node
);
if
(
nbuttons
==
0
)
if
(
nbuttons
==
0
)
return
ERR_PTR
(
-
ENODEV
);
return
ERR_PTR
(
-
ENODEV
);
...
@@ -645,8 +645,10 @@ gpio_keys_get_devtree_pdata(struct device *dev)
...
@@ -645,8 +645,10 @@ gpio_keys_get_devtree_pdata(struct device *dev)
pdata
->
rep
=
!!
of_get_property
(
node
,
"autorepeat"
,
NULL
);
pdata
->
rep
=
!!
of_get_property
(
node
,
"autorepeat"
,
NULL
);
of_property_read_string
(
node
,
"label"
,
&
pdata
->
name
);
i
=
0
;
i
=
0
;
for_each_child_of_node
(
node
,
pp
)
{
for_each_
available_
child_of_node
(
node
,
pp
)
{
enum
of_gpio_flags
flags
;
enum
of_gpio_flags
flags
;
button
=
&
pdata
->
buttons
[
i
++
];
button
=
&
pdata
->
buttons
[
i
++
];
...
...
drivers/input/touchscreen/atmel_mxt_ts.c
View file @
b26a95d4
...
@@ -113,8 +113,8 @@ struct t7_config {
...
@@ -113,8 +113,8 @@ struct t7_config {
#define MXT_T9_DETECT (1 << 7)
#define MXT_T9_DETECT (1 << 7)
struct
t9_range
{
struct
t9_range
{
u
16
x
;
__le
16
x
;
u
16
y
;
__le
16
y
;
}
__packed
;
}
__packed
;
/* MXT_TOUCH_MULTI_T9 orient */
/* MXT_TOUCH_MULTI_T9 orient */
...
@@ -216,6 +216,7 @@ struct mxt_data {
...
@@ -216,6 +216,7 @@ struct mxt_data {
unsigned
int
irq
;
unsigned
int
irq
;
unsigned
int
max_x
;
unsigned
int
max_x
;
unsigned
int
max_y
;
unsigned
int
max_y
;
bool
xy_switch
;
bool
in_bootloader
;
bool
in_bootloader
;
u16
mem_size
;
u16
mem_size
;
u8
t100_aux_ampl
;
u8
t100_aux_ampl
;
...
@@ -1665,8 +1666,8 @@ static int mxt_read_t9_resolution(struct mxt_data *data)
...
@@ -1665,8 +1666,8 @@ static int mxt_read_t9_resolution(struct mxt_data *data)
if
(
error
)
if
(
error
)
return
error
;
return
error
;
le16_to_cpus
(
&
range
.
x
);
data
->
max_x
=
get_unaligned_le16
(
&
range
.
x
);
le16_to_cpus
(
&
range
.
y
);
data
->
max_y
=
get_unaligned_le16
(
&
range
.
y
);
error
=
__mxt_read_reg
(
client
,
error
=
__mxt_read_reg
(
client
,
object
->
start_address
+
MXT_T9_ORIENT
,
object
->
start_address
+
MXT_T9_ORIENT
,
...
@@ -1674,23 +1675,7 @@ static int mxt_read_t9_resolution(struct mxt_data *data)
...
@@ -1674,23 +1675,7 @@ static int mxt_read_t9_resolution(struct mxt_data *data)
if
(
error
)
if
(
error
)
return
error
;
return
error
;
/* Handle default values */
data
->
xy_switch
=
orient
&
MXT_T9_ORIENT_SWITCH
;
if
(
range
.
x
==
0
)
range
.
x
=
1023
;
if
(
range
.
y
==
0
)
range
.
y
=
1023
;
if
(
orient
&
MXT_T9_ORIENT_SWITCH
)
{
data
->
max_x
=
range
.
y
;
data
->
max_y
=
range
.
x
;
}
else
{
data
->
max_x
=
range
.
x
;
data
->
max_y
=
range
.
y
;
}
dev_dbg
(
&
client
->
dev
,
"Touchscreen size X%uY%u
\n
"
,
data
->
max_x
,
data
->
max_y
);
return
0
;
return
0
;
}
}
...
@@ -1708,13 +1693,14 @@ static int mxt_read_t100_config(struct mxt_data *data)
...
@@ -1708,13 +1693,14 @@ static int mxt_read_t100_config(struct mxt_data *data)
if
(
!
object
)
if
(
!
object
)
return
-
EINVAL
;
return
-
EINVAL
;
/* read touchscreen dimensions */
error
=
__mxt_read_reg
(
client
,
error
=
__mxt_read_reg
(
client
,
object
->
start_address
+
MXT_T100_XRANGE
,
object
->
start_address
+
MXT_T100_XRANGE
,
sizeof
(
range_x
),
&
range_x
);
sizeof
(
range_x
),
&
range_x
);
if
(
error
)
if
(
error
)
return
error
;
return
error
;
le16_to_cpus
(
&
range_x
);
data
->
max_x
=
get_unaligned_le16
(
&
range_x
);
error
=
__mxt_read_reg
(
client
,
error
=
__mxt_read_reg
(
client
,
object
->
start_address
+
MXT_T100_YRANGE
,
object
->
start_address
+
MXT_T100_YRANGE
,
...
@@ -1722,36 +1708,24 @@ static int mxt_read_t100_config(struct mxt_data *data)
...
@@ -1722,36 +1708,24 @@ static int mxt_read_t100_config(struct mxt_data *data)
if
(
error
)
if
(
error
)
return
error
;
return
error
;
le16_to_cpus
(
&
range_y
);
data
->
max_y
=
get_unaligned_le16
(
&
range_y
);
/* read orientation config */
error
=
__mxt_read_reg
(
client
,
error
=
__mxt_read_reg
(
client
,
object
->
start_address
+
MXT_T100_CFG1
,
object
->
start_address
+
MXT_T100_CFG1
,
1
,
&
cfg
);
1
,
&
cfg
);
if
(
error
)
if
(
error
)
return
error
;
return
error
;
data
->
xy_switch
=
cfg
&
MXT_T100_CFG_SWITCHXY
;
/* allocate aux bytes */
error
=
__mxt_read_reg
(
client
,
error
=
__mxt_read_reg
(
client
,
object
->
start_address
+
MXT_T100_TCHAUX
,
object
->
start_address
+
MXT_T100_TCHAUX
,
1
,
&
tchaux
);
1
,
&
tchaux
);
if
(
error
)
if
(
error
)
return
error
;
return
error
;
/* Handle default values */
if
(
range_x
==
0
)
range_x
=
1023
;
if
(
range_y
==
0
)
range_y
=
1023
;
if
(
cfg
&
MXT_T100_CFG_SWITCHXY
)
{
data
->
max_x
=
range_y
;
data
->
max_y
=
range_x
;
}
else
{
data
->
max_x
=
range_x
;
data
->
max_y
=
range_y
;
}
/* allocate aux bytes */
aux
=
6
;
aux
=
6
;
if
(
tchaux
&
MXT_T100_TCHAUX_VECT
)
if
(
tchaux
&
MXT_T100_TCHAUX_VECT
)
...
@@ -1767,9 +1741,6 @@ static int mxt_read_t100_config(struct mxt_data *data)
...
@@ -1767,9 +1741,6 @@ static int mxt_read_t100_config(struct mxt_data *data)
"T100 aux mappings vect:%u ampl:%u area:%u
\n
"
,
"T100 aux mappings vect:%u ampl:%u area:%u
\n
"
,
data
->
t100_aux_vect
,
data
->
t100_aux_ampl
,
data
->
t100_aux_area
);
data
->
t100_aux_vect
,
data
->
t100_aux_ampl
,
data
->
t100_aux_area
);
dev_info
(
&
client
->
dev
,
"T100 Touchscreen size X%uY%u
\n
"
,
data
->
max_x
,
data
->
max_y
);
return
0
;
return
0
;
}
}
...
@@ -1828,6 +1799,19 @@ static int mxt_initialize_input_device(struct mxt_data *data)
...
@@ -1828,6 +1799,19 @@ static int mxt_initialize_input_device(struct mxt_data *data)
return
-
EINVAL
;
return
-
EINVAL
;
}
}
/* Handle default values and orientation switch */
if
(
data
->
max_x
==
0
)
data
->
max_x
=
1023
;
if
(
data
->
max_y
==
0
)
data
->
max_y
=
1023
;
if
(
data
->
xy_switch
)
swap
(
data
->
max_x
,
data
->
max_y
);
dev_info
(
dev
,
"Touchscreen size X%uY%u
\n
"
,
data
->
max_x
,
data
->
max_y
);
/* Register input device */
input_dev
=
input_allocate_device
();
input_dev
=
input_allocate_device
();
if
(
!
input_dev
)
{
if
(
!
input_dev
)
{
dev_err
(
dev
,
"Failed to allocate memory
\n
"
);
dev_err
(
dev
,
"Failed to allocate memory
\n
"
);
...
...
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