of: unittest: add overlay gpio test to catch gpio hog problem
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>
This commit is contained in:
@@ -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 += -@
|
||||
|
23
drivers/of/unittest-data/overlay_gpio_01.dts
Normal file
23
drivers/of/unittest-data/overlay_gpio_01.dts
Normal file
@@ -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
drivers/of/unittest-data/overlay_gpio_02a.dts
Normal file
16
drivers/of/unittest-data/overlay_gpio_02a.dts
Normal file
@@ -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
drivers/of/unittest-data/overlay_gpio_02b.dts
Normal file
16
drivers/of/unittest-data/overlay_gpio_02b.dts
Normal file
@@ -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
drivers/of/unittest-data/overlay_gpio_03.dts
Normal file
23
drivers/of/unittest-data/overlay_gpio_03.dts
Normal file
@@ -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
drivers/of/unittest-data/overlay_gpio_04a.dts
Normal file
16
drivers/of/unittest-data/overlay_gpio_04a.dts
Normal file
@@ -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
drivers/of/unittest-data/overlay_gpio_04b.dts
Normal file
16
drivers/of/unittest-data/overlay_gpio_04b.dts
Normal file
@@ -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";
|
||||
};
|
||||
};
|
||||
};
|
مرجع در شماره جدید
Block a user