Commit f6962991 authored by Krzysztof Kozlowski's avatar Krzysztof Kozlowski Committed by Rob Herring

dt-bindings: sram: Convert SRAM bindings to json-schema

Convert generic mmio-sram bindings to DT schema format using
json-schema.  Require the address/size cells to be 1, not equal to root
node.  This also fixes the check for clocks property to be in main root
node instead of children.
Signed-off-by: default avatarKrzysztof Kozlowski <krzk@kernel.org>
Signed-off-by: default avatarRob Herring <robh@kernel.org>
parent b4e8c0b1
Generic on-chip SRAM
Simple IO memory regions to be managed by the genalloc API.
Required properties:
- compatible : mmio-sram or atmel,sama5d2-securam
- reg : SRAM iomem address range
Reserving sram areas:
---------------------
Each child of the sram node specifies a region of reserved memory. Each
child node should use a 'reg' property to specify a specific range of
reserved memory.
Following the generic-names recommended practice, node names should
reflect the purpose of the node. Unit address (@<address>) should be
appended to the name.
Required properties in the sram node:
- #address-cells, #size-cells : should use the same values as the root node
- ranges : standard definition, should translate from local addresses
within the sram to bus addresses
Optional properties in the sram node:
- no-memory-wc : the flag indicating, that SRAM memory region has not to
be remapped as write combining. WC is used by default.
Required properties in the area nodes:
- reg : iomem address range, relative to the SRAM range
Optional properties in the area nodes:
- compatible : standard definition, should contain a vendor specific string
in the form <vendor>,[<device>-]<usage>
- pool : indicates that the particular reserved SRAM area is addressable
and in use by another device or devices
- export : indicates that the reserved SRAM area may be accessed outside
of the kernel, e.g. by bootloader or userspace
- protect-exec : Same as 'pool' above but with the additional
constraint that code wil be run from the region and
that the memory is maintained as read-only, executable
during code execution. NOTE: This region must be page
aligned on start and end in order to properly allow
manipulation of the page attributes.
- label : the name for the reserved partition, if omitted, the label
is taken from the node name excluding the unit address.
- clocks : a list of phandle and clock specifier pair that controls the
single SRAM clock.
Example:
sram: sram@5c000000 {
compatible = "mmio-sram";
reg = <0x5c000000 0x40000>; /* 256 KiB SRAM at address 0x5c000000 */
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0x5c000000 0x40000>;
smp-sram@100 {
compatible = "socvendor,smp-sram";
reg = <0x100 0x50>;
};
device-sram@1000 {
reg = <0x1000 0x1000>;
pool;
};
exported@20000 {
reg = <0x20000 0x20000>;
export;
};
};
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/sram/sram.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Generic on-chip SRAM
maintainers:
- Rob Herring <robh@kernel.org>
description: |+
Simple IO memory regions to be managed by the genalloc API.
Each child of the sram node specifies a region of reserved memory. Each
child node should use a 'reg' property to specify a specific range of
reserved memory.
Following the generic-names recommended practice, node names should
reflect the purpose of the node. Unit address (@<address>) should be
appended to the name.
properties:
$nodename:
pattern: "^sram(@.*)?"
compatible:
contains:
enum:
- mmio-sram
- atmel,sama5d2-securam
reg:
maxItems: 1
clocks:
description:
A list of phandle and clock specifier pair that controls the single
SRAM clock.
"#address-cells":
const: 1
"#size-cells":
const: 1
ranges:
description:
Should translate from local addresses within the sram to bus addresses.
no-memory-wc:
description:
The flag indicating, that SRAM memory region has not to be remapped
as write combining. WC is used by default.
type: boolean
patternProperties:
"^([a-z]*-)?sram@[a-f0-9]+$":
type: object
description:
Each child of the sram node specifies a region of reserved memory.
properties:
compatible:
description:
Should contain a vendor specific string in the form
<vendor>,[<device>-]<usage>
reg:
description:
IO mem address range, relative to the SRAM range.
maxItems: 1
pool:
description:
Indicates that the particular reserved SRAM area is addressable
and in use by another device or devices.
type: boolean
export:
description:
Indicates that the reserved SRAM area may be accessed outside
of the kernel, e.g. by bootloader or userspace.
type: boolean
protect-exec:
description: |
Same as 'pool' above but with the additional constraint that code
will be run from the region and that the memory is maintained as
read-only, executable during code execution. NOTE: This region must
be page aligned on start and end in order to properly allow
manipulation of the page attributes.
type: boolean
label:
description:
The name for the reserved partition, if omitted, the label is taken
from the node name excluding the unit address.
required:
- reg
additionalProperties: false
required:
- compatible
- reg
- "#address-cells"
- "#size-cells"
- ranges
additionalProperties: false
examples:
- |
sram@5c000000 {
compatible = "mmio-sram";
reg = <0x5c000000 0x40000>; /* 256 KiB SRAM at address 0x5c000000 */
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0x5c000000 0x40000>;
smp-sram@100 {
reg = <0x100 0x50>;
};
device-sram@1000 {
reg = <0x1000 0x1000>;
pool;
};
exported-sram@20000 {
reg = <0x20000 0x20000>;
export;
};
};
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment