of: Add unit tests for applying overlays
Existing overlay unit tests examine individual pieces of the overlay code. The new tests target the entire process of applying an overlay. Signed-off-by: Frank Rowand <frank.rowand@sony.com> Signed-off-by: Rob Herring <robh@kernel.org>
This commit is contained in:

committed by
Rob Herring

parent
331f741679
commit
81d0848fc8
@@ -1,7 +1,18 @@
|
||||
obj-y += testcases.dtb.o
|
||||
obj-y += overlay.dtb.o
|
||||
obj-y += overlay_bad_phandle.dtb.o
|
||||
obj-y += overlay_base.dtb.o
|
||||
|
||||
targets += testcases.dtb testcases.dtb.S
|
||||
targets += overlay.dtb overlay.dtb.S
|
||||
targets += overlay_bad_phandle.dtb overlay_bad_phandle.dtb.S
|
||||
targets += overlay_base.dtb overlay_base.dtb.S
|
||||
|
||||
.SECONDARY: \
|
||||
$(obj)/testcases.dtb.S \
|
||||
$(obj)/testcases.dtb
|
||||
.PRECIOUS: \
|
||||
$(obj)/%.dtb.S \
|
||||
$(obj)/%.dtb
|
||||
|
||||
# enable creation of __symbols__ node
|
||||
DTC_FLAGS_overlay := -@
|
||||
DTC_FLAGS_overlay_bad_phandle := -@
|
||||
DTC_FLAGS_overlay_base := -@
|
||||
|
53
drivers/of/unittest-data/overlay.dts
Normal file
53
drivers/of/unittest-data/overlay.dts
Normal file
@@ -0,0 +1,53 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
|
||||
fragment@0 {
|
||||
target = <&electric_1>;
|
||||
|
||||
__overlay__ {
|
||||
status = "ok";
|
||||
|
||||
hvac_2: hvac-large-1 {
|
||||
compatible = "ot,hvac-large";
|
||||
heat-range = < 40 75 >;
|
||||
cool-range = < 65 80 >;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&rides_1>;
|
||||
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
status = "ok";
|
||||
|
||||
ride@200 {
|
||||
compatible = "ot,ferris-wheel";
|
||||
reg = < 0x00000200 0x100 >;
|
||||
hvac-provider = < &hvac_2 >;
|
||||
hvac-thermostat = < 27 32 > ;
|
||||
hvac-zones = < 12 5 >;
|
||||
hvac-zone-names = "operator", "snack-bar";
|
||||
spin-controller = < &spin_ctrl_1 3 >;
|
||||
spin-rph = < 30 >;
|
||||
gondolas = < 16 >;
|
||||
gondola-capacity = < 6 >;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&lights_2>;
|
||||
|
||||
__overlay__ {
|
||||
status = "ok";
|
||||
color = "purple", "white", "red", "green";
|
||||
rate = < 3 256 >;
|
||||
};
|
||||
};
|
||||
|
||||
};
|
20
drivers/of/unittest-data/overlay_bad_phandle.dts
Normal file
20
drivers/of/unittest-data/overlay_bad_phandle.dts
Normal file
@@ -0,0 +1,20 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
|
||||
fragment@0 {
|
||||
target = <&electric_1>;
|
||||
|
||||
__overlay__ {
|
||||
|
||||
// This label should cause an error when the overlay
|
||||
// is applied. There is already a phandle value
|
||||
// in the base tree for motor-1.
|
||||
spin_ctrl_1_conflict: motor-1 {
|
||||
accelerate = < 3 >;
|
||||
decelerate = < 5 >;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
80
drivers/of/unittest-data/overlay_base.dts
Normal file
80
drivers/of/unittest-data/overlay_base.dts
Normal file
@@ -0,0 +1,80 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/*
|
||||
* Base device tree that overlays will be applied against.
|
||||
*
|
||||
* Do not add any properties in node "/".
|
||||
* Do not add any nodes other than "/testcase-data-2" in node "/".
|
||||
* Do not add anything that would result in dtc creating node "/__fixups__".
|
||||
* dtc will create nodes "/__symbols__" and "/__local_fixups__".
|
||||
*/
|
||||
|
||||
/ {
|
||||
testcase-data-2 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
electric_1: substation@100 {
|
||||
compatible = "ot,big-volts-control";
|
||||
reg = < 0x00000100 0x100 >;
|
||||
status = "disabled";
|
||||
|
||||
hvac_1: hvac-medium-1 {
|
||||
compatible = "ot,hvac-medium";
|
||||
heat-range = < 50 75 >;
|
||||
cool-range = < 60 80 >;
|
||||
};
|
||||
|
||||
spin_ctrl_1: motor-1 {
|
||||
compatible = "ot,ferris-wheel-motor";
|
||||
spin = "clockwise";
|
||||
};
|
||||
|
||||
spin_ctrl_2: motor-8 {
|
||||
compatible = "ot,roller-coaster-motor";
|
||||
};
|
||||
};
|
||||
|
||||
rides_1: fairway-1 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "ot,rides";
|
||||
status = "disabled";
|
||||
orientation = < 127 >;
|
||||
|
||||
ride@100 {
|
||||
compatible = "ot,roller-coaster";
|
||||
reg = < 0x00000100 0x100 >;
|
||||
hvac-provider = < &hvac_1 >;
|
||||
hvac-thermostat = < 29 > ;
|
||||
hvac-zones = < 14 >;
|
||||
hvac-zone-names = "operator";
|
||||
spin-controller = < &spin_ctrl_2 5 &spin_ctrl_2 7 >;
|
||||
spin-controller-names = "track_1", "track_2";
|
||||
queues = < 2 >;
|
||||
};
|
||||
};
|
||||
|
||||
lights_1: lights@30000 {
|
||||
compatible = "ot,work-lights";
|
||||
reg = < 0x00030000 0x1000 >;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
lights_2: lights@40000 {
|
||||
compatible = "ot,show-lights";
|
||||
reg = < 0x00040000 0x1000 >;
|
||||
status = "disabled";
|
||||
rate = < 13 138 >;
|
||||
};
|
||||
|
||||
retail_1: vending@50000 {
|
||||
reg = < 0x00050000 0x1000 >;
|
||||
compatible = "ot,tickets";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
Reference in New Issue
Block a user