mirror of
https://github.com/dgibson/dtc.git
synced 2026-04-12 00:47:46 -04:00
checks: Add an interrupt-map check
Add a check for parsing 'interrupt-map' properties. The check primarily tests parsing 'interrupt-map' properties which depends on and the parent interrupt controller (or another map) node. Note that this does not require '#address-cells' in the interrupt-map parent, but treats missing '#address-cells' as 0 which is how the Linux kernel parses it. There's numerous cases that expect this behavior. Cc: Andre Przywara <andre.przywara@arm.com> Signed-off-by: Rob Herring <robh@kernel.org> Message-Id: <20211015213527.2237774-1-robh@kernel.org> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
8fd24744e3
commit
0a3a9d3449
5 changed files with 144 additions and 0 deletions
20
tests/bad-interrupt-map-mask.dts
Normal file
20
tests/bad-interrupt-map-mask.dts
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
/dts-v1/;
|
||||
|
||||
/ {
|
||||
interrupt-parent = <&intc>;
|
||||
intc: interrupt-controller {
|
||||
#interrupt-cells = <3>;
|
||||
interrupt-controller;
|
||||
};
|
||||
|
||||
node {
|
||||
#address-cells = <0>;
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-map = <1 &intc 1 2 3>;
|
||||
interrupt-map-mask = <0 0>;
|
||||
|
||||
child {
|
||||
interrupts = <1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
17
tests/bad-interrupt-map-parent.dts
Normal file
17
tests/bad-interrupt-map-parent.dts
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
/dts-v1/;
|
||||
|
||||
/ {
|
||||
interrupt-parent = <&intc>;
|
||||
intc: interrupt-controller {
|
||||
};
|
||||
|
||||
node {
|
||||
#address-cells = <0>;
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-map = <1 &intc 1 2 3>;
|
||||
|
||||
child {
|
||||
interrupts = <1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
19
tests/bad-interrupt-map.dts
Normal file
19
tests/bad-interrupt-map.dts
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
/dts-v1/;
|
||||
|
||||
/ {
|
||||
interrupt-parent = <&intc>;
|
||||
intc: interrupt-controller {
|
||||
#interrupt-cells = <3>;
|
||||
interrupt-controller;
|
||||
};
|
||||
|
||||
node {
|
||||
/* Missing #address-cells = <0>; */
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-map = <1 &intc 1 2 3>;
|
||||
|
||||
child {
|
||||
interrupts = <1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
@ -717,6 +717,9 @@ dtc_tests () {
|
|||
run_sh_test "$SRCDIR/dtc-checkfails.sh" -n deprecated_gpio_property -- -Wdeprecated_gpio_property -I dts -O dtb "$SRCDIR/good-gpio.dts"
|
||||
check_tests "$SRCDIR/bad-interrupt-cells.dts" interrupts_property
|
||||
check_tests "$SRCDIR/bad-interrupt-controller.dts" interrupt_provider
|
||||
check_tests "$SRCDIR/bad-interrupt-map.dts" interrupt_map
|
||||
check_tests "$SRCDIR/bad-interrupt-map-parent.dts" interrupt_map
|
||||
check_tests "$SRCDIR/bad-interrupt-map-mask.dts" interrupt_map
|
||||
run_sh_test "$SRCDIR/dtc-checkfails.sh" node_name_chars -- -I dtb -O dtb bad_node_char.dtb
|
||||
run_sh_test "$SRCDIR/dtc-checkfails.sh" node_name_format -- -I dtb -O dtb bad_node_format.dtb
|
||||
run_sh_test "$SRCDIR/dtc-checkfails.sh" property_name_chars -- -I dtb -O dtb bad_prop_char.dtb
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue