Commit 01faced6 authored by Maxime Ripard's avatar Maxime Ripard Committed by Mauro Carvalho Chehab
Browse files

media: dt-bindings: media: Convert Allwinner A10 IR to a schema



The older Allwinner SoCs have a IR receiver supported in Linux, with a
matching Device Tree binding.

Now that we have the DT validation in place, let's convert the device tree
bindings for that controller over to a YAML schemas.

Reviewed-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarMaxime Ripard <maxime.ripard@bootlin.com>
Signed-off-by: default avatarSean Young <sean@mess.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
parent 7c31b9d6
Loading
Loading
Loading
Loading
+80 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/allwinner,sun4i-a10-ir.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Allwinner A10 Infrared Controller Device Tree Bindings

maintainers:
  - Chen-Yu Tsai <wens@csie.org>
  - Maxime Ripard <maxime.ripard@bootlin.com>

allOf:
  - $ref: "rc.yaml#"

properties:
  compatible:
    oneOf:
      - const: allwinner,sun4i-a10-ir
      - const: allwinner,sun5i-a13-ir
      - items:
          - const: allwinner,sun8i-a83t-ir
          - const: allwinner,sun6i-a31-ir
      - const: allwinner,sun6i-a31-ir
      - items:
          - const: allwinner,sun50i-a64-ir
          - const: allwinner,sun6i-a31-ir
      - items:
          - const: allwinner,sun50i-h6-ir
          - const: allwinner,sun6i-a31-ir

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    items:
      - description: Bus Clock
      - description: Module Clock

  clock-names:
    items:
      - const: apb
      - const: ir

  resets:
    maxItems: 1

  clock-frequency:
    default: 8000000
    description:
      IR Receiver clock frequency, in Hertz.

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names

# FIXME: We should set it, but it would report all the generic
# properties as additional properties.
# additionalProperties: false

examples:
  - |
      ir0: ir@1c21800 {
          compatible = "allwinner,sun4i-a10-ir";
          clocks = <&apb0_gates 6>, <&ir0_clk>;
          clock-names = "apb", "ir";
          clock-frequency = <3000000>;
          resets = <&apb0_rst 1>;
          interrupts = <0 5 1>;
          reg = <0x01C21800 0x40>;
          linux,rc-map-name = "rc-rc6-mce";
      };

...
+0 −35
Original line number Diff line number Diff line
Device-Tree bindings for SUNXI IR controller found in sunXi SoC family

Required properties:
- compatible	    :
	"allwinner,sun4i-a10-ir"
	"allwinner,sun5i-a13-ir"
	"allwinner,sun6i-a31-ir"
	"allwinner,sun50i-a64-ir", "allwinner,sun6i-a31-ir"
	"allwinner,sun50i-h6-ir", "allwinner,sun6i-a31-ir"
- clocks	    : list of clock specifiers, corresponding to
		      entries in clock-names property;
- clock-names	    : should contain "apb" and "ir" entries;
- interrupts	    : should contain IR IRQ number;
- reg		    : should contain IO map address for IR.

Required properties since A31:
- resets	    : phandle + reset specifier pair

Optional properties:
- linux,rc-map-name: see rc.txt file in the same directory.
- clock-frequency  : IR Receiver clock frequency, in Hertz. Defaults to 8 MHz
		     if missing.

Example:

ir0: ir@1c21800 {
	compatible = "allwinner,sun4i-a10-ir";
	clocks = <&apb0_gates 6>, <&ir0_clk>;
	clock-names = "apb", "ir";
	clock-frequency = <3000000>;
	resets = <&apb0_rst 1>;
	interrupts = <0 5 1>;
	reg = <0x01C21800 0x40>;
	linux,rc-map-name = "rc-rc6-mce";
};