Commit ab522e14 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull devicetree updates from Rob Herring:
 "DT core:

   - Add cleanup.h based auto release of struct device_node pointers via
     __free marking and new for_each_child_of_node_scoped() iterator to
     use it.

   - Always create a base skeleton DT when CONFIG_OF is enabled. This
     supports several usecases of adding DT data on non-DT booted
     systems.

   - Move around some /reserved-memory code in preparation for further
     improvements

   - Add a stub for_each_property_of_node() for !OF

   - Adjust the printk levels on some messages

   - Fix __be32 sparse warning

   - Drop RESERVEDMEM_OF_DECLARE usage from Freescale qbman driver
     (currently orphaned)

   - Add Saravana Kannan and drop Frank Rowand as DT maintainers

  DT bindings:

   - Convert Mediatek timer, Mediatek sysirq, fsl,imx6ul-tsc,
     fsl,imx6ul-pinctrl, Atmel AIC, Atmel HLCDC, FPGA region, and
     xlnx,sd-fec to DT schemas

   - Add existing, but undocumented fsl,imx-anatop binding

   - Add bunch of undocumented vendor prefixes used in compatible
     strings

   - Drop obsolete brcm,bcm2835-pm-wdt binding

   - Drop obsolete i2c.txt which as been replaced with schema in
     dtschema

   - Add DPS310 device and sort trivial-devices.yaml

   - Enable undocumented compatible checks on DT binding examples

   - More QCom maintainer fixes/updates

   - Updates to writing-schema.rst and DT submitting-patches.rst to
     cover some frequent review comments

   - Clean-up SPDX tags to use 'OR' rather than 'or'"

* tag 'devicetree-for-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (56 commits)
  dt-bindings: soc: imx: fsl,imx-anatop: add imx6q regulators
  of: unittest: Use for_each_child_of_node_scoped()
  of: Introduce for_each_*_child_of_node_scoped() to automate of_node_put() handling
  of: Add cleanup.h based auto release via __free(device_node) markings
  of: Move all FDT reserved-memory handling into of_reserved_mem.c
  of: Add KUnit test to confirm DTB is loaded
  of: unittest: treat missing of_root as error instead of fixing up
  x86/of: Unconditionally call unflatten_and_copy_device_tree()
  um: Unconditionally call unflatten_device_tree()
  of: Create of_root if no dtb provided by firmware
  of: Always unflatten in unflatten_and_copy_device_tree()
  dt-bindings: timer: mediatek: Convert to json-schema
  dt-bindings: interrupt-controller: fsl,intmux: Include power-domains support
  soc: fsl: qbman: Remove RESERVEDMEM_OF_DECLARE usage
  dt-bindings: fsl-imx-sdma: fix HDMI audio index
  dt-bindings: soc: imx: fsl,imx-iomuxc-gpr: add imx6
  dt-bindings: soc: imx: fsl,imx-anatop: add binding
  dt-bindings: input: touchscreen: fsl,imx6ul-tsc convert to YAML
  dt-bindings: pinctrl: fsl,imx6ul-pinctrl: convert to YAML
  of: make for_each_property_of_node() available to to !OF
  ...
parents 3c5d127f 7e98fe49
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -64,9 +64,6 @@ override DTC_FLAGS := \
	-Wno-unique_unit_address \
	-Wunique_unit_address_if_enabled

# Disable undocumented compatible checks until warning free
override DT_CHECKER_FLAGS ?=

$(obj)/processed-schema.json: $(DT_DOCS) $(src)/.yamllint check_dtschema_version FORCE
	$(call if_changed_rule,chkdt)

+0 −12
Original line number Diff line number Diff line
@@ -6,18 +6,6 @@ berlin SoCs are now Synaptics' SoCs now.

---------------------------------------------------------------

Work in progress statement:

Device tree files and bindings applying to Marvell Berlin SoCs and boards are
considered "unstable". Any Marvell Berlin device tree binding may change at any
time. Be sure to use a device tree binary and a kernel image generated from the
same source tree.

Please refer to Documentation/devicetree/bindings/ABI.rst for a definition of a
stable binding/ABI.

---------------------------------------------------------------

Boards with a SoC of the Marvell Berlin family, e.g. Armada 1500
shall have the following properties:

+63 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/atmel/atmel,hlcdc-display-controller.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Atmel's High LCD Controller (HLCDC)

maintainers:
  - Nicolas Ferre <nicolas.ferre@microchip.com>
  - Alexandre Belloni <alexandre.belloni@bootlin.com>
  - Claudiu Beznea <claudiu.beznea@tuxon.dev>

description:
  The LCD Controller (LCDC) consists of logic for transferring LCD image
  data from an external display buffer to a TFT LCD panel. The LCDC has one
  display input buffer per layer that fetches pixels through the single bus
  host interface and a look-up table to allow palletized display
  configurations.

properties:
  compatible:
    const: atmel,hlcdc-display-controller

  '#address-cells':
    const: 1

  '#size-cells':
    const: 0

  port@0:
    $ref: /schemas/graph.yaml#/$defs/port-base
    unevaluatedProperties: false
    description:
      Output endpoint of the controller, connecting the LCD panel signals.

    properties:
      '#address-cells':
        const: 1

      '#size-cells':
        const: 0

      reg:
        maxItems: 1

      endpoint:
        $ref: /schemas/media/video-interfaces.yaml#
        unevaluatedProperties: false
        description:
          Endpoint connecting the LCD panel signals.

        properties:
          bus-width:
            enum: [ 12, 16, 18, 24 ]

required:
  - '#address-cells'
  - '#size-cells'
  - compatible
  - port@0

additionalProperties: false
+0 −75
Original line number Diff line number Diff line
Device-Tree bindings for Atmel's HLCDC (High LCD Controller) DRM driver

The Atmel HLCDC Display Controller is subdevice of the HLCDC MFD device.
See ../../mfd/atmel-hlcdc.txt for more details.

Required properties:
 - compatible: value should be "atmel,hlcdc-display-controller"
 - pinctrl-names: the pin control state names. Should contain "default".
 - pinctrl-0: should contain the default pinctrl states.
 - #address-cells: should be set to 1.
 - #size-cells: should be set to 0.

Required children nodes:
 Children nodes are encoding available output ports and their connections
 to external devices using the OF graph representation (see ../graph.txt).
 At least one port node is required.

Optional properties in grandchild nodes:
 Any endpoint grandchild node may specify a desired video interface
 according to ../../media/video-interfaces.txt, specifically
 - bus-width: recognized values are <12>, <16>, <18> and <24>, and
   override any output mode selection heuristic, forcing "rgb444",
   "rgb565", "rgb666" and "rgb888" respectively.

Example:

	hlcdc: hlcdc@f0030000 {
		compatible = "atmel,sama5d3-hlcdc";
		reg = <0xf0030000 0x2000>;
		interrupts = <36 IRQ_TYPE_LEVEL_HIGH 0>;
		clocks = <&lcdc_clk>, <&lcdck>, <&clk32k>;
		clock-names = "periph_clk","sys_clk", "slow_clk";

		hlcdc-display-controller {
			compatible = "atmel,hlcdc-display-controller";
			pinctrl-names = "default";
			pinctrl-0 = <&pinctrl_lcd_base &pinctrl_lcd_rgb888>;
			#address-cells = <1>;
			#size-cells = <0>;

			port@0 {
				#address-cells = <1>;
				#size-cells = <0>;
				reg = <0>;

				hlcdc_panel_output: endpoint@0 {
					reg = <0>;
					remote-endpoint = <&panel_input>;
				};
			};
		};

		hlcdc_pwm: hlcdc-pwm {
			compatible = "atmel,hlcdc-pwm";
			pinctrl-names = "default";
			pinctrl-0 = <&pinctrl_lcd_pwm>;
			#pwm-cells = <3>;
		};
	};

Example 2: With a video interface override to force rgb565; as above
but with these changes/additions:

	&hlcdc {
		hlcdc-display-controller {
			pinctrl-names = "default";
			pinctrl-0 = <&pinctrl_lcd_base &pinctrl_lcd_rgb565>;

			port@0 {
				hlcdc_panel_output: endpoint@0 {
					bus-width = <16>;
				};
			};
		};
	};
+7 −1
Original line number Diff line number Diff line
@@ -120,13 +120,19 @@ allOf:
          maxItems: 1
        clock-names:
          maxItems: 1
  - if:
      properties:
        compatible:
          const: fsl,imx6sx-lcdif
    then:
      required:
        - power-domains
  - if:
      properties:
        compatible:
          contains:
            enum:
              - fsl,imx6sl-lcdif
              - fsl,imx6sx-lcdif
              - fsl,imx8mm-lcdif
              - fsl,imx8mn-lcdif
              - fsl,imx8mp-lcdif
Loading