Skip to content

Commit

Permalink
of: unittest: add overlay gpio test to catch gpio hog problem
Browse files Browse the repository at this point in the history
Geert reports that gpio hog nodes are not properly processed when
the gpio hog node is added via an overlay reply and provides an
RFC patch to fix the problem [1].

Add a unittest that shows the problem.  Unittest will report "1 failed"
test before applying Geert's RFC patch and "0 failed" after applying
Geert's RFC patch.

[1] https://lore.kernel.org/linux-devicetree/20191230133852.5890-1-geert+renesas@glider.be/

Signed-off-by: Frank Rowand <frank.rowand@sony.com>
Signed-off-by: Rob Herring <robh@kernel.org>
  • Loading branch information
Frank Rowand authored and Rob Herring committed Feb 26, 2020
1 parent 2f7afc3 commit f4056e7
Show file tree
Hide file tree
Showing 8 changed files with 370 additions and 1 deletion.
8 changes: 7 additions & 1 deletion drivers/of/unittest-data/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,13 @@ obj-$(CONFIG_OF_OVERLAY) += overlay.dtb.o \
overlay_bad_add_dup_prop.dtb.o \
overlay_bad_phandle.dtb.o \
overlay_bad_symbol.dtb.o \
overlay_base.dtb.o
overlay_base.dtb.o \
overlay_gpio_01.dtb.o \
overlay_gpio_02a.dtb.o \
overlay_gpio_02b.dtb.o \
overlay_gpio_03.dtb.o \
overlay_gpio_04a.dtb.o \
overlay_gpio_04b.dtb.o

# enable creation of __symbols__ node
DTC_FLAGS_overlay += -@
Expand Down
23 changes: 23 additions & 0 deletions drivers/of/unittest-data/overlay_gpio_01.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
/plugin/;

&unittest_test_bus {
#address-cells = <1>;
#size-cells = <0>;
gpio@0 {
compatible = "unittest-gpio";
reg = <0>;
gpio-controller;
#gpio-cells = <2>;
ngpios = <2>;
gpio-line-names = "line-A", "line-B";

line-b {
gpio-hog;
gpios = <2 0>;
input;
line-name = "line-B-input";
};
};
};
16 changes: 16 additions & 0 deletions drivers/of/unittest-data/overlay_gpio_02a.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
/plugin/;

&unittest_test_bus {
#address-cells = <1>;
#size-cells = <0>;
gpio@2 {
compatible = "unittest-gpio";
reg = <2>;
gpio-controller;
#gpio-cells = <2>;
ngpios = <2>;
gpio-line-names = "line-A", "line-B";
};
};
16 changes: 16 additions & 0 deletions drivers/of/unittest-data/overlay_gpio_02b.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
/plugin/;

&unittest_test_bus {
#address-cells = <1>;
#size-cells = <0>;
gpio@2 {
line-a {
gpio-hog;
gpios = <1 0>;
input;
line-name = "line-A-input";
};
};
};
23 changes: 23 additions & 0 deletions drivers/of/unittest-data/overlay_gpio_03.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
/plugin/;

&unittest_test_bus {
#address-cells = <1>;
#size-cells = <0>;
gpio@3 {
compatible = "unittest-gpio";
reg = <3>;
gpio-controller;
#gpio-cells = <2>;
ngpios = <2>;
gpio-line-names = "line-A", "line-B", "line-C", "line-D";

line-d {
gpio-hog;
gpios = <4 0>;
input;
line-name = "line-D-input";
};
};
};
16 changes: 16 additions & 0 deletions drivers/of/unittest-data/overlay_gpio_04a.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
/plugin/;

&unittest_test_bus {
#address-cells = <1>;
#size-cells = <0>;
gpio@4 {
compatible = "unittest-gpio";
reg = <4>;
gpio-controller;
#gpio-cells = <2>;
ngpios = <2>;
gpio-line-names = "line-A", "line-B", "line-C", "line-D";
};
};
16 changes: 16 additions & 0 deletions drivers/of/unittest-data/overlay_gpio_04b.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
/plugin/;

&unittest_test_bus {
#address-cells = <1>;
#size-cells = <0>;
gpio@4 {
line-c {
gpio-hog;
gpios = <3 0>;
input;
line-name = "line-C-input";
};
};
};
Loading

0 comments on commit f4056e7

Please sign in to comment.