Devicetree fixes for v5.16-rc, take 2:
- Revert schema checks on %.dtb targets. This was problematic for some external build tools. - A few DT binding example fixes - Add back dropped 'enet-phy-lane-no-swap' Ethernet PHY property - Drop erroneous if/then schema in nxp,imx7-mipi-csi2 - Add a quirk to fix some interrupt controllers use of 'interrupt-map' -----BEGIN PGP SIGNATURE----- iQJEBAABCgAuFiEEktVUI4SxYhzZyEuo+vtdtY28YcMFAmGz0skQHHJvYmhAa2Vy bmVsLm9yZwAKCRD6+121jbxhw/4QD/9Zxz02K7pi122C1/F3LYJmVAm5T3eTGZ7Z ir7cq3ijoZAP6tPgRSXSWSOVFzVubK6Urw0RV6+Q+xSoMi3Q0OAd/c5T0XId46X7 tDJGTizZR3lFRex1AI9EkFqQI5d8Wo0YeQwh/TH5C442YOWtFljdNElwHN+BmRK8 SpBDnDcGrALCB3vkVEkRP/S1NmaU7XySRvr+EuMVjeEagVs6aI2yKOKDawTrMgk0 R2t2APwVr0tW9ls8H2BMiooxj50o7PVk88PwKppvD+uezQGM4jPpOugBCjiDJz/6 CbDlWnRSRBkmpfbVpHyd5vbkv6kr7W8spE2qui4TcngMkKhaG+Ldk/g1yG1C1Fx2 plzCqV1Wk0GPb2890eQxGefdsU4Yp0iqSZ+c0Gb1MvJcBi3txSxyjuK9GM+AXFK6 thyfDjAYYLE8jzKL5G49ezT6KhcEPdroX9Y6GBcn57t4pK2F/FP4trLjn1yj9kYq nzhjTruElTn1WMFilLTAOrkRxcfx/m+EO1sr8PWdjAWCtdNQMAfVIfSNExR0hPjw hvFPdQfayxCHNsXbFSOzk7wvHX5oIbhHq1XJVfJgf/SuQ1EgAHybZaFjATvYlmRZ otv+pwhsK8qto6DdDZYIVe9gKscQ2BYBN5OSOYMlZsMQyx/OQB0ucJ9cSW5CEO0E h2lXIFothQ== =hYDY -----END PGP SIGNATURE----- Merge tag 'devicetree-fixes-for-5.16-2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux Pull devicetree fixes from Rob Herring: - Revert schema checks on %.dtb targets. This was problematic for some external build tools. - A few DT binding example fixes - Add back dropped 'enet-phy-lane-no-swap' Ethernet PHY property - Drop erroneous if/then schema in nxp,imx7-mipi-csi2 - Add a quirk to fix some interrupt controllers use of 'interrupt-map' * tag 'devicetree-fixes-for-5.16-2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: Revert "kbuild: Enable DT schema checks for %.dtb targets" dt-bindings: bq25980: Fixup the example dt-bindings: input: gpio-keys: Fix interrupts in example dt-bindings: net: Reintroduce PHY no lane swap binding dt-bindings: media: nxp,imx7-mipi-csi2: Drop bad if/then schema of/irq: Add a quirk for controllers with their own definition of interrupt-map dt-bindings: iio: adc: exynos-adc: Fix node name in example
This commit is contained in:
commit
a84e0b3199
|
@ -136,7 +136,7 @@ examples:
|
||||||
samsung,syscon-phandle = <&pmu_system_controller>;
|
samsung,syscon-phandle = <&pmu_system_controller>;
|
||||||
|
|
||||||
/* NTC thermistor is a hwmon device */
|
/* NTC thermistor is a hwmon device */
|
||||||
ncp15wb473 {
|
thermistor {
|
||||||
compatible = "murata,ncp15wb473";
|
compatible = "murata,ncp15wb473";
|
||||||
pullup-uv = <1800000>;
|
pullup-uv = <1800000>;
|
||||||
pullup-ohm = <47000>;
|
pullup-ohm = <47000>;
|
||||||
|
|
|
@ -142,7 +142,7 @@ examples:
|
||||||
down {
|
down {
|
||||||
label = "GPIO Key DOWN";
|
label = "GPIO Key DOWN";
|
||||||
linux,code = <108>;
|
linux,code = <108>;
|
||||||
interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
|
interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -79,6 +79,8 @@ properties:
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
data-lanes:
|
data-lanes:
|
||||||
|
description:
|
||||||
|
Note that 'fsl,imx7-mipi-csi2' only supports up to 2 data lines.
|
||||||
items:
|
items:
|
||||||
minItems: 1
|
minItems: 1
|
||||||
maxItems: 4
|
maxItems: 4
|
||||||
|
@ -91,18 +93,6 @@ properties:
|
||||||
required:
|
required:
|
||||||
- data-lanes
|
- data-lanes
|
||||||
|
|
||||||
allOf:
|
|
||||||
- if:
|
|
||||||
properties:
|
|
||||||
compatible:
|
|
||||||
contains:
|
|
||||||
const: fsl,imx7-mipi-csi2
|
|
||||||
then:
|
|
||||||
properties:
|
|
||||||
data-lanes:
|
|
||||||
items:
|
|
||||||
maxItems: 2
|
|
||||||
|
|
||||||
port@1:
|
port@1:
|
||||||
$ref: /schemas/graph.yaml#/properties/port
|
$ref: /schemas/graph.yaml#/properties/port
|
||||||
description:
|
description:
|
||||||
|
|
|
@ -91,6 +91,14 @@ properties:
|
||||||
compensate for the board being designed with the lanes
|
compensate for the board being designed with the lanes
|
||||||
swapped.
|
swapped.
|
||||||
|
|
||||||
|
enet-phy-lane-no-swap:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/flag
|
||||||
|
description:
|
||||||
|
If set, indicates that PHY will disable swap of the
|
||||||
|
TX/RX lanes. This property allows the PHY to work correcly after
|
||||||
|
e.g. wrong bootstrap configuration caused by issues in PCB
|
||||||
|
layout design.
|
||||||
|
|
||||||
eee-broken-100tx:
|
eee-broken-100tx:
|
||||||
$ref: /schemas/types.yaml#/definitions/flag
|
$ref: /schemas/types.yaml#/definitions/flag
|
||||||
description:
|
description:
|
||||||
|
|
|
@ -105,7 +105,7 @@ examples:
|
||||||
reg = <0x65>;
|
reg = <0x65>;
|
||||||
interrupt-parent = <&gpio1>;
|
interrupt-parent = <&gpio1>;
|
||||||
interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
|
interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
|
||||||
ti,watchdog-timer = <0>;
|
ti,watchdog-timeout-ms = <0>;
|
||||||
ti,sc-ocp-limit-microamp = <2000000>;
|
ti,sc-ocp-limit-microamp = <2000000>;
|
||||||
ti,sc-ovp-limit-microvolt = <17800000>;
|
ti,sc-ovp-limit-microvolt = <17800000>;
|
||||||
monitored-battery = <&bat>;
|
monitored-battery = <&bat>;
|
||||||
|
|
10
Makefile
10
Makefile
|
@ -1374,17 +1374,17 @@ endif
|
||||||
|
|
||||||
ifneq ($(dtstree),)
|
ifneq ($(dtstree),)
|
||||||
|
|
||||||
%.dtb: dt_binding_check include/config/kernel.release scripts_dtc
|
%.dtb: include/config/kernel.release scripts_dtc
|
||||||
$(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@ $(dtstree)/$*.dt.yaml
|
$(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@
|
||||||
|
|
||||||
%.dtbo: dt_binding_check include/config/kernel.release scripts_dtc
|
%.dtbo: include/config/kernel.release scripts_dtc
|
||||||
$(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@ $(dtstree)/$*.dt.yaml
|
$(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@
|
||||||
|
|
||||||
PHONY += dtbs dtbs_install dtbs_check
|
PHONY += dtbs dtbs_install dtbs_check
|
||||||
dtbs: include/config/kernel.release scripts_dtc
|
dtbs: include/config/kernel.release scripts_dtc
|
||||||
$(Q)$(MAKE) $(build)=$(dtstree)
|
$(Q)$(MAKE) $(build)=$(dtstree)
|
||||||
|
|
||||||
ifneq ($(filter dtbs_check %.dtb %.dtbo, $(MAKECMDGOALS)),)
|
ifneq ($(filter dtbs_check, $(MAKECMDGOALS)),)
|
||||||
export CHECK_DTBS=y
|
export CHECK_DTBS=y
|
||||||
dtbs: dt_binding_check
|
dtbs: dt_binding_check
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -76,6 +76,26 @@ struct device_node *of_irq_find_parent(struct device_node *child)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(of_irq_find_parent);
|
EXPORT_SYMBOL_GPL(of_irq_find_parent);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* These interrupt controllers abuse interrupt-map for unspeakable
|
||||||
|
* reasons and rely on the core code to *ignore* it (the drivers do
|
||||||
|
* their own parsing of the property).
|
||||||
|
*
|
||||||
|
* If you think of adding to the list for something *new*, think
|
||||||
|
* again. There is a high chance that you will be sent back to the
|
||||||
|
* drawing board.
|
||||||
|
*/
|
||||||
|
static const char * const of_irq_imap_abusers[] = {
|
||||||
|
"CBEA,platform-spider-pic",
|
||||||
|
"sti,platform-spider-pic",
|
||||||
|
"realtek,rtl-intc",
|
||||||
|
"fsl,ls1021a-extirq",
|
||||||
|
"fsl,ls1043a-extirq",
|
||||||
|
"fsl,ls1088a-extirq",
|
||||||
|
"renesas,rza1-irqc",
|
||||||
|
NULL,
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* of_irq_parse_raw - Low level interrupt tree parsing
|
* of_irq_parse_raw - Low level interrupt tree parsing
|
||||||
* @addr: address specifier (start of "reg" property of the device) in be32 format
|
* @addr: address specifier (start of "reg" property of the device) in be32 format
|
||||||
|
@ -159,12 +179,15 @@ int of_irq_parse_raw(const __be32 *addr, struct of_phandle_args *out_irq)
|
||||||
/*
|
/*
|
||||||
* Now check if cursor is an interrupt-controller and
|
* Now check if cursor is an interrupt-controller and
|
||||||
* if it is then we are done, unless there is an
|
* if it is then we are done, unless there is an
|
||||||
* interrupt-map which takes precedence.
|
* interrupt-map which takes precedence except on one
|
||||||
|
* of these broken platforms that want to parse
|
||||||
|
* interrupt-map themselves for $reason.
|
||||||
*/
|
*/
|
||||||
bool intc = of_property_read_bool(ipar, "interrupt-controller");
|
bool intc = of_property_read_bool(ipar, "interrupt-controller");
|
||||||
|
|
||||||
imap = of_get_property(ipar, "interrupt-map", &imaplen);
|
imap = of_get_property(ipar, "interrupt-map", &imaplen);
|
||||||
if (imap == NULL && intc) {
|
if (intc &&
|
||||||
|
(!imap || of_device_compatible_match(ipar, of_irq_imap_abusers))) {
|
||||||
pr_debug(" -> got it !\n");
|
pr_debug(" -> got it !\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue