Commit 9e5f3ffc authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull devicetree updates from Rob Herring:

 - Refactor arch kdump DT related code to a common implementation

 - Add fw_devlink tracking for 'phy-handle', 'leds', 'backlight',
   'resets', and 'pwm' properties

 - Various clean-ups to DT FDT code

 - Fix a runtime error for !CONFIG_SYSFS

 - Convert Synopsys DW PCI and derivative binding docs to schemas. Add
   Toshiba Visconti PCIe binding.

 - Convert a bunch of memory controller bindings to schemas

 - Covert eeprom-93xx46, Samsung Exynos TRNG, Samsung Exynos IRQ
   combiner, arm-charlcd, img-ascii-lcd, UniPhier eFuse, Xilinx Zynq
   MPSoC FPGA, Xilinx Zynq MPSoC reset, Mediatek mmsys, Gemini boards,
   brcm,iproc-i2c, faraday,ftpci100, and ks8851 net to DT schema.

 - Extend nvmem bindings to handle bit offsets in unit-addresses

 - Add DT schemas for HiKey 970 PCIe PHY

 - Remove unused ZTE, energymicro,efm32-timer, and Exynos SATA bindings

 - Enable dtc pci_device_reg warning by default

 - Fixes for handling 'unevaluatedProperties' in preparation to enable
   pending support in the tooling for jsonschema 2020-12 draft

* tag 'devicetree-for-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (78 commits)
  dt-bindings: display: remove zte,vou.txt binding doc
  dt-bindings: hwmon: merge max1619 into trivial devices
  dt-bindings: mtd-physmap: Add 'arm,vexpress-flash' compatible
  dt-bindings: PCI: imx6: convert the imx pcie controller to dtschema
  dt-bindings: Use 'enum' instead of 'oneOf' plus 'const' entries
  dt-bindings: Add vendor prefix for Topic Embedded Systems
  of: fdt: Rename reserve_elfcorehdr() to fdt_reserve_elfcorehdr()
  arm64: kdump: Remove custom linux,usable-memory-range handling
  arm64: kdump: Remove custom linux,elfcorehdr handling
  riscv: Remove non-standard linux,elfcorehdr handling
  of: fdt: Use IS_ENABLED(CONFIG_BLK_DEV_INITRD) instead of #ifdef
  of: fdt: Add generic support for handling usable memory range property
  of: fdt: Add generic support for handling elf core headers property
  crash_dump: Make elfcorehdr address/size symbols always visible
  dt-bindings: memory: convert Samsung Exynos DMC to dtschema
  dt-bindings: devfreq: event: convert Samsung Exynos PPMU to dtschema
  dt-bindings: devfreq: event: convert Samsung Exynos NoCP to dtschema
  kbuild: Enable dtc 'pci_device_reg' warning by default
  dt-bindings: soc: remove obsolete zte zx header
  dt-bindings: clock: remove obsolete zte zx header
  ...
parents 6104dde0 b1e20250
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -28,7 +28,7 @@ find_cmd = find $(srctree)/$(src) \( -name '*.yaml' ! \

quiet_cmd_yamllint = LINT    $(src)
      cmd_yamllint = ($(find_cmd) | \
                     xargs $(DT_SCHEMA_LINT) -f parsable -c $(srctree)/$(src)/.yamllint) || true
                     xargs $(DT_SCHEMA_LINT) -f parsable -c $(srctree)/$(src)/.yamllint >&2) || true

