aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/of/unittest-data/Makefile19
-rw-r--r--drivers/of/unittest-data/overlay.dts25
-rw-r--r--drivers/of/unittest-data/overlay_bad_symbol.dts22
-rw-r--r--drivers/of/unittest-data/overlay_base.dts11
-rw-r--r--drivers/of/unittest.c10
5 files changed, 79 insertions, 8 deletions
diff --git a/drivers/of/unittest-data/Makefile b/drivers/of/unittest-data/Makefile
index 6e00a9c69e58..2d135fba94c1 100644
--- a/drivers/of/unittest-data/Makefile
+++ b/drivers/of/unittest-data/Makefile
@@ -1,18 +1,27 @@
1obj-y += testcases.dtb.o 1obj-y += testcases.dtb.o
2
3targets += testcases.dtb testcases.dtb.S
4
5ifdef CONFIG_OF_OVERLAY
6
2obj-y += overlay.dtb.o 7obj-y += overlay.dtb.o
3obj-y += overlay_bad_phandle.dtb.o 8obj-y += overlay_bad_phandle.dtb.o
9obj-y += overlay_bad_symbol.dtb.o
4obj-y += overlay_base.dtb.o 10obj-y += overlay_base.dtb.o
5 11
6targets += testcases.dtb testcases.dtb.S
7targets += overlay.dtb overlay.dtb.S 12targets += overlay.dtb overlay.dtb.S
8targets += overlay_bad_phandle.dtb overlay_bad_phandle.dtb.S 13targets += overlay_bad_phandle.dtb overlay_bad_phandle.dtb.S
14targets += overlay_bad_symbol.dtb overlay_bad_symbol.dtb.S
9targets += overlay_base.dtb overlay_base.dtb.S 15targets += overlay_base.dtb overlay_base.dtb.S
10 16
11.PRECIOUS: \
12 $(obj)/%.dtb.S \
13 $(obj)/%.dtb
14
15# enable creation of __symbols__ node 17# enable creation of __symbols__ node
16DTC_FLAGS_overlay := -@ 18DTC_FLAGS_overlay := -@
17DTC_FLAGS_overlay_bad_phandle := -@ 19DTC_FLAGS_overlay_bad_phandle := -@
20DTC_FLAGS_overlay_bad_symbol := -@
18DTC_FLAGS_overlay_base := -@ 21DTC_FLAGS_overlay_base := -@
22
23endif
24
25.PRECIOUS: \
26 $(obj)/%.dtb.S \
27 $(obj)/%.dtb
diff --git a/drivers/of/unittest-data/overlay.dts b/drivers/of/unittest-data/overlay.dts
index 6cd7e6a0c13e..60abf5b55cae 100644
--- a/drivers/of/unittest-data/overlay.dts
+++ b/drivers/of/unittest-data/overlay.dts
@@ -25,7 +25,22 @@
25 #size-cells = <1>; 25 #size-cells = <1>;
26 status = "ok"; 26 status = "ok";
27 27
28 ride@200 { 28 ride@100 {
29 #address-cells = <1>;
30 #size-cells = <1>;
31
32 track@30 {
33 incline-up = < 48 32 16 >;
34 };
35
36 track@40 {
37 incline-up = < 47 31 15 >;
38 };
39 };
40
41 ride_200: ride@200 {
42 #address-cells = <1>;
43 #size-cells = <1>;
29 compatible = "ot,ferris-wheel"; 44 compatible = "ot,ferris-wheel";
30 reg = < 0x00000200 0x100 >; 45 reg = < 0x00000200 0x100 >;
31 hvac-provider = < &hvac_2 >; 46 hvac-provider = < &hvac_2 >;
@@ -36,6 +51,14 @@
36 spin-rph = < 30 >; 51 spin-rph = < 30 >;
37 gondolas = < 16 >; 52 gondolas = < 16 >;
38 gondola-capacity = < 6 >; 53 gondola-capacity = < 6 >;
54
55 ride_200_left: track@10 {
56 reg = < 0x00000010 0x10 >;
57 };
58
59 ride_200_right: track@20 {
60 reg = < 0x00000020 0x10 >;
61 };
39 }; 62 };
40 }; 63 };
41 }; 64 };
diff --git a/drivers/of/unittest-data/overlay_bad_symbol.dts b/drivers/of/unittest-data/overlay_bad_symbol.dts
new file mode 100644
index 000000000000..09261cb9a67e
--- /dev/null
+++ b/drivers/of/unittest-data/overlay_bad_symbol.dts
@@ -0,0 +1,22 @@
1/dts-v1/;
2/plugin/;
3
4/ {
5
6 fragment@0 {
7 target = <&electric_1>;
8
9 __overlay__ {
10
11 // This label should cause an error when the overlay
12 // is applied. There is already a symbol hvac_1
13 // in the base tree
14 hvac_1: hvac-medium-2 {
15 compatible = "ot,hvac-medium";
16 heat-range = < 50 75 >;
17 cool-range = < 60 80 >;
18 };
19
20 };
21 };
22};
diff --git a/drivers/of/unittest-data/overlay_base.dts b/drivers/of/unittest-data/overlay_base.dts
index 5566b27fb61a..453d0bd83320 100644
--- a/drivers/of/unittest-data/overlay_base.dts
+++ b/drivers/of/unittest-data/overlay_base.dts
@@ -44,6 +44,8 @@
44 orientation = < 127 >; 44 orientation = < 127 >;
45 45
46 ride@100 { 46 ride@100 {
47 #address-cells = <1>;
48 #size-cells = <1>;
47 compatible = "ot,roller-coaster"; 49 compatible = "ot,roller-coaster";
48 reg = < 0x00000100 0x100 >; 50 reg = < 0x00000100 0x100 >;
49 hvac-provider = < &hvac_1 >; 51 hvac-provider = < &hvac_1 >;
@@ -53,6 +55,15 @@
53 spin-controller = < &spin_ctrl_2 5 &spin_ctrl_2 7 >; 55 spin-controller = < &spin_ctrl_2 5 &spin_ctrl_2 7 >;
54 spin-controller-names = "track_1", "track_2"; 56 spin-controller-names = "track_1", "track_2";
55 queues = < 2 >; 57 queues = < 2 >;
58
59 track@30 {
60 reg = < 0x00000030 0x10 >;
61 };
62
63 track@40 {
64 reg = < 0x00000040 0x10 >;
65 };
66
56 }; 67 };
57 }; 68 };
58 69
diff --git a/drivers/of/unittest.c b/drivers/of/unittest.c
index 0959e8cc8814..29a35cb1da64 100644
--- a/drivers/of/unittest.c
+++ b/drivers/of/unittest.c
@@ -1994,6 +1994,8 @@ out:
1994static inline void __init of_unittest_overlay(void) { } 1994static inline void __init of_unittest_overlay(void) { }
1995#endif 1995#endif
1996 1996
1997#ifdef CONFIG_OF_OVERLAY
1998
1997/* 1999/*
1998 * __dtb_ot_begin[] and __dtb_ot_end[] are created by cmd_dt_S_dtb 2000 * __dtb_ot_begin[] and __dtb_ot_end[] are created by cmd_dt_S_dtb
1999 * in scripts/Makefile.lib 2001 * in scripts/Makefile.lib
@@ -2021,14 +2023,14 @@ struct overlay_info {
2021OVERLAY_INFO_EXTERN(overlay_base); 2023OVERLAY_INFO_EXTERN(overlay_base);
2022OVERLAY_INFO_EXTERN(overlay); 2024OVERLAY_INFO_EXTERN(overlay);
2023OVERLAY_INFO_EXTERN(overlay_bad_phandle); 2025OVERLAY_INFO_EXTERN(overlay_bad_phandle);
2024 2026OVERLAY_INFO_EXTERN(overlay_bad_symbol);
2025#ifdef CONFIG_OF_OVERLAY
2026 2027
2027/* order of entries is hard-coded into users of overlays[] */ 2028/* order of entries is hard-coded into users of overlays[] */
2028static struct overlay_info overlays[] = { 2029static struct overlay_info overlays[] = {
2029 OVERLAY_INFO(overlay_base, -9999), 2030 OVERLAY_INFO(overlay_base, -9999),
2030 OVERLAY_INFO(overlay, 0), 2031 OVERLAY_INFO(overlay, 0),
2031 OVERLAY_INFO(overlay_bad_phandle, -EINVAL), 2032 OVERLAY_INFO(overlay_bad_phandle, -EINVAL),
2033 OVERLAY_INFO(overlay_bad_symbol, -EINVAL),
2032 {} 2034 {}
2033}; 2035};
2034 2036
@@ -2300,6 +2302,10 @@ static __init void of_unittest_overlay_high_level(void)
2300 2302
2301 unittest(overlay_data_add(2), 2303 unittest(overlay_data_add(2),
2302 "Adding overlay 'overlay_bad_phandle' failed\n"); 2304 "Adding overlay 'overlay_bad_phandle' failed\n");
2305
2306 unittest(overlay_data_add(3),
2307 "Adding overlay 'overlay_bad_symbol' failed\n");
2308
2303 return; 2309 return;
2304 2310
2305err_unlock: 2311err_unlock: