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
Kirill Smelkov
linux
Commits
435fda26
Commit
435fda26
authored
Jun 20, 2020
by
Linus Walleij
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'ib-for-each-requested' of /home/linus/linux-gpio into devel
parents
b1a05ba9
5bae1f08
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
24 additions
and
23 deletions
+24
-23
arch/arm/plat-orion/gpio.c
arch/arm/plat-orion/gpio.c
+2
-6
drivers/gpio/gpio-mvebu.c
drivers/gpio/gpio-mvebu.c
+2
-6
drivers/gpio/gpio-xra1403.c
drivers/gpio/gpio-xra1403.c
+2
-6
drivers/pinctrl/pinctrl-at91.c
drivers/pinctrl/pinctrl-at91.c
+2
-5
include/linux/gpio/driver.h
include/linux/gpio/driver.h
+16
-0
No files found.
arch/arm/plat-orion/gpio.c
View file @
435fda26
...
...
@@ -442,6 +442,7 @@ static void orion_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip)
struct
orion_gpio_chip
*
ochip
=
gpiochip_get_data
(
chip
);
u32
out
,
io_conf
,
blink
,
in_pol
,
data_in
,
cause
,
edg_msk
,
lvl_msk
;
const
char
*
label
;
int
i
;
out
=
readl_relaxed
(
GPIO_OUT
(
ochip
));
...
...
@@ -453,15 +454,10 @@ static void orion_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip)
edg_msk
=
readl_relaxed
(
GPIO_EDGE_MASK
(
ochip
));
lvl_msk
=
readl_relaxed
(
GPIO_LEVEL_MASK
(
ochip
));
for
(
i
=
0
;
i
<
chip
->
ngpio
;
i
++
)
{
const
char
*
label
;
for_each_requested_gpio
(
chip
,
i
,
label
)
{
u32
msk
;
bool
is_out
;
label
=
gpiochip_is_requested
(
chip
,
i
);
if
(
!
label
)
continue
;
msk
=
1
<<
i
;
is_out
=
!
(
io_conf
&
msk
);
...
...
drivers/gpio/gpio-mvebu.c
View file @
435fda26
...
...
@@ -846,6 +846,7 @@ static void mvebu_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip)
{
struct
mvebu_gpio_chip
*
mvchip
=
gpiochip_get_data
(
chip
);
u32
out
,
io_conf
,
blink
,
in_pol
,
data_in
,
cause
,
edg_msk
,
lvl_msk
;
const
char
*
label
;
int
i
;
regmap_read
(
mvchip
->
regs
,
GPIO_OUT_OFF
+
mvchip
->
offset
,
&
out
);
...
...
@@ -857,15 +858,10 @@ static void mvebu_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip)
edg_msk
=
mvebu_gpio_read_edge_mask
(
mvchip
);
lvl_msk
=
mvebu_gpio_read_level_mask
(
mvchip
);
for
(
i
=
0
;
i
<
chip
->
ngpio
;
i
++
)
{
const
char
*
label
;
for_each_requested_gpio
(
chip
,
i
,
label
)
{
u32
msk
;
bool
is_out
;
label
=
gpiochip_is_requested
(
chip
,
i
);
if
(
!
label
)
continue
;
msk
=
BIT
(
i
);
is_out
=
!
(
io_conf
&
msk
);
...
...
drivers/gpio/gpio-xra1403.c
View file @
435fda26
...
...
@@ -121,6 +121,7 @@ static void xra1403_dbg_show(struct seq_file *s, struct gpio_chip *chip)
struct
xra1403
*
xra
=
gpiochip_get_data
(
chip
);
int
value
[
XRA_LAST
];
int
i
;
const
char
*
label
;
unsigned
int
gcr
;
unsigned
int
gsr
;
...
...
@@ -136,12 +137,7 @@ static void xra1403_dbg_show(struct seq_file *s, struct gpio_chip *chip)
gcr
=
value
[
XRA_GCR
+
1
]
<<
8
|
value
[
XRA_GCR
];
gsr
=
value
[
XRA_GSR
+
1
]
<<
8
|
value
[
XRA_GSR
];
for
(
i
=
0
;
i
<
chip
->
ngpio
;
i
++
)
{
const
char
*
label
=
gpiochip_is_requested
(
chip
,
i
);
if
(
!
label
)
continue
;
for_each_requested_gpio
(
chip
,
i
,
label
)
{
seq_printf
(
s
,
" gpio-%-3d (%-12s) %s %s
\n
"
,
chip
->
base
+
i
,
label
,
(
gcr
&
BIT
(
i
))
?
"in"
:
"out"
,
...
...
drivers/pinctrl/pinctrl-at91.c
View file @
435fda26
...
...
@@ -1486,14 +1486,11 @@ static void at91_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip)
int
i
;
struct
at91_gpio_chip
*
at91_gpio
=
gpiochip_get_data
(
chip
);
void
__iomem
*
pio
=
at91_gpio
->
regbase
;
const
char
*
gpio_label
;
for
(
i
=
0
;
i
<
chip
->
ngpio
;
i
++
)
{
for
_each_requested_gpio
(
chip
,
i
,
gpio_label
)
{
unsigned
mask
=
pin_to_mask
(
i
);
const
char
*
gpio_label
;
gpio_label
=
gpiochip_is_requested
(
chip
,
i
);
if
(
!
gpio_label
)
continue
;
mode
=
at91_gpio
->
ops
->
get_periph
(
pio
,
mask
);
seq_printf
(
s
,
"[%s] GPIO%s%d: "
,
gpio_label
,
chip
->
label
,
i
);
...
...
include/linux/gpio/driver.h
View file @
435fda26
...
...
@@ -474,6 +474,22 @@ struct gpio_chip {
extern
const
char
*
gpiochip_is_requested
(
struct
gpio_chip
*
gc
,
unsigned
int
offset
);
/**
* for_each_requested_gpio_in_range - iterates over requested GPIOs in a given range
* @chip: the chip to query
* @i: loop variable
* @base: first GPIO in the range
* @size: amount of GPIOs to check starting from @base
* @label: label of current GPIO
*/
#define for_each_requested_gpio_in_range(chip, i, base, size, label) \
for (i = 0; i < size; i++) \
if ((label = gpiochip_is_requested(chip, base + i)) == NULL) {} else
/* Iterates over all requested GPIO of the given @chip */
#define for_each_requested_gpio(chip, i, label) \
for_each_requested_gpio_in_range(chip, i, 0, chip->ngpio, label)
/* add/remove chips */
extern
int
gpiochip_add_data_with_key
(
struct
gpio_chip
*
gc
,
void
*
data
,
struct
lock_class_key
*
lock_key
,
...
...
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