quiet_cmd_chk_bindings = CHKDT   $@
      cmd_chk_bindings = ($(find_cmd) | \
+0 −108
Original line number Diff line number Diff line
Cortina systems Gemini platforms

The Gemini SoC is the project name for an ARMv4 FA525-based SoC originally
produced by Storlink Semiconductor around 2005. The company was renamed
later renamed Storm Semiconductor. The chip product name is Storlink SL3516.
It was derived from earlier products from Storm named SL3316 (Centroid) and
SL3512 (Bulverde).

Storm Semiconductor was acquired by Cortina Systems in 2008 and the SoC was
produced and used for NAS and similar usecases. In 2014 Cortina Systems was
in turn acquired by Inphi, who seem to have discontinued this product family.

Many of the IP blocks used in the SoC comes from Faraday Technology.

Required properties (in root node):
	compatible = "cortina,gemini";

Required nodes:

- soc: the SoC should be represented by a simple bus encompassing all the
  onchip devices, this is referred to as the soc bus node.

- syscon: the soc bus node must have a system controller node pointing to the
  global control registers, with the compatible string
  "cortina,gemini-syscon", "syscon";

  Required properties on the syscon:
  - reg: syscon register location and size.
  - #clock-cells: should be set to <1> - the system controller is also a
                  clock provider.
  - #reset-cells: should be set to <1> - the system controller is also a
                  reset line provider.

  The clock sources have shorthand defines in the include file:
  <dt-bindings/clock/cortina,gemini-clock.h>

  The reset lines have shorthand defines in the include file:
  <dt-bindings/reset/cortina,gemini-reset.h>

- timer: the soc bus node must have a timer node pointing to the SoC timer
  block, with the compatible string "cortina,gemini-timer"
  See: clocksource/cortina,gemini-timer.txt

- interrupt-controller: the sob bus node must have an interrupt controller
  node pointing to the SoC interrupt controller block, with the compatible
  string "cortina,gemini-interrupt-controller"
  See interrupt-controller/cortina,gemini-interrupt-controller.txt

Example:

/ {
	model = "Foo Gemini Machine";
	compatible = "cortina,gemini";
	#address-cells = <1>;
	#size-cells = <1>;

	memory {
		device_type = "memory";
		reg = <0x00000000 0x8000000>;
	};

	soc {
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;
		compatible = "simple-bus";
		interrupt-parent = <&intcon>;

		syscon: syscon@40000000 {
			compatible = "cortina,gemini-syscon", "syscon";
			reg = <0x40000000 0x1000>;
			#clock-cells = <1>;
			#reset-cells = <1>;
		};

		uart0: serial@42000000 {
			compatible = "ns16550a";
			reg = <0x42000000 0x100>;
			resets = <&syscon GEMINI_RESET_UART>;
			clocks = <&syscon GEMINI_CLK_UART>;
			interrupts = <18 IRQ_TYPE_LEVEL_HIGH>;
			reg-shift = <2>;
		};

		timer@43000000 {
			compatible = "cortina,gemini-timer";
			reg = <0x43000000 0x1000>;
			interrupt-parent = <&intcon>;
			interrupts = <14 IRQ_TYPE_EDGE_FALLING>, /* Timer 1 */
				     <15 IRQ_TYPE_EDGE_FALLING>, /* Timer 2 */
				     <16 IRQ_TYPE_EDGE_FALLING>; /* Timer 3 */
			resets = <&syscon GEMINI_RESET_TIMER>;
			/* APB clock or RTC clock */
			clocks = <&syscon GEMINI_CLK_APB>,
				 <&syscon GEMINI_CLK_RTC>;
			clock-names = "PCLK", "EXTCLK";
			syscon = <&syscon>;
		};

		intcon: interrupt-controller@48000000 {
			compatible = "cortina,gemini-interrupt-controller";
			reg = <0x48000000 0x1000>;
			resets = <&syscon GEMINI_RESET_INTCON0>;
			interrupt-controller;
			#interrupt-cells = <2>;
		};
	};
};
+95 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/gemini.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Cortina systems Gemini platforms

description: |
  The Gemini SoC is the project name for an ARMv4 FA525-based SoC originally
  produced by Storlink Semiconductor around 2005. The company was renamed
  later renamed Storm Semiconductor. The chip product name is Storlink SL3516.
  It was derived from earlier products from Storm named SL3316 (Centroid) and
  SL3512 (Bulverde).

  Storm Semiconductor was acquired by Cortina Systems in 2008 and the SoC was
  produced and used for NAS and similar usecases. In 2014 Cortina Systems was
  in turn acquired by Inphi, who seem to have discontinued this product family.

  Many of the IP blocks used in the SoC comes from Faraday Technology.

maintainers:
  - Linus Walleij <linus.walleij@linaro.org>

properties:
  $nodename:
    const: '/'
  compatible:
    oneOf:

      - description: Storlink Semiconductor Gemini324 EV-Board also known
          as Storm Semiconductor SL93512R_BRD
        items:
          - const: storlink,gemini324
          - const: storm,sl93512r
          - const: cortina,gemini

      - description: D-Link DIR-685 Xtreme N Storage Router
        items:
          - const: dlink,dir-685
          - const: cortina,gemini

      - description: D-Link DNS-313 1-Bay Network Storage Enclosure
        items:
          - const: dlink,dns-313
          - const: cortina,gemini

      - description: Edimax NS-2502
        items:
          - const: edimax,ns-2502
          - const: cortina,gemini

      - description: ITian Square One SQ201
        items:
          - const: itian,sq201
          - const: cortina,gemini

      - description: Raidsonic NAS IB-4220-B
        items:
          - const: raidsonic,ib-4220-b
          - const: cortina,gemini

      - description: SSI 1328
        items:
          - const: ssi,1328
          - const: cortina,gemini

      - description: Teltonika RUT1xx Mobile Router
        items:
          - const: teltonika,rut1xx
          - const: cortina,gemini

      - description: Wiligear Wiliboard WBD-111
        items:
          - const: wiligear,wiliboard-wbd111
          - const: cortina,gemini

      - description: Wiligear Wiliboard WBD-222
        items:
          - const: wiligear,wiliboard-wbd222
          - const: cortina,gemini

      - description: Wiligear Wiliboard WBD-111 - old incorrect binding
        items:
          - const: wiliboard,wbd111
          - const: cortina,gemini
        deprecated: true

      - description: Wiligear Wiliboard WBD-222 - old incorrect binding
        items:
          - const: wiliboard,wbd222
          - const: cortina,gemini
        deprecated: true

additionalProperties: true
+0 −31
Original line number Diff line number Diff line
Mediatek mmsys controller
============================

The Mediatek mmsys system controller provides clock control, routing control,
and miscellaneous control in mmsys partition.

Required Properties:

- compatible: Should be one of:
	- "mediatek,mt2701-mmsys", "syscon"
	- "mediatek,mt2712-mmsys", "syscon"
	- "mediatek,mt6765-mmsys", "syscon"
	- "mediatek,mt6779-mmsys", "syscon"
	- "mediatek,mt6797-mmsys", "syscon"
	- "mediatek,mt7623-mmsys", "mediatek,mt2701-mmsys", "syscon"
	- "mediatek,mt8167-mmsys", "syscon"
	- "mediatek,mt8173-mmsys", "syscon"
	- "mediatek,mt8183-mmsys", "syscon"
- #clock-cells: Must be 1

For the clock control, the mmsys controller uses the common clk binding from
Documentation/devicetree/bindings/clock/clock-bindings.txt
The available clocks are defined in dt-bindings/clock/mt*-clk.h.

Example:

mmsys: syscon@14000000 {
	compatible = "mediatek,mt8173-mmsys", "syscon";
	reg = <0 0x14000000 0 0x1000>;
	#clock-cells = <1>;
};
+58 −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/arm/mediatek/mediatek,mmsys.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: MediaTek mmsys controller

maintainers:
  - Matthias Brugger <matthias.bgg@gmail.com>

description:
  The MediaTek mmsys system controller provides clock control, routing control,
  and miscellaneous control in mmsys partition.

properties:
  $nodename:
    pattern: "^syscon@[0-9a-f]+$"

  compatible:
    oneOf:
      - items:
          - enum:
              - mediatek,mt2701-mmsys
              - mediatek,mt2712-mmsys
              - mediatek,mt6765-mmsys
              - mediatek,mt6779-mmsys
              - mediatek,mt6797-mmsys
              - mediatek,mt8167-mmsys
              - mediatek,mt8173-mmsys
              - mediatek,mt8183-mmsys
              - mediatek,mt8365-mmsys
          - const: syscon
      - items:
          - const: mediatek,mt7623-mmsys
          - const: mediatek,mt2701-mmsys
          - const: syscon

  reg:
    maxItems: 1

  "#clock-cells":
    const: 1

required:
  - compatible
  - reg
  - "#clock-cells"

additionalProperties: false

examples:
  - |
    mmsys: syscon@14000000 {
        compatible = "mediatek,mt8173-mmsys", "syscon";
        reg = <0x14000000 0x1000>;
        #clock-cells = <1>;
    };
Loading