mirror of https://gitee.com/openkylin/linux.git
dt-bindings: sram: Convert Allwinner A10 system controller to a schema
The older Allwinner SoCs have a system controller that is 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. Signed-off-by: Maxime Ripard <maxime@cerno.tech> [robh: fixup missing 'properties'] Signed-off-by: Rob Herring <robh@kernel.org>
This commit is contained in:
parent
3538129cab
commit
e4597da1d6
|
@ -0,0 +1,140 @@
|
|||
# SPDX-License-Identifier: GPL-2.0+
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sram/allwinner,sun4i-a10-system-control.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Allwinner A10 System Control Device Tree Bindings
|
||||
|
||||
maintainers:
|
||||
- Chen-Yu Tsai <wens@csie.org>
|
||||
- Maxime Ripard <mripard@kernel.org>
|
||||
|
||||
description:
|
||||
The SRAM controller found on most Allwinner devices is represented
|
||||
by a regular node for the SRAM controller itself, with sub-nodes
|
||||
representing the SRAM handled by the SRAM controller.
|
||||
|
||||
properties:
|
||||
"#address-cells":
|
||||
const: 1
|
||||
|
||||
"#size-cells":
|
||||
const: 1
|
||||
|
||||
compatible:
|
||||
oneOf:
|
||||
- const: allwinner,sun4i-a10-sram-controller
|
||||
deprecated: true
|
||||
- const: allwinner,sun4i-a10-system-control
|
||||
- const: allwinner,sun5i-a13-system-control
|
||||
- items:
|
||||
- const: allwinner,sun7i-a20-system-control
|
||||
- const: allwinner,sun4i-a10-system-control
|
||||
- const: allwinner,sun8i-a23-system-control
|
||||
- const: allwinner,sun8i-h3-system-control
|
||||
- const: allwinner,sun50i-a64-sram-controller
|
||||
deprecated: true
|
||||
- const: allwinner,sun50i-a64-system-control
|
||||
- const: allwinner,sun50i-h5-system-control
|
||||
- items:
|
||||
- const: allwinner,sun50i-h6-system-control
|
||||
- const: allwinner,sun50i-a64-system-control
|
||||
- items:
|
||||
- const: allwinner,suniv-f1c100s-system-control
|
||||
- const: allwinner,sun4i-a10-system-control
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
ranges: true
|
||||
|
||||
patternProperties:
|
||||
"^sram@[a-z0-9]+":
|
||||
type: object
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: mmio-sram
|
||||
|
||||
patternProperties:
|
||||
"^sram-section?@[a-f0-9]+$":
|
||||
type: object
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
- const: allwinner,sun4i-a10-sram-a3-a4
|
||||
- const: allwinner,sun4i-a10-sram-c1
|
||||
- const: allwinner,sun4i-a10-sram-d
|
||||
- const: allwinner,sun50i-a64-sram-c
|
||||
- items:
|
||||
- const: allwinner,sun5i-a13-sram-a3-a4
|
||||
- const: allwinner,sun4i-a10-sram-a3-a4
|
||||
- items:
|
||||
- const: allwinner,sun7i-a20-sram-a3-a4
|
||||
- const: allwinner,sun4i-a10-sram-a3-a4
|
||||
- items:
|
||||
- const: allwinner,sun5i-a13-sram-c1
|
||||
- const: allwinner,sun4i-a10-sram-c1
|
||||
- items:
|
||||
- const: allwinner,sun7i-a20-sram-c1
|
||||
- const: allwinner,sun4i-a10-sram-c1
|
||||
- items:
|
||||
- const: allwinner,sun8i-a23-sram-c1
|
||||
- const: allwinner,sun4i-a10-sram-c1
|
||||
- items:
|
||||
- const: allwinner,sun8i-h3-sram-c1
|
||||
- const: allwinner,sun4i-a10-sram-c1
|
||||
- items:
|
||||
- const: allwinner,sun50i-a64-sram-c1
|
||||
- const: allwinner,sun4i-a10-sram-c1
|
||||
- items:
|
||||
- const: allwinner,sun50i-h5-sram-c1
|
||||
- const: allwinner,sun4i-a10-sram-c1
|
||||
- items:
|
||||
- const: allwinner,sun50i-h6-sram-c1
|
||||
- const: allwinner,sun4i-a10-sram-c1
|
||||
- items:
|
||||
- const: allwinner,sun5i-a13-sram-d
|
||||
- const: allwinner,sun4i-a10-sram-d
|
||||
- items:
|
||||
- const: allwinner,sun7i-a20-sram-d
|
||||
- const: allwinner,sun4i-a10-sram-d
|
||||
- items:
|
||||
- const: allwinner,suniv-f1c100s-sram-d
|
||||
- const: allwinner,sun4i-a10-sram-d
|
||||
- items:
|
||||
- const: allwinner,sun50i-h6-sram-c
|
||||
- const: allwinner,sun50i-a64-sram-c
|
||||
|
||||
required:
|
||||
- "#address-cells"
|
||||
- "#size-cells"
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
system-control@1c00000 {
|
||||
compatible = "allwinner,sun4i-a10-system-control";
|
||||
reg = <0x01c00000 0x30>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
sram_a: sram@00000000 {
|
||||
compatible = "mmio-sram";
|
||||
reg = <0x00000000 0xc000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0 0x00000000 0xc000>;
|
||||
|
||||
emac_sram: sram-section@8000 {
|
||||
compatible = "allwinner,sun4i-a10-sram-a3-a4";
|
||||
reg = <0x8000 0x4000>;
|
||||
};
|
||||
};
|
||||
};
|
|
@ -1,113 +0,0 @@
|
|||
Allwinnner SoC SRAM controllers
|
||||
-----------------------------------------------------
|
||||
|
||||
The SRAM controller found on most Allwinner devices is represented by
|
||||
a regular node for the SRAM controller itself, with sub-nodes
|
||||
reprensenting the SRAM handled by the SRAM controller.
|
||||
|
||||
Controller Node
|
||||
---------------
|
||||
|
||||
Required properties:
|
||||
- compatible : should be:
|
||||
- "allwinner,sun4i-a10-sram-controller" (deprecated)
|
||||
- "allwinner,sun4i-a10-system-control"
|
||||
- "allwinner,sun5i-a13-system-control"
|
||||
- "allwinner,sun7i-a20-system-control", "allwinner,sun4i-a10-system-control"
|
||||
- "allwinner,sun8i-a23-system-control"
|
||||
- "allwinner,sun8i-h3-system-control"
|
||||
- "allwinner,sun50i-a64-sram-controller" (deprecated)
|
||||
- "allwinner,sun50i-a64-system-control"
|
||||
- "allwinner,sun50i-h5-system-control"
|
||||
- "allwinner,sun50i-h6-system-control", "allwinner,sun50i-a64-system-control"
|
||||
- "allwinner,suniv-f1c100s-system-control", "allwinner,sun4i-a10-system-control"
|
||||
- reg : sram controller register offset + length
|
||||
|
||||
SRAM nodes
|
||||
----------
|
||||
|
||||
Each SRAM is described using the mmio-sram bindings documented in
|
||||
Documentation/devicetree/bindings/sram/sram.txt
|
||||
|
||||
Each SRAM will have SRAM sections that are going to be handled by the
|
||||
SRAM controller as subnodes. These sections are represented following
|
||||
once again the representation described in the mmio-sram binding.
|
||||
|
||||
The valid sections compatible for A10 are:
|
||||
- allwinner,sun4i-a10-sram-a3-a4
|
||||
- allwinner,sun4i-a10-sram-c1
|
||||
- allwinner,sun4i-a10-sram-d
|
||||
|
||||
The valid sections compatible for A13 are:
|
||||
- allwinner,sun5i-a13-sram-a3-a4, allwinner,sun4i-a10-sram-a3-a4
|
||||
- allwinner,sun5i-a13-sram-c1, allwinner,sun4i-a10-sram-c1
|
||||
- allwinner,sun5i-a13-sram-d, allwinner,sun4i-a10-sram-d
|
||||
|
||||
The valid sections compatible for A20 are:
|
||||
- allwinner,sun7i-a20-sram-a3-a4, allwinner,sun4i-a10-sram-a3-a4
|
||||
- allwinner,sun7i-a20-sram-c1, allwinner,sun4i-a10-sram-c1
|
||||
- allwinner,sun7i-a20-sram-d, allwinner,sun4i-a10-sram-d
|
||||
|
||||
The valid sections compatible for A23/A33 are:
|
||||
- allwinner,sun8i-a23-sram-c1, allwinner,sun4i-a10-sram-c1
|
||||
|
||||
The valid sections compatible for H3 are:
|
||||
- allwinner,sun8i-h3-sram-c1, allwinner,sun4i-a10-sram-c1
|
||||
|
||||
The valid sections compatible for A64 are:
|
||||
- allwinner,sun50i-a64-sram-c
|
||||
- allwinner,sun50i-a64-sram-c1, allwinner,sun4i-a10-sram-c1
|
||||
|
||||
The valid sections compatible for H5 are:
|
||||
- allwinner,sun50i-h5-sram-c1, allwinner,sun4i-a10-sram-c1
|
||||
|
||||
The valid sections compatible for H6 are:
|
||||
- allwinner,sun50i-h6-sram-c, allwinner,sun50i-a64-sram-c
|
||||
- allwinner,sun50i-h6-sram-c1, allwinner,sun4i-a10-sram-c1
|
||||
|
||||
The valid sections compatible for F1C100s are:
|
||||
- allwinner,suniv-f1c100s-sram-d, allwinner,sun4i-a10-sram-d
|
||||
|
||||
Devices using SRAM sections
|
||||
---------------------------
|
||||
|
||||
Some devices need to request to the SRAM controller to map an SRAM for
|
||||
their exclusive use.
|
||||
|
||||
The relationship between such a device and an SRAM section is
|
||||
expressed through the allwinner,sram property, that will take a
|
||||
phandle and an argument.
|
||||
|
||||
This valid values for this argument are:
|
||||
- 0: CPU
|
||||
- 1: Device
|
||||
|
||||
Example
|
||||
-------
|
||||
system-control@1c00000 {
|
||||
compatible = "allwinner,sun4i-a10-system-control";
|
||||
reg = <0x01c00000 0x30>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
sram_a: sram@00000000 {
|
||||
compatible = "mmio-sram";
|
||||
reg = <0x00000000 0xc000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0 0x00000000 0xc000>;
|
||||
|
||||
emac_sram: sram-section@8000 {
|
||||
compatible = "allwinner,sun4i-a10-sram-a3-a4";
|
||||
reg = <0x8000 0x4000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
emac: ethernet@1c0b000 {
|
||||
compatible = "allwinner,sun4i-a10-emac";
|
||||
...
|
||||
|
||||
allwinner,sram = <&emac_sram 1>;
|
||||
};
|
Loading…
Reference in New Issue