mirror of
https://github.com/lkl/linux.git
synced 2025-12-19 16:13:19 +09:00
Merge tag 'devicetree-for-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
Pull devicetree updates from Rob Herring: - Convert /reserved-memory bindings to schemas - Convert a bunch of NFC bindings to schemas - Convert bindings to schema: Xilinx USB, Freescale DDR controller, Arm CCI-400, UBlox Neo-6M, 1-Wire GPIO, MSI controller, ASpeed LPC, OMAP and Inside-Secure HWRNG, register-bit-led, OV5640, Silead GSL1680, Elan ekth3000, Marvell bluetooth, TI wlcore, TI bluetooth, ESP ESP8089, tlm,trusted-foundations, Microchip cap11xx, Ralink SoCs and boards, and TI sysc - New binding schemas for: msi-ranges, Aspeed UART routing controller, palmbus, Xylon LogiCVC display controller, Mediatek's MT7621 SDRAM memory controller, and Apple M1 PCIe host - Run schema checks for %.dtb targets - Improve build time when using DT_SCHEMA_FILES - Improve error message when dtschema is not found - Various doc reference fixes in MAINTAINERS - Convert architectures to common CPU h/w ID parsing function of_get_cpu_hwid(). - Allow for empty NUMA node IDs which may be hotplugged - Cleanup of __fdt_scan_reserved_mem() - Constify device_node parameters - Update dtc to upstream v1.6.1-19-g0a3a9d3449c8. Adds new checks 'node_name_vs_property_name' and 'interrupt_map'. - Enable dtc 'unit_address_format' warning by default - Fix unittest EXPECT text for gpio hog errors * tag 'devicetree-for-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (97 commits) dt-bindings: net: ti,bluetooth: Document default max-speed dt-bindings: pci: rcar-pci-ep: Document r8a7795 dt-bindings: net: qcom,ipa: IPA does support up to two iommus of/fdt: Remove of_scan_flat_dt() usage for __fdt_scan_reserved_mem() of: unittest: document intentional interrupt-map provider build warning of: unittest: fix EXPECT text for gpio hog errors of/unittest: Disable new dtc node_name_vs_property_name and interrupt_map warnings scripts/dtc: Update to upstream version v1.6.1-19-g0a3a9d3449c8 dt-bindings: arm: firmware: tlm,trusted-foundations: Convert txt bindings to yaml dt-bindings: display: tilcd: Fix endpoint addressing in example dt-bindings: input: microchip,cap11xx: Convert txt bindings to yaml dt-bindings: ufs: exynos-ufs: add exynosautov9 compatible dt-bindings: ufs: exynos-ufs: add io-coherency property dt-bindings: mips: convert Ralink SoCs and boards to schema dt-bindings: display: xilinx: Fix example with psgtr dt-bindings: net: nfc: nxp,pn544: Convert txt bindings to yaml dt-bindings: Add a help message when dtschema tools are missing dt-bindings: bus: ti-sysc: Update to use yaml binding dt-bindings: sram: Allow numbers in sram region node name dt-bindings: display: Document the Xylon LogiCVC display controller ...
This commit is contained in:
@@ -69,7 +69,7 @@ Setting the ramoops parameters can be done in several different manners:
|
|||||||
mem=128M ramoops.mem_address=0x8000000 ramoops.ecc=1
|
mem=128M ramoops.mem_address=0x8000000 ramoops.ecc=1
|
||||||
|
|
||||||
B. Use Device Tree bindings, as described in
|
B. Use Device Tree bindings, as described in
|
||||||
``Documentation/devicetree/bindings/reserved-memory/ramoops.txt``.
|
``Documentation/devicetree/bindings/reserved-memory/ramoops.yaml``.
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
reserved-memory {
|
reserved-memory {
|
||||||
|
|||||||
@@ -9,6 +9,11 @@ DT_SCHEMA_MIN_VERSION = 2021.2.1
|
|||||||
|
|
||||||
PHONY += check_dtschema_version
|
PHONY += check_dtschema_version
|
||||||
check_dtschema_version:
|
check_dtschema_version:
|
||||||
|
@which $(DT_DOC_CHECKER) >/dev/null || \
|
||||||
|
{ echo "Error: '$(DT_DOC_CHECKER)' not found!" >&2; \
|
||||||
|
echo "Ensure dtschema python package is installed and in your PATH." >&2; \
|
||||||
|
echo "Current PATH is:" >&2; \
|
||||||
|
echo "$$PATH" >&2; false; }
|
||||||
@{ echo $(DT_SCHEMA_MIN_VERSION); \
|
@{ echo $(DT_SCHEMA_MIN_VERSION); \
|
||||||
$(DT_DOC_CHECKER) --version 2>/dev/null || echo 0; } | sort -Vc >/dev/null || \
|
$(DT_DOC_CHECKER) --version 2>/dev/null || echo 0; } | sort -Vc >/dev/null || \
|
||||||
{ echo "ERROR: dtschema minimum version is v$(DT_SCHEMA_MIN_VERSION)" >&2; false; }
|
{ echo "ERROR: dtschema minimum version is v$(DT_SCHEMA_MIN_VERSION)" >&2; false; }
|
||||||
@@ -22,13 +27,20 @@ $(obj)/%.example.dts: $(src)/%.yaml check_dtschema_version FORCE
|
|||||||
# Use full schemas when checking %.example.dts
|
# Use full schemas when checking %.example.dts
|
||||||
DT_TMP_SCHEMA := $(obj)/processed-schema-examples.json
|
DT_TMP_SCHEMA := $(obj)/processed-schema-examples.json
|
||||||
|
|
||||||
find_cmd = find $(srctree)/$(src) \( -name '*.yaml' ! \
|
find_all_cmd = find $(srctree)/$(src) \( -name '*.yaml' ! \
|
||||||
-name 'processed-schema*' ! \
|
-name 'processed-schema*' ! \
|
||||||
-name '*.example.dt.yaml' \)
|
-name '*.example.dt.yaml' \)
|
||||||
|
|
||||||
|
ifeq ($(DT_SCHEMA_FILES),)
|
||||||
|
find_cmd = $(find_all_cmd)
|
||||||
|
else
|
||||||
|
find_cmd = echo $(addprefix $(srctree)/, $(DT_SCHEMA_FILES))
|
||||||
|
endif
|
||||||
|
|
||||||
quiet_cmd_yamllint = LINT $(src)
|
quiet_cmd_yamllint = LINT $(src)
|
||||||
cmd_yamllint = ($(find_cmd) | \
|
cmd_yamllint = ($(find_cmd) | \
|
||||||
xargs $(DT_SCHEMA_LINT) -f parsable -c $(srctree)/$(src)/.yamllint >&2) || true
|
xargs -n200 -P$$(nproc) \
|
||||||
|
$(DT_SCHEMA_LINT) -f parsable -c $(srctree)/$(src)/.yamllint >&2) || true
|
||||||
|
|
||||||
quiet_cmd_chk_bindings = CHKDT $@
|
quiet_cmd_chk_bindings = CHKDT $@
|
||||||
cmd_chk_bindings = ($(find_cmd) | \
|
cmd_chk_bindings = ($(find_cmd) | \
|
||||||
@@ -38,7 +50,7 @@ quiet_cmd_mk_schema = SCHEMA $@
|
|||||||
cmd_mk_schema = f=$$(mktemp) ; \
|
cmd_mk_schema = f=$$(mktemp) ; \
|
||||||
$(if $(DT_MK_SCHEMA_FLAGS), \
|
$(if $(DT_MK_SCHEMA_FLAGS), \
|
||||||
printf '%s\n' $(real-prereqs), \
|
printf '%s\n' $(real-prereqs), \
|
||||||
$(find_cmd)) > $$f ; \
|
$(find_all_cmd)) > $$f ; \
|
||||||
$(DT_MK_SCHEMA) -j $(DT_MK_SCHEMA_FLAGS) @$$f > $@ ; \
|
$(DT_MK_SCHEMA) -j $(DT_MK_SCHEMA_FLAGS) @$$f > $@ ; \
|
||||||
rm -f $$f
|
rm -f $$f
|
||||||
|
|
||||||
@@ -48,7 +60,7 @@ define rule_chkdt
|
|||||||
$(call cmd,mk_schema)
|
$(call cmd,mk_schema)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
DT_DOCS = $(patsubst $(srctree)/%,%,$(shell $(find_cmd)))
|
DT_DOCS = $(patsubst $(srctree)/%,%,$(shell $(find_all_cmd)))
|
||||||
|
|
||||||
override DTC_FLAGS := \
|
override DTC_FLAGS := \
|
||||||
-Wno-avoid_unnecessary_addr_size \
|
-Wno-avoid_unnecessary_addr_size \
|
||||||
|
|||||||
216
Documentation/devicetree/bindings/arm/arm,cci-400.yaml
Normal file
216
Documentation/devicetree/bindings/arm/arm,cci-400.yaml
Normal file
@@ -0,0 +1,216 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/arm/arm,cci-400.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: ARM CCI Cache Coherent Interconnect Device Tree Binding
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
||||||
|
|
||||||
|
description: >
|
||||||
|
ARM multi-cluster systems maintain intra-cluster coherency through a cache
|
||||||
|
coherent interconnect (CCI) that is capable of monitoring bus transactions
|
||||||
|
and manage coherency, TLB invalidations and memory barriers.
|
||||||
|
|
||||||
|
It allows snooping and distributed virtual memory message broadcast across
|
||||||
|
clusters, through memory mapped interface, with a global control register
|
||||||
|
space and multiple sets of interface control registers, one per slave
|
||||||
|
interface.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
$nodename:
|
||||||
|
pattern: "^cci(@[0-9a-f]+)?$"
|
||||||
|
|
||||||
|
compatible:
|
||||||
|
enum:
|
||||||
|
- arm,cci-400
|
||||||
|
- arm,cci-500
|
||||||
|
- arm,cci-550
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
description: >
|
||||||
|
Specifies base physical address of CCI control registers common to all
|
||||||
|
interfaces.
|
||||||
|
|
||||||
|
"#address-cells": true
|
||||||
|
"#size-cells": true
|
||||||
|
ranges: true
|
||||||
|
|
||||||
|
patternProperties:
|
||||||
|
"^slave-if@[0-9a-f]+$":
|
||||||
|
type: object
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: arm,cci-400-ctrl-if
|
||||||
|
|
||||||
|
interface-type:
|
||||||
|
enum:
|
||||||
|
- ace
|
||||||
|
- ace-lite
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- interface-type
|
||||||
|
- reg
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
"^pmu@[0-9a-f]+$":
|
||||||
|
type: object
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
oneOf:
|
||||||
|
- const: arm,cci-400-pmu,r0
|
||||||
|
- const: arm,cci-400-pmu,r1
|
||||||
|
- const: arm,cci-400-pmu
|
||||||
|
deprecated: true
|
||||||
|
description: >
|
||||||
|
Permitted only where OS has secure access to CCI registers
|
||||||
|
- const: arm,cci-500-pmu,r0
|
||||||
|
- const: arm,cci-550-pmu,r0
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
minItems: 1
|
||||||
|
maxItems: 8
|
||||||
|
description: >
|
||||||
|
List of counter overflow interrupts, one per counter. The interrupts
|
||||||
|
must be specified starting with the cycle counter overflow interrupt,
|
||||||
|
followed by counter0 overflow interrupt, counter1 overflow
|
||||||
|
interrupt,... ,counterN overflow interrupt.
|
||||||
|
|
||||||
|
The CCI PMU has an interrupt signal for each counter. The number of
|
||||||
|
interrupts must be equal to the number of counters.
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- interrupts
|
||||||
|
- reg
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
required:
|
||||||
|
- "#address-cells"
|
||||||
|
- "#size-cells"
|
||||||
|
- compatible
|
||||||
|
- ranges
|
||||||
|
- reg
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
/ {
|
||||||
|
#address-cells = <2>;
|
||||||
|
#size-cells = <2>;
|
||||||
|
|
||||||
|
compatible = "arm,vexpress,v2p-ca15_a7", "arm,vexpress";
|
||||||
|
model = "V2P-CA15_CA7";
|
||||||
|
arm,hbi = <0x249>;
|
||||||
|
interrupt-parent = <&gic>;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This CCI node corresponds to a CCI component whose control
|
||||||
|
* registers sits at address 0x000000002c090000.
|
||||||
|
*
|
||||||
|
* CCI slave interface @0x000000002c091000 is connected to dma
|
||||||
|
* controller dma0.
|
||||||
|
*
|
||||||
|
* CCI slave interface @0x000000002c094000 is connected to CPUs
|
||||||
|
* {CPU0, CPU1};
|
||||||
|
*
|
||||||
|
* CCI slave interface @0x000000002c095000 is connected to CPUs
|
||||||
|
* {CPU2, CPU3};
|
||||||
|
*/
|
||||||
|
|
||||||
|
cpus {
|
||||||
|
#size-cells = <0>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
|
||||||
|
CPU0: cpu@0 {
|
||||||
|
device_type = "cpu";
|
||||||
|
compatible = "arm,cortex-a15";
|
||||||
|
cci-control-port = <&cci_control1>;
|
||||||
|
reg = <0x0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
CPU1: cpu@1 {
|
||||||
|
device_type = "cpu";
|
||||||
|
compatible = "arm,cortex-a15";
|
||||||
|
cci-control-port = <&cci_control1>;
|
||||||
|
reg = <0x1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
CPU2: cpu@100 {
|
||||||
|
device_type = "cpu";
|
||||||
|
compatible = "arm,cortex-a7";
|
||||||
|
cci-control-port = <&cci_control2>;
|
||||||
|
reg = <0x100>;
|
||||||
|
};
|
||||||
|
|
||||||
|
CPU3: cpu@101 {
|
||||||
|
device_type = "cpu";
|
||||||
|
compatible = "arm,cortex-a7";
|
||||||
|
cci-control-port = <&cci_control2>;
|
||||||
|
reg = <0x101>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
dma0: dma@3000000 {
|
||||||
|
/* compatible = "arm,pl330", "arm,primecell"; */
|
||||||
|
cci-control-port = <&cci_control0>;
|
||||||
|
reg = <0x0 0x3000000 0x0 0x1000>;
|
||||||
|
interrupts = <10>;
|
||||||
|
#dma-cells = <1>;
|
||||||
|
#dma-channels = <8>;
|
||||||
|
#dma-requests = <32>;
|
||||||
|
};
|
||||||
|
|
||||||
|
cci@2c090000 {
|
||||||
|
compatible = "arm,cci-400";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
reg = <0x0 0x2c090000 0 0x1000>;
|
||||||
|
ranges = <0x0 0x0 0x2c090000 0x10000>;
|
||||||
|
|
||||||
|
cci_control0: slave-if@1000 {
|
||||||
|
compatible = "arm,cci-400-ctrl-if";
|
||||||
|
interface-type = "ace-lite";
|
||||||
|
reg = <0x1000 0x1000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
cci_control1: slave-if@4000 {
|
||||||
|
compatible = "arm,cci-400-ctrl-if";
|
||||||
|
interface-type = "ace";
|
||||||
|
reg = <0x4000 0x1000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
cci_control2: slave-if@5000 {
|
||||||
|
compatible = "arm,cci-400-ctrl-if";
|
||||||
|
interface-type = "ace";
|
||||||
|
reg = <0x5000 0x1000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
pmu@9000 {
|
||||||
|
compatible = "arm,cci-400-pmu";
|
||||||
|
reg = <0x9000 0x5000>;
|
||||||
|
interrupts = <0 101 4>,
|
||||||
|
<0 102 4>,
|
||||||
|
<0 103 4>,
|
||||||
|
<0 104 4>,
|
||||||
|
<0 105 4>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
...
|
||||||
@@ -119,22 +119,6 @@ properties:
|
|||||||
- const: arm,foundation-aarch64
|
- const: arm,foundation-aarch64
|
||||||
- const: arm,vexpress
|
- const: arm,vexpress
|
||||||
|
|
||||||
arm,hbi:
|
|
||||||
$ref: '/schemas/types.yaml#/definitions/uint32'
|
|
||||||
description: This indicates the ARM HBI (Hardware Board ID), this is
|
|
||||||
ARM's unique board model ID, visible on the PCB's silkscreen.
|
|
||||||
|
|
||||||
arm,vexpress,site:
|
|
||||||
description: As Versatile Express can be configured in number of physically
|
|
||||||
different setups, the device tree should describe platform topology.
|
|
||||||
For this reason the root node and main motherboard node must define this
|
|
||||||
property, describing the physical location of the children nodes.
|
|
||||||
0 means motherboard site, while 1 and 2 are daughterboard sites, and
|
|
||||||
0xf means "sisterboard" which is the site containing the main CPU tile.
|
|
||||||
$ref: '/schemas/types.yaml#/definitions/uint32'
|
|
||||||
minimum: 0
|
|
||||||
maximum: 15
|
|
||||||
|
|
||||||
arm,vexpress,position:
|
arm,vexpress,position:
|
||||||
description: When daughterboards are stacked on one site, their position
|
description: When daughterboards are stacked on one site, their position
|
||||||
in the stack be be described this attribute.
|
in the stack be be described this attribute.
|
||||||
@@ -154,9 +138,9 @@ patternProperties:
|
|||||||
description: Static Memory Bus (SMB) node, if this exists it describes
|
description: Static Memory Bus (SMB) node, if this exists it describes
|
||||||
the connection between the motherboard and any tiles. Sometimes the
|
the connection between the motherboard and any tiles. Sometimes the
|
||||||
compatible is placed directly under this node, sometimes it is placed
|
compatible is placed directly under this node, sometimes it is placed
|
||||||
in a subnode named "motherboard". Sometimes the compatible includes
|
in a subnode named "motherboard-bus". Sometimes the compatible includes
|
||||||
"arm,vexpress,v2?-p1" sometimes (on software models) is is just
|
"arm,vexpress,v2?-p1" sometimes (on software models) is is just
|
||||||
"simple-bus". If the compatible is placed in the "motherboard" node,
|
"simple-bus". If the compatible is placed in the "motherboard-bus" node,
|
||||||
it is stricter and always has two compatibles.
|
it is stricter and always has two compatibles.
|
||||||
type: object
|
type: object
|
||||||
$ref: '/schemas/simple-bus.yaml'
|
$ref: '/schemas/simple-bus.yaml'
|
||||||
@@ -170,7 +154,9 @@ patternProperties:
|
|||||||
- arm,vexpress,v2p-p1
|
- arm,vexpress,v2p-p1
|
||||||
- const: simple-bus
|
- const: simple-bus
|
||||||
- const: simple-bus
|
- const: simple-bus
|
||||||
motherboard:
|
|
||||||
|
patternProperties:
|
||||||
|
'^motherboard-bus@':
|
||||||
type: object
|
type: object
|
||||||
description: The motherboard description provides a single "motherboard"
|
description: The motherboard description provides a single "motherboard"
|
||||||
node using 2 address cells corresponding to the Static Memory Bus
|
node using 2 address cells corresponding to the Static Memory Bus
|
||||||
@@ -183,6 +169,8 @@ patternProperties:
|
|||||||
const: 2
|
const: 2
|
||||||
"#size-cells":
|
"#size-cells":
|
||||||
const: 1
|
const: 1
|
||||||
|
ranges: true
|
||||||
|
|
||||||
compatible:
|
compatible:
|
||||||
items:
|
items:
|
||||||
- enum:
|
- enum:
|
||||||
@@ -196,8 +184,28 @@ patternProperties:
|
|||||||
- rs1
|
- rs1
|
||||||
- rs2
|
- rs2
|
||||||
|
|
||||||
|
arm,hbi:
|
||||||
|
$ref: '/schemas/types.yaml#/definitions/uint32'
|
||||||
|
description: This indicates the ARM HBI (Hardware Board ID), this is
|
||||||
|
ARM's unique board model ID, visible on the PCB's silkscreen.
|
||||||
|
|
||||||
|
arm,vexpress,site:
|
||||||
|
description: As Versatile Express can be configured in number of physically
|
||||||
|
different setups, the device tree should describe platform topology.
|
||||||
|
For this reason the root node and main motherboard node must define this
|
||||||
|
property, describing the physical location of the children nodes.
|
||||||
|
0 means motherboard site, while 1 and 2 are daughterboard sites, and
|
||||||
|
0xf means "sisterboard" which is the site containing the main CPU tile.
|
||||||
|
$ref: '/schemas/types.yaml#/definitions/uint32'
|
||||||
|
minimum: 0
|
||||||
|
maximum: 15
|
||||||
|
|
||||||
required:
|
required:
|
||||||
- compatible
|
- compatible
|
||||||
|
|
||||||
|
additionalProperties:
|
||||||
|
type: object
|
||||||
|
|
||||||
required:
|
required:
|
||||||
- compatible
|
- compatible
|
||||||
|
|
||||||
|
|||||||
38
Documentation/devicetree/bindings/arm/cci-control-port.yaml
Normal file
38
Documentation/devicetree/bindings/arm/cci-control-port.yaml
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/arm/cci-control-port.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: CCI Interconnect Bus Masters binding
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
||||||
|
|
||||||
|
description: |
|
||||||
|
Masters in the device tree connected to a CCI port (inclusive of CPUs
|
||||||
|
and their cpu nodes).
|
||||||
|
|
||||||
|
select: true
|
||||||
|
|
||||||
|
properties:
|
||||||
|
cci-control-port:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/phandle
|
||||||
|
|
||||||
|
additionalProperties: true
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
cpus {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
cpu@0 {
|
||||||
|
compatible = "arm,cortex-a15";
|
||||||
|
device_type = "cpu";
|
||||||
|
cci-control-port = <&cci_control1>;
|
||||||
|
reg = <0>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
...
|
||||||
@@ -1,224 +0,0 @@
|
|||||||
=======================================================
|
|
||||||
ARM CCI cache coherent interconnect binding description
|
|
||||||
=======================================================
|
|
||||||
|
|
||||||
ARM multi-cluster systems maintain intra-cluster coherency through a
|
|
||||||
cache coherent interconnect (CCI) that is capable of monitoring bus
|
|
||||||
transactions and manage coherency, TLB invalidations and memory barriers.
|
|
||||||
|
|
||||||
It allows snooping and distributed virtual memory message broadcast across
|
|
||||||
clusters, through memory mapped interface, with a global control register
|
|
||||||
space and multiple sets of interface control registers, one per slave
|
|
||||||
interface.
|
|
||||||
|
|
||||||
* CCI interconnect node
|
|
||||||
|
|
||||||
Description: Describes a CCI cache coherent Interconnect component
|
|
||||||
|
|
||||||
Node name must be "cci".
|
|
||||||
Node's parent must be the root node /, and the address space visible
|
|
||||||
through the CCI interconnect is the same as the one seen from the
|
|
||||||
root node (ie from CPUs perspective as per DT standard).
|
|
||||||
Every CCI node has to define the following properties:
|
|
||||||
|
|
||||||
- compatible
|
|
||||||
Usage: required
|
|
||||||
Value type: <string>
|
|
||||||
Definition: must contain one of the following:
|
|
||||||
"arm,cci-400"
|
|
||||||
"arm,cci-500"
|
|
||||||
"arm,cci-550"
|
|
||||||
|
|
||||||
- reg
|
|
||||||
Usage: required
|
|
||||||
Value type: Integer cells. A register entry, expressed as a pair
|
|
||||||
of cells, containing base and size.
|
|
||||||
Definition: A standard property. Specifies base physical
|
|
||||||
address of CCI control registers common to all
|
|
||||||
interfaces.
|
|
||||||
|
|
||||||
- ranges:
|
|
||||||
Usage: required
|
|
||||||
Value type: Integer cells. An array of range entries, expressed
|
|
||||||
as a tuple of cells, containing child address,
|
|
||||||
parent address and the size of the region in the
|
|
||||||
child address space.
|
|
||||||
Definition: A standard property. Follow rules in the Devicetree
|
|
||||||
Specification for hierarchical bus addressing. CCI
|
|
||||||
interfaces addresses refer to the parent node
|
|
||||||
addressing scheme to declare their register bases.
|
|
||||||
|
|
||||||
CCI interconnect node can define the following child nodes:
|
|
||||||
|
|
||||||
- CCI control interface nodes
|
|
||||||
|
|
||||||
Node name must be "slave-if".
|
|
||||||
Parent node must be CCI interconnect node.
|
|
||||||
|
|
||||||
A CCI control interface node must contain the following
|
|
||||||
properties:
|
|
||||||
|
|
||||||
- compatible
|
|
||||||
Usage: required
|
|
||||||
Value type: <string>
|
|
||||||
Definition: must be set to
|
|
||||||
"arm,cci-400-ctrl-if"
|
|
||||||
|
|
||||||
- interface-type:
|
|
||||||
Usage: required
|
|
||||||
Value type: <string>
|
|
||||||
Definition: must be set to one of {"ace", "ace-lite"}
|
|
||||||
depending on the interface type the node
|
|
||||||
represents.
|
|
||||||
|
|
||||||
- reg:
|
|
||||||
Usage: required
|
|
||||||
Value type: Integer cells. A register entry, expressed
|
|
||||||
as a pair of cells, containing base and
|
|
||||||
size.
|
|
||||||
Definition: the base address and size of the
|
|
||||||
corresponding interface programming
|
|
||||||
registers.
|
|
||||||
|
|
||||||
- CCI PMU node
|
|
||||||
|
|
||||||
Parent node must be CCI interconnect node.
|
|
||||||
|
|
||||||
A CCI pmu node must contain the following properties:
|
|
||||||
|
|
||||||
- compatible
|
|
||||||
Usage: required
|
|
||||||
Value type: <string>
|
|
||||||
Definition: Must contain one of:
|
|
||||||
"arm,cci-400-pmu,r0"
|
|
||||||
"arm,cci-400-pmu,r1"
|
|
||||||
"arm,cci-400-pmu" - DEPRECATED, permitted only where OS has
|
|
||||||
secure access to CCI registers
|
|
||||||
"arm,cci-500-pmu,r0"
|
|
||||||
"arm,cci-550-pmu,r0"
|
|
||||||
- reg:
|
|
||||||
Usage: required
|
|
||||||
Value type: Integer cells. A register entry, expressed
|
|
||||||
as a pair of cells, containing base and
|
|
||||||
size.
|
|
||||||
Definition: the base address and size of the
|
|
||||||
corresponding interface programming
|
|
||||||
registers.
|
|
||||||
|
|
||||||
- interrupts:
|
|
||||||
Usage: required
|
|
||||||
Value type: Integer cells. Array of interrupt specifier
|
|
||||||
entries, as defined in
|
|
||||||
../interrupt-controller/interrupts.txt.
|
|
||||||
Definition: list of counter overflow interrupts, one per
|
|
||||||
counter. The interrupts must be specified
|
|
||||||
starting with the cycle counter overflow
|
|
||||||
interrupt, followed by counter0 overflow
|
|
||||||
interrupt, counter1 overflow interrupt,...
|
|
||||||
,counterN overflow interrupt.
|
|
||||||
|
|
||||||
The CCI PMU has an interrupt signal for each
|
|
||||||
counter. The number of interrupts must be
|
|
||||||
equal to the number of counters.
|
|
||||||
|
|
||||||
* CCI interconnect bus masters
|
|
||||||
|
|
||||||
Description: masters in the device tree connected to a CCI port
|
|
||||||
(inclusive of CPUs and their cpu nodes).
|
|
||||||
|
|
||||||
A CCI interconnect bus master node must contain the following
|
|
||||||
properties:
|
|
||||||
|
|
||||||
- cci-control-port:
|
|
||||||
Usage: required
|
|
||||||
Value type: <phandle>
|
|
||||||
Definition: a phandle containing the CCI control interface node
|
|
||||||
the master is connected to.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
cpus {
|
|
||||||
#size-cells = <0>;
|
|
||||||
#address-cells = <1>;
|
|
||||||
|
|
||||||
CPU0: cpu@0 {
|
|
||||||
device_type = "cpu";
|
|
||||||
compatible = "arm,cortex-a15";
|
|
||||||
cci-control-port = <&cci_control1>;
|
|
||||||
reg = <0x0>;
|
|
||||||
};
|
|
||||||
|
|
||||||
CPU1: cpu@1 {
|
|
||||||
device_type = "cpu";
|
|
||||||
compatible = "arm,cortex-a15";
|
|
||||||
cci-control-port = <&cci_control1>;
|
|
||||||
reg = <0x1>;
|
|
||||||
};
|
|
||||||
|
|
||||||
CPU2: cpu@100 {
|
|
||||||
device_type = "cpu";
|
|
||||||
compatible = "arm,cortex-a7";
|
|
||||||
cci-control-port = <&cci_control2>;
|
|
||||||
reg = <0x100>;
|
|
||||||
};
|
|
||||||
|
|
||||||
CPU3: cpu@101 {
|
|
||||||
device_type = "cpu";
|
|
||||||
compatible = "arm,cortex-a7";
|
|
||||||
cci-control-port = <&cci_control2>;
|
|
||||||
reg = <0x101>;
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
dma0: dma@3000000 {
|
|
||||||
compatible = "arm,pl330", "arm,primecell";
|
|
||||||
cci-control-port = <&cci_control0>;
|
|
||||||
reg = <0x0 0x3000000 0x0 0x1000>;
|
|
||||||
interrupts = <10>;
|
|
||||||
#dma-cells = <1>;
|
|
||||||
#dma-channels = <8>;
|
|
||||||
#dma-requests = <32>;
|
|
||||||
};
|
|
||||||
|
|
||||||
cci@2c090000 {
|
|
||||||
compatible = "arm,cci-400";
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
reg = <0x0 0x2c090000 0 0x1000>;
|
|
||||||
ranges = <0x0 0x0 0x2c090000 0x10000>;
|
|
||||||
|
|
||||||
cci_control0: slave-if@1000 {
|
|
||||||
compatible = "arm,cci-400-ctrl-if";
|
|
||||||
interface-type = "ace-lite";
|
|
||||||
reg = <0x1000 0x1000>;
|
|
||||||
};
|
|
||||||
|
|
||||||
cci_control1: slave-if@4000 {
|
|
||||||
compatible = "arm,cci-400-ctrl-if";
|
|
||||||
interface-type = "ace";
|
|
||||||
reg = <0x4000 0x1000>;
|
|
||||||
};
|
|
||||||
|
|
||||||
cci_control2: slave-if@5000 {
|
|
||||||
compatible = "arm,cci-400-ctrl-if";
|
|
||||||
interface-type = "ace";
|
|
||||||
reg = <0x5000 0x1000>;
|
|
||||||
};
|
|
||||||
|
|
||||||
pmu@9000 {
|
|
||||||
compatible = "arm,cci-400-pmu";
|
|
||||||
reg = <0x9000 0x5000>;
|
|
||||||
interrupts = <0 101 4>,
|
|
||||||
<0 102 4>,
|
|
||||||
<0 103 4>,
|
|
||||||
<0 104 4>,
|
|
||||||
<0 105 4>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
This CCI node corresponds to a CCI component whose control registers sits
|
|
||||||
at address 0x000000002c090000.
|
|
||||||
CCI slave interface @0x000000002c091000 is connected to dma controller dma0.
|
|
||||||
CCI slave interface @0x000000002c094000 is connected to CPUs {CPU0, CPU1};
|
|
||||||
CCI slave interface @0x000000002c095000 is connected to CPUs {CPU2, CPU3};
|
|
||||||
@@ -240,6 +240,8 @@ properties:
|
|||||||
DMIPS/MHz, relative to highest capacity-dmips-mhz
|
DMIPS/MHz, relative to highest capacity-dmips-mhz
|
||||||
in the system.
|
in the system.
|
||||||
|
|
||||||
|
cci-control-port: true
|
||||||
|
|
||||||
dynamic-power-coefficient:
|
dynamic-power-coefficient:
|
||||||
$ref: '/schemas/types.yaml#/definitions/uint32'
|
$ref: '/schemas/types.yaml#/definitions/uint32'
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -1,20 +0,0 @@
|
|||||||
Trusted Foundations
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
Boards that use the Trusted Foundations secure monitor can signal its
|
|
||||||
presence by declaring a node compatible with "tlm,trusted-foundations"
|
|
||||||
under the /firmware/ node
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible: "tlm,trusted-foundations"
|
|
||||||
- tlm,version-major: major version number of Trusted Foundations firmware
|
|
||||||
- tlm,version-minor: minor version number of Trusted Foundations firmware
|
|
||||||
|
|
||||||
Example:
|
|
||||||
firmware {
|
|
||||||
trusted-foundations {
|
|
||||||
compatible = "tlm,trusted-foundations";
|
|
||||||
tlm,version-major = <2>;
|
|
||||||
tlm,version-minor = <8>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: "http://devicetree.org/schemas/arm/firmware/tlm,trusted-foundations.yaml#"
|
||||||
|
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||||
|
|
||||||
|
title: Trusted Foundations
|
||||||
|
|
||||||
|
description: |
|
||||||
|
Boards that use the Trusted Foundations secure monitor can signal its
|
||||||
|
presence by declaring a node compatible under the /firmware/ node
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Stephen Warren <swarren@nvidia.com>
|
||||||
|
|
||||||
|
properties:
|
||||||
|
$nodename:
|
||||||
|
const: trusted-foundations
|
||||||
|
|
||||||
|
compatible:
|
||||||
|
const: tlm,trusted-foundations
|
||||||
|
|
||||||
|
tlm,version-major:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description: major version number of Trusted Foundations firmware
|
||||||
|
|
||||||
|
tlm,version-minor:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description: minor version number of Trusted Foundations firmware
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- tlm,version-major
|
||||||
|
- tlm,version-minor
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
firmware {
|
||||||
|
trusted-foundations {
|
||||||
|
compatible = "tlm,trusted-foundations";
|
||||||
|
tlm,version-major = <2>;
|
||||||
|
tlm,version-minor = <8>;
|
||||||
|
};
|
||||||
|
};
|
||||||
79
Documentation/devicetree/bindings/bus/palmbus.yaml
Normal file
79
Documentation/devicetree/bindings/bus/palmbus.yaml
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/bus/palmbus.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Ralink PalmBus Device Tree Bindings
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Sergio Paracuellos <sergio.paracuellos@gmail.com>
|
||||||
|
|
||||||
|
description: |
|
||||||
|
The ralink palmbus controller can be found in all ralink MIPS
|
||||||
|
SoCs. It provides an external bus for connecting multiple
|
||||||
|
external devices to the SoC.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
$nodename:
|
||||||
|
pattern: "^palmbus(@[0-9a-f]+)?$"
|
||||||
|
|
||||||
|
"#address-cells":
|
||||||
|
const: 1
|
||||||
|
|
||||||
|
"#size-cells":
|
||||||
|
const: 1
|
||||||
|
|
||||||
|
compatible:
|
||||||
|
const: palmbus
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
ranges: true
|
||||||
|
|
||||||
|
patternProperties:
|
||||||
|
# All other properties should be child nodes with unit-address and 'reg'
|
||||||
|
"@[0-9a-f]+$":
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
required:
|
||||||
|
- reg
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- "#address-cells"
|
||||||
|
- "#size-cells"
|
||||||
|
- ranges
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/interrupt-controller/mips-gic.h>
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
|
palmbus@1e000000 {
|
||||||
|
compatible = "palmbus";
|
||||||
|
reg = <0x1e000000 0x100000>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
ranges = <0x0 0x1e000000 0x0fffff>;
|
||||||
|
|
||||||
|
gpio@600 {
|
||||||
|
#gpio-cells = <2>;
|
||||||
|
#interrupt-cells = <2>;
|
||||||
|
compatible = "mediatek,mt7621-gpio";
|
||||||
|
gpio-controller;
|
||||||
|
gpio-ranges = <&pinctrl 0 0 95>;
|
||||||
|
interrupt-controller;
|
||||||
|
reg = <0x600 0x100>;
|
||||||
|
interrupt-parent = <&gic>;
|
||||||
|
interrupts = <GIC_SHARED 12 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
...
|
||||||
@@ -1,139 +0,0 @@
|
|||||||
Texas Instruments sysc interconnect target module wrapper binding
|
|
||||||
|
|
||||||
Texas Instruments SoCs can have a generic interconnect target module
|
|
||||||
hardware for devices connected to various interconnects such as L3
|
|
||||||
interconnect (Arteris NoC) and L4 interconnect (Sonics s3220). The sysc
|
|
||||||
is mostly used for interaction between module and PRCM. It participates
|
|
||||||
in the OCP Disconnect Protocol but other than that is mostly independent
|
|
||||||
of the interconnect.
|
|
||||||
|
|
||||||
Each interconnect target module can have one or more devices connected to
|
|
||||||
it. There is a set of control registers for managing interconnect target
|
|
||||||
module clocks, idle modes and interconnect level resets for the module.
|
|
||||||
|
|
||||||
These control registers are sprinkled into the unused register address
|
|
||||||
space of the first child device IP block managed by the interconnect
|
|
||||||
target module and typically are named REVISION, SYSCONFIG and SYSSTATUS.
|
|
||||||
|
|
||||||
Required standard properties:
|
|
||||||
|
|
||||||
- compatible shall be one of the following generic types:
|
|
||||||
|
|
||||||
"ti,sysc"
|
|
||||||
"ti,sysc-omap2"
|
|
||||||
"ti,sysc-omap4"
|
|
||||||
"ti,sysc-omap4-simple"
|
|
||||||
|
|
||||||
or one of the following derivative types for hardware
|
|
||||||
needing special workarounds:
|
|
||||||
|
|
||||||
"ti,sysc-omap2-timer"
|
|
||||||
"ti,sysc-omap4-timer"
|
|
||||||
"ti,sysc-omap3430-sr"
|
|
||||||
"ti,sysc-omap3630-sr"
|
|
||||||
"ti,sysc-omap4-sr"
|
|
||||||
"ti,sysc-omap3-sham"
|
|
||||||
"ti,sysc-omap-aes"
|
|
||||||
"ti,sysc-mcasp"
|
|
||||||
"ti,sysc-dra7-mcasp"
|
|
||||||
"ti,sysc-usb-host-fs"
|
|
||||||
"ti,sysc-dra7-mcan"
|
|
||||||
"ti,sysc-pruss"
|
|
||||||
|
|
||||||
- reg shall have register areas implemented for the interconnect
|
|
||||||
target module in question such as revision, sysc and syss
|
|
||||||
|
|
||||||
- reg-names shall contain the register names implemented for the
|
|
||||||
interconnect target module in question such as
|
|
||||||
"rev, "sysc", and "syss"
|
|
||||||
|
|
||||||
- ranges shall contain the interconnect target module IO range
|
|
||||||
available for one or more child device IP blocks managed
|
|
||||||
by the interconnect target module, the ranges may include
|
|
||||||
multiple ranges such as device L4 range for control and
|
|
||||||
parent L3 range for DMA access
|
|
||||||
|
|
||||||
Optional properties:
|
|
||||||
|
|
||||||
- ti,sysc-mask shall contain mask of supported register bits for the
|
|
||||||
SYSCONFIG register as documented in the Technical Reference
|
|
||||||
Manual (TRM) for the interconnect target module
|
|
||||||
|
|
||||||
- ti,sysc-midle list of master idle modes supported by the interconnect
|
|
||||||
target module as documented in the TRM for SYSCONFIG
|
|
||||||
register MIDLEMODE bits
|
|
||||||
|
|
||||||
- ti,sysc-sidle list of slave idle modes supported by the interconnect
|
|
||||||
target module as documented in the TRM for SYSCONFIG
|
|
||||||
register SIDLEMODE bits
|
|
||||||
|
|
||||||
- ti,sysc-delay-us delay needed after OCP softreset before accssing
|
|
||||||
SYSCONFIG register again
|
|
||||||
|
|
||||||
- ti,syss-mask optional mask of reset done status bits as described in the
|
|
||||||
TRM for SYSSTATUS registers, typically 1 with some devices
|
|
||||||
having separate reset done bits for children like OHCI and
|
|
||||||
EHCI
|
|
||||||
|
|
||||||
- clocks clock specifier for each name in the clock-names as
|
|
||||||
specified in the binding documentation for ti-clkctrl,
|
|
||||||
typically available for all interconnect targets on TI SoCs
|
|
||||||
based on omap4 except if it's read-only register in hwauto
|
|
||||||
mode as for example omap4 L4_CFG_CLKCTRL
|
|
||||||
|
|
||||||
- clock-names should contain at least "fck", and optionally also "ick"
|
|
||||||
depending on the SoC and the interconnect target module,
|
|
||||||
some interconnect target modules also need additional
|
|
||||||
optional clocks that can be specified as listed in TRM
|
|
||||||
for the related CLKCTRL register bits 8 to 15 such as
|
|
||||||
"dbclk" or "clk32k" depending on their role
|
|
||||||
|
|
||||||
- ti,hwmods optional TI interconnect module name to use legacy
|
|
||||||
hwmod platform data
|
|
||||||
|
|
||||||
- ti,no-reset-on-init interconnect target module should not be reset at init
|
|
||||||
|
|
||||||
- ti,no-idle-on-init interconnect target module should not be idled at init
|
|
||||||
|
|
||||||
- ti,no-idle interconnect target module should not be idled
|
|
||||||
|
|
||||||
Example: Single instance of MUSB controller on omap4 using interconnect ranges
|
|
||||||
using offsets from l4_cfg second segment (0x4a000000 + 0x80000 = 0x4a0ab000):
|
|
||||||
|
|
||||||
target-module@2b000 { /* 0x4a0ab000, ap 84 12.0 */
|
|
||||||
compatible = "ti,sysc-omap2";
|
|
||||||
ti,hwmods = "usb_otg_hs";
|
|
||||||
reg = <0x2b400 0x4>,
|
|
||||||
<0x2b404 0x4>,
|
|
||||||
<0x2b408 0x4>;
|
|
||||||
reg-names = "rev", "sysc", "syss";
|
|
||||||
clocks = <&l3_init_clkctrl OMAP4_USB_OTG_HS_CLKCTRL 0>;
|
|
||||||
clock-names = "fck";
|
|
||||||
ti,sysc-mask = <(SYSC_OMAP2_ENAWAKEUP |
|
|
||||||
SYSC_OMAP2_SOFTRESET |
|
|
||||||
SYSC_OMAP2_AUTOIDLE)>;
|
|
||||||
ti,sysc-midle = <SYSC_IDLE_FORCE>,
|
|
||||||
<SYSC_IDLE_NO>,
|
|
||||||
<SYSC_IDLE_SMART>;
|
|
||||||
ti,sysc-sidle = <SYSC_IDLE_FORCE>,
|
|
||||||
<SYSC_IDLE_NO>,
|
|
||||||
<SYSC_IDLE_SMART>,
|
|
||||||
<SYSC_IDLE_SMART_WKUP>;
|
|
||||||
ti,syss-mask = <1>;
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
ranges = <0 0x2b000 0x1000>;
|
|
||||||
|
|
||||||
usb_otg_hs: otg@0 {
|
|
||||||
compatible = "ti,omap4-musb";
|
|
||||||
reg = <0x0 0x7ff>;
|
|
||||||
interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>,
|
|
||||||
<GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
|
|
||||||
usb-phy = <&usb2_phy>;
|
|
||||||
...
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
Note that other SoCs, such as am335x can have multiple child devices. On am335x
|
|
||||||
there are two MUSB instances, two USB PHY instances, and a single CPPI41 DMA
|
|
||||||
instance as children of a single interconnect target module.
|
|
||||||
216
Documentation/devicetree/bindings/bus/ti-sysc.yaml
Normal file
216
Documentation/devicetree/bindings/bus/ti-sysc.yaml
Normal file
@@ -0,0 +1,216 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/bus/ti-sysc.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Texas Instruments interconnect target module binding
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Tony Lindgren <tony@atomide.com>
|
||||||
|
|
||||||
|
description:
|
||||||
|
Texas Instruments SoCs can have a generic interconnect target module
|
||||||
|
for devices connected to various interconnects such as L3 interconnect
|
||||||
|
using Arteris NoC, and L4 interconnect using Sonics s3220. This module
|
||||||
|
is mostly used for interaction between module and Power, Reset and Clock
|
||||||
|
Manager PRCM. It participates in the OCP Disconnect Protocol, but other
|
||||||
|
than that it is mostly independent of the interconnect.
|
||||||
|
|
||||||
|
Each interconnect target module can have one or more devices connected to
|
||||||
|
it. There is a set of control registers for managing the interconnect target
|
||||||
|
module clocks, idle modes and interconnect level resets.
|
||||||
|
|
||||||
|
The interconnect target module control registers are sprinkled into the
|
||||||
|
unused register address space of the first child device IP block managed by
|
||||||
|
the interconnect target module. Typically the register names are REVISION,
|
||||||
|
SYSCONFIG and SYSSTATUS.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
$nodename:
|
||||||
|
pattern: "^target-module(@[0-9a-f]+)?$"
|
||||||
|
|
||||||
|
compatible:
|
||||||
|
oneOf:
|
||||||
|
- items:
|
||||||
|
- enum:
|
||||||
|
- ti,sysc-omap2
|
||||||
|
- ti,sysc-omap2
|
||||||
|
- ti,sysc-omap4
|
||||||
|
- ti,sysc-omap4-simple
|
||||||
|
- ti,sysc-omap2-timer
|
||||||
|
- ti,sysc-omap4-timer
|
||||||
|
- ti,sysc-omap3430-sr
|
||||||
|
- ti,sysc-omap3630-sr
|
||||||
|
- ti,sysc-omap4-sr
|
||||||
|
- ti,sysc-omap3-sham
|
||||||
|
- ti,sysc-omap-aes
|
||||||
|
- ti,sysc-mcasp
|
||||||
|
- ti,sysc-dra7-mcasp
|
||||||
|
- ti,sysc-usb-host-fs
|
||||||
|
- ti,sysc-dra7-mcan
|
||||||
|
- ti,sysc-pruss
|
||||||
|
- const: ti,sysc
|
||||||
|
- items:
|
||||||
|
- const: ti,sysc
|
||||||
|
|
||||||
|
reg:
|
||||||
|
description:
|
||||||
|
Interconnect target module control registers consisting of
|
||||||
|
REVISION, SYSCONFIG and SYSSTATUS registers as defined in the
|
||||||
|
Technical Reference Manual for the SoC.
|
||||||
|
minItems: 1
|
||||||
|
maxItems: 3
|
||||||
|
|
||||||
|
reg-names:
|
||||||
|
description:
|
||||||
|
Interconnect target module control register names consisting
|
||||||
|
of "rev", "sysc" and "syss".
|
||||||
|
oneOf:
|
||||||
|
- minItems: 1
|
||||||
|
items:
|
||||||
|
- const: rev
|
||||||
|
- const: sysc
|
||||||
|
- const: syss
|
||||||
|
- items:
|
||||||
|
- const: rev
|
||||||
|
- const: syss
|
||||||
|
- enum: [ sysc, syss ]
|
||||||
|
|
||||||
|
power-domains:
|
||||||
|
description: Target module power domain if available.
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
clocks:
|
||||||
|
description:
|
||||||
|
Target module clocks consisting of one functional clock, one
|
||||||
|
interface clock, and up to 8 module specific optional clocks.
|
||||||
|
Some modules may have only the functional clock, and some have
|
||||||
|
no configurable clocks.
|
||||||
|
minItems: 1
|
||||||
|
maxItems: 4
|
||||||
|
|
||||||
|
clock-names:
|
||||||
|
description:
|
||||||
|
Target module clock names like "fck", "ick", "optck1", "optck2"
|
||||||
|
if the clocks are configurable.
|
||||||
|
oneOf:
|
||||||
|
- enum: [ ick, fck, sys_clk ]
|
||||||
|
- items:
|
||||||
|
- const: fck
|
||||||
|
- enum: [ ick. dbclk, osc, sys_clk, dss_clk, ahclkx ]
|
||||||
|
- items:
|
||||||
|
- const: fck
|
||||||
|
- const: phy-clk
|
||||||
|
- const: phy-clk-div
|
||||||
|
- items:
|
||||||
|
- const: fck
|
||||||
|
- const: hdmi_clk
|
||||||
|
- const: sys_clk
|
||||||
|
- const: tv_clk
|
||||||
|
- items:
|
||||||
|
- const: fck
|
||||||
|
- const: ahclkx
|
||||||
|
- const: ahclkr
|
||||||
|
|
||||||
|
resets:
|
||||||
|
description:
|
||||||
|
Target module reset bit in the RSTCTRL register if wired for the module.
|
||||||
|
Note that the other reset bits should be mapped for the child device
|
||||||
|
driver to use.
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
reset-names:
|
||||||
|
description:
|
||||||
|
Target module reset names in the RSTCTRL register, typically named
|
||||||
|
"rstctrl" if only one reset bit is wired for the module.
|
||||||
|
items:
|
||||||
|
- const: rstctrl
|
||||||
|
|
||||||
|
'#address-cells':
|
||||||
|
enum: [ 1, 2 ]
|
||||||
|
|
||||||
|
'#size-cells':
|
||||||
|
enum: [ 1, 2 ]
|
||||||
|
|
||||||
|
ranges: true
|
||||||
|
|
||||||
|
dma-ranges: true
|
||||||
|
|
||||||
|
ti,sysc-mask:
|
||||||
|
description: Mask of supported register bits for the SYSCONFIG register
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
|
||||||
|
ti,sysc-midle:
|
||||||
|
description: List of hardware supported idle modes
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||||
|
|
||||||
|
ti,sysc-sidle:
|
||||||
|
description: List of hardware supported idle modes
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||||
|
|
||||||
|
ti,syss-mask:
|
||||||
|
description: Mask of supported register bits for the SYSSTATUS register
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
|
||||||
|
ti,sysc-delay-us:
|
||||||
|
description: Delay needed after OCP softreset before accessing SYCONFIG
|
||||||
|
default: 0
|
||||||
|
minimum: 0
|
||||||
|
maximum: 2
|
||||||
|
|
||||||
|
ti,no-reset-on-init:
|
||||||
|
description: Interconnect target module shall not be reset at init
|
||||||
|
type: boolean
|
||||||
|
|
||||||
|
ti,no-idle-on-init:
|
||||||
|
description: Interconnect target module shall not be idled at init
|
||||||
|
type: boolean
|
||||||
|
|
||||||
|
ti,no-idle:
|
||||||
|
description: Interconnect target module shall not be idled
|
||||||
|
type: boolean
|
||||||
|
|
||||||
|
ti,hwmods:
|
||||||
|
description: Interconnect module name to use with legacy hwmod data
|
||||||
|
$ref: /schemas/types.yaml#/definitions/string
|
||||||
|
deprecated: true
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- '#address-cells'
|
||||||
|
- '#size-cells'
|
||||||
|
- ranges
|
||||||
|
|
||||||
|
additionalProperties:
|
||||||
|
type: object
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/bus/ti-sysc.h>
|
||||||
|
#include <dt-bindings/clock/omap4.h>
|
||||||
|
|
||||||
|
target-module@2b000 {
|
||||||
|
compatible = "ti,sysc-omap2", "ti,sysc";
|
||||||
|
ti,hwmods = "usb_otg_hs";
|
||||||
|
reg = <0x2b400 0x4>,
|
||||||
|
<0x2b404 0x4>,
|
||||||
|
<0x2b408 0x4>;
|
||||||
|
reg-names = "rev", "sysc", "syss";
|
||||||
|
clocks = <&l3_init_clkctrl OMAP4_USB_OTG_HS_CLKCTRL 0>;
|
||||||
|
clock-names = "fck";
|
||||||
|
ti,sysc-mask = <(SYSC_OMAP2_ENAWAKEUP |
|
||||||
|
SYSC_OMAP2_SOFTRESET |
|
||||||
|
SYSC_OMAP2_AUTOIDLE)>;
|
||||||
|
ti,sysc-midle = <SYSC_IDLE_FORCE>,
|
||||||
|
<SYSC_IDLE_NO>,
|
||||||
|
<SYSC_IDLE_SMART>;
|
||||||
|
ti,sysc-sidle = <SYSC_IDLE_FORCE>,
|
||||||
|
<SYSC_IDLE_NO>,
|
||||||
|
<SYSC_IDLE_SMART>,
|
||||||
|
<SYSC_IDLE_SMART_WKUP>;
|
||||||
|
ti,syss-mask = <1>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
ranges = <0 0x2b000 0x1000>;
|
||||||
|
};
|
||||||
@@ -174,7 +174,7 @@ Example:
|
|||||||
compatible = "rockchip,rk3399-dmc";
|
compatible = "rockchip,rk3399-dmc";
|
||||||
devfreq-events = <&dfi>;
|
devfreq-events = <&dfi>;
|
||||||
interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
clocks = <&cru SCLK_DDRCLK>;
|
clocks = <&cru SCLK_DDRC>;
|
||||||
clock-names = "dmc_clk";
|
clock-names = "dmc_clk";
|
||||||
operating-points-v2 = <&dmc_opp_table>;
|
operating-points-v2 = <&dmc_opp_table>;
|
||||||
center-supply = <&ppvar_centerlogic>;
|
center-supply = <&ppvar_centerlogic>;
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ Example:
|
|||||||
blue-and-red-wiring = "crossed";
|
blue-and-red-wiring = "crossed";
|
||||||
|
|
||||||
port {
|
port {
|
||||||
lcdc_0: endpoint@0 {
|
lcdc_0: endpoint {
|
||||||
remote-endpoint = <&hdmi_0>;
|
remote-endpoint = <&hdmi_0>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -75,7 +75,7 @@ Example:
|
|||||||
pinctrl-1 = <&nxp_hdmi_bonelt_off_pins>;
|
pinctrl-1 = <&nxp_hdmi_bonelt_off_pins>;
|
||||||
|
|
||||||
port {
|
port {
|
||||||
hdmi_0: endpoint@0 {
|
hdmi_0: endpoint {
|
||||||
remote-endpoint = <&lcdc_0>;
|
remote-endpoint = <&lcdc_0>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -160,8 +160,8 @@ examples:
|
|||||||
<&xlnx_dpdma 2>,
|
<&xlnx_dpdma 2>,
|
||||||
<&xlnx_dpdma 3>;
|
<&xlnx_dpdma 3>;
|
||||||
|
|
||||||
phys = <&psgtr 1 PHY_TYPE_DP 0 3 27000000>,
|
phys = <&psgtr 1 PHY_TYPE_DP 0 3>,
|
||||||
<&psgtr 0 PHY_TYPE_DP 1 3 27000000>;
|
<&psgtr 0 PHY_TYPE_DP 1 3>;
|
||||||
|
|
||||||
phy-names = "dp-phy0", "dp-phy1";
|
phy-names = "dp-phy0", "dp-phy1";
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -0,0 +1,301 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||||
|
# Copyright 2019 Bootlin
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: "http://devicetree.org/schemas/display/xylon,logicvc-display.yaml#"
|
||||||
|
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||||
|
|
||||||
|
title: Xylon LogiCVC display controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Paul Kocialkowski <paul.kocialkowski@bootlin.com>
|
||||||
|
|
||||||
|
description: |
|
||||||
|
The Xylon LogiCVC is a display controller that supports multiple layers.
|
||||||
|
It is usually implemented as programmable logic and was optimized for use
|
||||||
|
with Xilinx Zynq-7000 SoCs and Xilinx FPGAs.
|
||||||
|
|
||||||
|
Because the controller is intended for use in a FPGA, most of the
|
||||||
|
configuration of the controller takes place at logic configuration bitstream
|
||||||
|
synthesis time. As a result, many of the device-tree bindings are meant to
|
||||||
|
reflect the synthesis configuration and must not be configured differently.
|
||||||
|
Matching synthesis parameters are provided when applicable.
|
||||||
|
|
||||||
|
Layers are declared in the "layers" sub-node and have dedicated configuration.
|
||||||
|
In version 3 of the controller, each layer has fixed memory offset and address
|
||||||
|
starting from the video memory base address for its framebuffer. In version 4,
|
||||||
|
framebuffers are configured with a direct memory address instead.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
enum:
|
||||||
|
- xylon,logicvc-3.02.a-display
|
||||||
|
- xylon,logicvc-4.01.a-display
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
clocks:
|
||||||
|
minItems: 1
|
||||||
|
maxItems: 4
|
||||||
|
|
||||||
|
clock-names:
|
||||||
|
minItems: 1
|
||||||
|
items:
|
||||||
|
# vclk is required and must be provided as first item.
|
||||||
|
- const: vclk
|
||||||
|
# Other clocks are optional and can be provided in any order.
|
||||||
|
- enum:
|
||||||
|
- vclk2
|
||||||
|
- lvdsclk
|
||||||
|
- lvdsclkn
|
||||||
|
- enum:
|
||||||
|
- vclk2
|
||||||
|
- lvdsclk
|
||||||
|
- lvdsclkn
|
||||||
|
- enum:
|
||||||
|
- vclk2
|
||||||
|
- lvdsclk
|
||||||
|
- lvdsclkn
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
memory-region:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
xylon,display-interface:
|
||||||
|
enum:
|
||||||
|
# Parallel RGB interface (C_DISPLAY_INTERFACE == 0)
|
||||||
|
- parallel-rgb
|
||||||
|
# ITU-T BR656 interface (C_DISPLAY_INTERFACE == 1)
|
||||||
|
- bt656
|
||||||
|
# 4-bit LVDS interface (C_DISPLAY_INTERFACE == 2)
|
||||||
|
- lvds-4bits
|
||||||
|
# 3-bit LVDS interface (C_DISPLAY_INTERFACE == 4)
|
||||||
|
- lvds-3bits
|
||||||
|
# DVI interface (C_DISPLAY_INTERFACE == 5)
|
||||||
|
- dvi
|
||||||
|
description: Display output interface (C_DISPLAY_INTERFACE).
|
||||||
|
|
||||||
|
xylon,display-colorspace:
|
||||||
|
enum:
|
||||||
|
# RGB colorspace (C_DISPLAY_COLOR_SPACE == 0)
|
||||||
|
- rgb
|
||||||
|
# YUV 4:2:2 colorspace (C_DISPLAY_COLOR_SPACE == 1)
|
||||||
|
- yuv422
|
||||||
|
# YUV 4:4:4 colorspace (C_DISPLAY_COLOR_SPACE == 2)
|
||||||
|
- yuv444
|
||||||
|
description: Display output colorspace (C_DISPLAY_COLOR_SPACE).
|
||||||
|
|
||||||
|
xylon,display-depth:
|
||||||
|
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||||
|
description: Display output depth (C_PIXEL_DATA_WIDTH).
|
||||||
|
|
||||||
|
xylon,row-stride:
|
||||||
|
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||||
|
description: Fixed number of pixels in a framebuffer row (C_ROW_STRIDE).
|
||||||
|
|
||||||
|
xylon,dithering:
|
||||||
|
$ref: "/schemas/types.yaml#/definitions/flag"
|
||||||
|
description: Dithering module is enabled (C_XCOLOR)
|
||||||
|
|
||||||
|
xylon,background-layer:
|
||||||
|
$ref: "/schemas/types.yaml#/definitions/flag"
|
||||||
|
description: |
|
||||||
|
The last layer is used to display a black background (C_USE_BACKGROUND).
|
||||||
|
The layer must still be registered.
|
||||||
|
|
||||||
|
xylon,layers-configurable:
|
||||||
|
$ref: "/schemas/types.yaml#/definitions/flag"
|
||||||
|
description: |
|
||||||
|
Configuration of layers' size, position and offset is enabled
|
||||||
|
(C_USE_SIZE_POSITION).
|
||||||
|
|
||||||
|
layers:
|
||||||
|
type: object
|
||||||
|
|
||||||
|
properties:
|
||||||
|
"#address-cells":
|
||||||
|
const: 1
|
||||||
|
|
||||||
|
"#size-cells":
|
||||||
|
const: 0
|
||||||
|
|
||||||
|
patternProperties:
|
||||||
|
"^layer@[0-9]+$":
|
||||||
|
type: object
|
||||||
|
|
||||||
|
properties:
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
xylon,layer-depth:
|
||||||
|
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||||
|
description: Layer depth (C_LAYER_X_DATA_WIDTH).
|
||||||
|
|
||||||
|
xylon,layer-colorspace:
|
||||||
|
enum:
|
||||||
|
# RGB colorspace (C_LAYER_X_TYPE == 0)
|
||||||
|
- rgb
|
||||||
|
# YUV packed colorspace (C_LAYER_X_TYPE == 0)
|
||||||
|
- yuv
|
||||||
|
description: Layer colorspace (C_LAYER_X_TYPE).
|
||||||
|
|
||||||
|
xylon,layer-alpha-mode:
|
||||||
|
enum:
|
||||||
|
# Alpha is configured layer-wide (C_LAYER_X_ALPHA_MODE == 0)
|
||||||
|
- layer
|
||||||
|
# Alpha is configured per-pixel (C_LAYER_X_ALPHA_MODE == 1)
|
||||||
|
- pixel
|
||||||
|
description: Alpha mode for the layer (C_LAYER_X_ALPHA_MODE).
|
||||||
|
|
||||||
|
xylon,layer-base-offset:
|
||||||
|
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||||
|
description: |
|
||||||
|
Offset in number of lines (C_LAYER_X_OFFSET) starting from the
|
||||||
|
video RAM base (C_VMEM_BASEADDR), only for version 3.
|
||||||
|
|
||||||
|
xylon,layer-buffer-offset:
|
||||||
|
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||||
|
description: |
|
||||||
|
Offset in number of lines (C_BUFFER_*_OFFSET) starting from the
|
||||||
|
layer base offset for the second buffer used in double-buffering.
|
||||||
|
|
||||||
|
xylon,layer-primary:
|
||||||
|
$ref: "/schemas/types.yaml#/definitions/flag"
|
||||||
|
description: |
|
||||||
|
Layer should be registered as a primary plane (exactly one is
|
||||||
|
required).
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
required:
|
||||||
|
- reg
|
||||||
|
- xylon,layer-depth
|
||||||
|
- xylon,layer-colorspace
|
||||||
|
- xylon,layer-alpha-mode
|
||||||
|
|
||||||
|
required:
|
||||||
|
- "#address-cells"
|
||||||
|
- "#size-cells"
|
||||||
|
- layer@0
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
description: |
|
||||||
|
The description of the display controller layers, containing layer
|
||||||
|
sub-nodes that each describe a registered layer.
|
||||||
|
|
||||||
|
port:
|
||||||
|
$ref: /schemas/graph.yaml#/properties/port
|
||||||
|
description: |
|
||||||
|
Video output port, typically connected to a panel or bridge.
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- clocks
|
||||||
|
- clock-names
|
||||||
|
- interrupts
|
||||||
|
- xylon,display-interface
|
||||||
|
- xylon,display-colorspace
|
||||||
|
- xylon,display-depth
|
||||||
|
- xylon,row-stride
|
||||||
|
- layers
|
||||||
|
- port
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
|
|
||||||
|
logicvc: logicvc@43c00000 {
|
||||||
|
compatible = "xylon,logicvc-3.02.a", "syscon", "simple-mfd";
|
||||||
|
reg = <0x43c00000 0x6000>;
|
||||||
|
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
logicvc_display: display@0 {
|
||||||
|
compatible = "xylon,logicvc-3.02.a-display";
|
||||||
|
reg = <0x0 0x6000>;
|
||||||
|
|
||||||
|
memory-region = <&logicvc_cma>;
|
||||||
|
|
||||||
|
clocks = <&logicvc_vclk 0>, <&logicvc_lvdsclk 0>;
|
||||||
|
clock-names = "vclk", "lvdsclk";
|
||||||
|
|
||||||
|
interrupt-parent = <&intc>;
|
||||||
|
interrupts = <0 34 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
|
||||||
|
xylon,display-interface = "lvds-4bits";
|
||||||
|
xylon,display-colorspace = "rgb";
|
||||||
|
xylon,display-depth = <16>;
|
||||||
|
xylon,row-stride = <1024>;
|
||||||
|
|
||||||
|
xylon,layers-configurable;
|
||||||
|
|
||||||
|
layers {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
layer@0 {
|
||||||
|
reg = <0>;
|
||||||
|
xylon,layer-depth = <16>;
|
||||||
|
xylon,layer-colorspace = "rgb";
|
||||||
|
xylon,layer-alpha-mode = "layer";
|
||||||
|
xylon,layer-base-offset = <0>;
|
||||||
|
xylon,layer-buffer-offset = <480>;
|
||||||
|
xylon,layer-primary;
|
||||||
|
};
|
||||||
|
|
||||||
|
layer@1 {
|
||||||
|
reg = <1>;
|
||||||
|
xylon,layer-depth = <16>;
|
||||||
|
xylon,layer-colorspace = "rgb";
|
||||||
|
xylon,layer-alpha-mode = "layer";
|
||||||
|
xylon,layer-base-offset = <2400>;
|
||||||
|
xylon,layer-buffer-offset = <480>;
|
||||||
|
};
|
||||||
|
|
||||||
|
layer@2 {
|
||||||
|
reg = <2>;
|
||||||
|
xylon,layer-depth = <16>;
|
||||||
|
xylon,layer-colorspace = "rgb";
|
||||||
|
xylon,layer-alpha-mode = "layer";
|
||||||
|
xylon,layer-base-offset = <960>;
|
||||||
|
xylon,layer-buffer-offset = <480>;
|
||||||
|
};
|
||||||
|
|
||||||
|
layer@3 {
|
||||||
|
reg = <3>;
|
||||||
|
xylon,layer-depth = <16>;
|
||||||
|
xylon,layer-colorspace = "rgb";
|
||||||
|
xylon,layer-alpha-mode = "layer";
|
||||||
|
xylon,layer-base-offset = <480>;
|
||||||
|
xylon,layer-buffer-offset = <480>;
|
||||||
|
};
|
||||||
|
|
||||||
|
layer@4 {
|
||||||
|
reg = <4>;
|
||||||
|
xylon,layer-depth = <16>;
|
||||||
|
xylon,layer-colorspace = "rgb";
|
||||||
|
xylon,layer-alpha-mode = "layer";
|
||||||
|
xylon,layer-base-offset = <8192>;
|
||||||
|
xylon,layer-buffer-offset = <480>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
port {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
logicvc_output: endpoint@0 {
|
||||||
|
reg = <0>;
|
||||||
|
remote-endpoint = <&panel_input>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -119,7 +119,7 @@ properties:
|
|||||||
# valid for this binding.
|
# valid for this binding.
|
||||||
|
|
||||||
clock-frequency:
|
clock-frequency:
|
||||||
# The type is set in the core schema. Per device schema only need to set
|
# The type is set in the core schema. Per-device schema only need to set
|
||||||
# constraints on the possible values.
|
# constraints on the possible values.
|
||||||
minimum: 100
|
minimum: 100
|
||||||
maximum: 400000
|
maximum: 400000
|
||||||
@@ -133,24 +133,24 @@ properties:
|
|||||||
# *-supply is always a single phandle, so nothing more to define.
|
# *-supply is always a single phandle, so nothing more to define.
|
||||||
foo-supply: true
|
foo-supply: true
|
||||||
|
|
||||||
# Vendor specific properties
|
# Vendor-specific properties
|
||||||
#
|
#
|
||||||
# Vendor specific properties have slightly different schema requirements than
|
# Vendor-specific properties have slightly different schema requirements than
|
||||||
# common properties. They must have at least a type definition and
|
# common properties. They must have at least a type definition and
|
||||||
# 'description'.
|
# 'description'.
|
||||||
vendor,int-property:
|
vendor,int-property:
|
||||||
description: Vendor specific properties must have a description
|
description: Vendor-specific properties must have a description
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
enum: [2, 4, 6, 8, 10]
|
enum: [2, 4, 6, 8, 10]
|
||||||
|
|
||||||
vendor,bool-property:
|
vendor,bool-property:
|
||||||
description: Vendor specific properties must have a description. Boolean
|
description: Vendor-specific properties must have a description. Boolean
|
||||||
properties are one case where the json-schema 'type' keyword can be used
|
properties are one case where the json-schema 'type' keyword can be used
|
||||||
directly.
|
directly.
|
||||||
type: boolean
|
type: boolean
|
||||||
|
|
||||||
vendor,string-array-property:
|
vendor,string-array-property:
|
||||||
description: Vendor specific properties should reference a type in the
|
description: Vendor-specific properties should reference a type in the
|
||||||
core schema.
|
core schema.
|
||||||
$ref: /schemas/types.yaml#/definitions/string-array
|
$ref: /schemas/types.yaml#/definitions/string-array
|
||||||
items:
|
items:
|
||||||
@@ -158,7 +158,7 @@ properties:
|
|||||||
- enum: [baz, boo]
|
- enum: [baz, boo]
|
||||||
|
|
||||||
vendor,property-in-standard-units-microvolt:
|
vendor,property-in-standard-units-microvolt:
|
||||||
description: Vendor specific properties having a standard unit suffix
|
description: Vendor-specific properties having a standard unit suffix
|
||||||
don't need a type.
|
don't need a type.
|
||||||
enum: [ 100, 200, 300 ]
|
enum: [ 100, 200, 300 ]
|
||||||
|
|
||||||
|
|||||||
62
Documentation/devicetree/bindings/gnss/u-blox,neo-6m.yaml
Normal file
62
Documentation/devicetree/bindings/gnss/u-blox,neo-6m.yaml
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/gnss/u-blox,neo-6m.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: U-blox GNSS Receiver Device Tree Bindings
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Johan Hovold <johan@kernel.org>
|
||||||
|
|
||||||
|
description: >
|
||||||
|
The U-blox GNSS receivers can use UART, DDC (I2C), SPI and USB interfaces.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
enum:
|
||||||
|
- u-blox,neo-6m
|
||||||
|
- u-blox,neo-8
|
||||||
|
- u-blox,neo-m8
|
||||||
|
|
||||||
|
reg:
|
||||||
|
description: >
|
||||||
|
The DDC Slave Address, SPI chip select address, the number of the USB hub
|
||||||
|
port or the USB host-controller port to which this device is attached,
|
||||||
|
depending on the bus used. Required for the DDC, SPI or USB busses.
|
||||||
|
|
||||||
|
vcc-supply:
|
||||||
|
description: >
|
||||||
|
Main voltage regulator
|
||||||
|
|
||||||
|
timepulse-gpios:
|
||||||
|
maxItems: 1
|
||||||
|
description: >
|
||||||
|
Time pulse GPIO
|
||||||
|
|
||||||
|
u-blox,extint-gpios:
|
||||||
|
maxItems: 1
|
||||||
|
description: >
|
||||||
|
GPIO connected to the "external interrupt" input pin
|
||||||
|
|
||||||
|
v-bckp-supply:
|
||||||
|
description: >
|
||||||
|
Backup voltage regulator
|
||||||
|
|
||||||
|
current-speed: true
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- vcc-supply
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
serial {
|
||||||
|
gnss {
|
||||||
|
compatible = "u-blox,neo-8";
|
||||||
|
v-bckp-supply = <&gnss_v_bckp_reg>;
|
||||||
|
vcc-supply = <&gnss_vcc_reg>;
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
u-blox GNSS Receiver DT binding
|
|
||||||
|
|
||||||
The u-blox GNSS receivers can use UART, DDC (I2C), SPI and USB interfaces.
|
|
||||||
|
|
||||||
Please see Documentation/devicetree/bindings/gnss/gnss.txt for generic
|
|
||||||
properties.
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
|
|
||||||
- compatible : Must be one of
|
|
||||||
|
|
||||||
"u-blox,neo-6m"
|
|
||||||
"u-blox,neo-8"
|
|
||||||
"u-blox,neo-m8"
|
|
||||||
|
|
||||||
- vcc-supply : Main voltage regulator
|
|
||||||
|
|
||||||
Required properties (DDC):
|
|
||||||
- reg : DDC (I2C) slave address
|
|
||||||
|
|
||||||
Required properties (SPI):
|
|
||||||
- reg : SPI chip select address
|
|
||||||
|
|
||||||
Required properties (USB):
|
|
||||||
- reg : Number of the USB hub port or the USB host-controller port
|
|
||||||
to which this device is attached
|
|
||||||
|
|
||||||
Optional properties:
|
|
||||||
|
|
||||||
- timepulse-gpios : Time pulse GPIO
|
|
||||||
- u-blox,extint-gpios : GPIO connected to the "external interrupt" input pin
|
|
||||||
- v-bckp-supply : Backup voltage regulator
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
serial@1234 {
|
|
||||||
compatible = "ns16550a";
|
|
||||||
|
|
||||||
gnss {
|
|
||||||
compatible = "u-blox,neo-8";
|
|
||||||
|
|
||||||
v-bckp-supply = <&gnss_v_bckp_reg>;
|
|
||||||
vcc-supply = <&gnss_vcc_reg>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
@@ -1,78 +0,0 @@
|
|||||||
Device tree bindings for Microchip CAP11xx based capacitive touch sensors
|
|
||||||
|
|
||||||
The node for this device must be a child of a I2C controller node, as the
|
|
||||||
device communication via I2C only.
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
|
|
||||||
compatible: Must contain one of:
|
|
||||||
"microchip,cap1106"
|
|
||||||
"microchip,cap1126"
|
|
||||||
"microchip,cap1188"
|
|
||||||
|
|
||||||
reg: The I2C slave address of the device.
|
|
||||||
|
|
||||||
interrupts: Property describing the interrupt line the
|
|
||||||
device's ALERT#/CM_IRQ# pin is connected to.
|
|
||||||
The device only has one interrupt source.
|
|
||||||
|
|
||||||
Optional properties:
|
|
||||||
|
|
||||||
autorepeat: Enables the Linux input system's autorepeat
|
|
||||||
feature on the input device.
|
|
||||||
|
|
||||||
microchip,sensor-gain: Defines the gain of the sensor circuitry. This
|
|
||||||
effectively controls the sensitivity, as a
|
|
||||||
smaller delta capacitance is required to
|
|
||||||
generate the same delta count values.
|
|
||||||
Valid values are 1, 2, 4, and 8.
|
|
||||||
By default, a gain of 1 is set.
|
|
||||||
|
|
||||||
microchip,irq-active-high: By default the interrupt pin is active low
|
|
||||||
open drain. This property allows using the active
|
|
||||||
high push-pull output.
|
|
||||||
|
|
||||||
linux,keycodes: Specifies an array of numeric keycode values to
|
|
||||||
be used for the channels. If this property is
|
|
||||||
omitted, KEY_A, KEY_B, etc are used as
|
|
||||||
defaults. The array must have exactly six
|
|
||||||
entries.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
i2c_controller {
|
|
||||||
cap1106@28 {
|
|
||||||
compatible = "microchip,cap1106";
|
|
||||||
interrupt-parent = <&gpio1>;
|
|
||||||
interrupts = <0 0>;
|
|
||||||
reg = <0x28>;
|
|
||||||
autorepeat;
|
|
||||||
microchip,sensor-gain = <2>;
|
|
||||||
|
|
||||||
linux,keycodes = <103>, /* KEY_UP */
|
|
||||||
<106>, /* KEY_RIGHT */
|
|
||||||
<108>, /* KEY_DOWN */
|
|
||||||
<105>, /* KEY_LEFT */
|
|
||||||
<109>, /* KEY_PAGEDOWN */
|
|
||||||
<104>; /* KEY_PAGEUP */
|
|
||||||
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
|
|
||||||
usr@0 {
|
|
||||||
label = "cap11xx:green:usr0";
|
|
||||||
reg = <0>;
|
|
||||||
};
|
|
||||||
|
|
||||||
usr@1 {
|
|
||||||
label = "cap11xx:green:usr1";
|
|
||||||
reg = <1>;
|
|
||||||
};
|
|
||||||
|
|
||||||
alive@2 {
|
|
||||||
label = "cap11xx:green:alive";
|
|
||||||
reg = <2>;
|
|
||||||
linux,default_trigger = "heartbeat";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
81
Documentation/devicetree/bindings/input/elan,ekth3000.yaml
Normal file
81
Documentation/devicetree/bindings/input/elan,ekth3000.yaml
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/input/elan,ekth3000.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Elantech I2C Touchpad
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Dmitry Torokhov <dmitry.torokhov@gmail.com>
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- $ref: touchscreen/touchscreen.yaml#
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: elan,ekth3000
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
wakeup-source:
|
||||||
|
type: boolean
|
||||||
|
description: touchpad can be used as a wakeup source
|
||||||
|
|
||||||
|
vcc-supply:
|
||||||
|
description: a phandle for the regulator supplying 3.3V power
|
||||||
|
|
||||||
|
elan,trackpoint:
|
||||||
|
type: boolean
|
||||||
|
description: touchpad can support a trackpoint
|
||||||
|
|
||||||
|
elan,clickpad:
|
||||||
|
type: boolean
|
||||||
|
description: touchpad is a clickpad (the entire surface is a button)
|
||||||
|
|
||||||
|
elan,middle-button:
|
||||||
|
type: boolean
|
||||||
|
description: touchpad has a physical middle button
|
||||||
|
|
||||||
|
elan,x_traces:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description: number of antennas on the x axis
|
||||||
|
|
||||||
|
elan,y_traces:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description: number of antennas on the y axis
|
||||||
|
|
||||||
|
touchscreen-size-x: true
|
||||||
|
|
||||||
|
touchscreen-size-y: true
|
||||||
|
|
||||||
|
touchscreen-x-mm: true
|
||||||
|
|
||||||
|
touchscreen-y-mm: true
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- interrupts
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
|
i2c {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
touchpad@15 {
|
||||||
|
compatible = "elan,ekth3000";
|
||||||
|
reg = <0x15>;
|
||||||
|
interrupt-parent = <&gpio4>;
|
||||||
|
interrupts = <0x0 IRQ_TYPE_EDGE_FALLING>;
|
||||||
|
wakeup-source;
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
Elantech I2C Touchpad
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible: must be "elan,ekth3000".
|
|
||||||
- reg: I2C address of the chip.
|
|
||||||
- interrupts: interrupt to which the chip is connected (see interrupt
|
|
||||||
binding[0]).
|
|
||||||
|
|
||||||
Optional properties:
|
|
||||||
- wakeup-source: touchpad can be used as a wakeup source.
|
|
||||||
- pinctrl-names: should be "default" (see pinctrl binding [1]).
|
|
||||||
- pinctrl-0: a phandle pointing to the pin settings for the device (see
|
|
||||||
pinctrl binding [1]).
|
|
||||||
- vcc-supply: a phandle for the regulator supplying 3.3V power.
|
|
||||||
- elan,trackpoint: touchpad can support a trackpoint (boolean)
|
|
||||||
- elan,clickpad: touchpad is a clickpad (the entire surface is a button)
|
|
||||||
- elan,middle-button: touchpad has a physical middle button
|
|
||||||
- elan,x_traces: number of antennas on the x axis
|
|
||||||
- elan,y_traces: number of antennas on the y axis
|
|
||||||
- some generic touchscreen properties [2]:
|
|
||||||
* touchscreen-size-x
|
|
||||||
* touchscreen-size-y
|
|
||||||
* touchscreen-x-mm
|
|
||||||
* touchscreen-y-mm
|
|
||||||
|
|
||||||
|
|
||||||
[0]: Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
|
|
||||||
[1]: Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
|
|
||||||
[2]: Documentation/devicetree/bindings/input/touchscreen/touchscreen.txt
|
|
||||||
|
|
||||||
Example:
|
|
||||||
&i2c1 {
|
|
||||||
/* ... */
|
|
||||||
|
|
||||||
touchpad@15 {
|
|
||||||
compatible = "elan,ekth3000";
|
|
||||||
reg = <0x15>;
|
|
||||||
interrupt-parent = <&gpio4>;
|
|
||||||
interrupts = <0x0 IRQ_TYPE_EDGE_FALLING>;
|
|
||||||
wakeup-source;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* ... */
|
|
||||||
};
|
|
||||||
148
Documentation/devicetree/bindings/input/microchip,cap11xx.yaml
Normal file
148
Documentation/devicetree/bindings/input/microchip,cap11xx.yaml
Normal file
@@ -0,0 +1,148 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: "http://devicetree.org/schemas/input/microchip,cap11xx.yaml#"
|
||||||
|
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||||
|
|
||||||
|
title: Device tree bindings for Microchip CAP11xx based capacitive touch sensors
|
||||||
|
|
||||||
|
description: |
|
||||||
|
The Microchip CAP1xxx Family of RightTouchTM multiple-channel capacitive
|
||||||
|
touch controllers and LED drivers. The device communication via I2C only.
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Rob Herring <robh@kernel.org>
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
enum:
|
||||||
|
- microchip,cap1106
|
||||||
|
- microchip,cap1126
|
||||||
|
- microchip,cap1188
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
'#address-cells':
|
||||||
|
const: 1
|
||||||
|
|
||||||
|
'#size-cells':
|
||||||
|
const: 0
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
maxItems: 1
|
||||||
|
description: |
|
||||||
|
Property describing the interrupt line the
|
||||||
|
device's ALERT#/CM_IRQ# pin is connected to.
|
||||||
|
The device only has one interrupt source.
|
||||||
|
|
||||||
|
autorepeat:
|
||||||
|
description: |
|
||||||
|
Enables the Linux input system's autorepeat feature on the input device.
|
||||||
|
|
||||||
|
linux,keycodes:
|
||||||
|
minItems: 6
|
||||||
|
maxItems: 6
|
||||||
|
description: |
|
||||||
|
Specifies an array of numeric keycode values to
|
||||||
|
be used for the channels. If this property is
|
||||||
|
omitted, KEY_A, KEY_B, etc are used as defaults.
|
||||||
|
The array must have exactly six entries.
|
||||||
|
|
||||||
|
microchip,sensor-gain:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
default: 1
|
||||||
|
enum: [1, 2, 4, 8]
|
||||||
|
description: |
|
||||||
|
Defines the gain of the sensor circuitry. This
|
||||||
|
effectively controls the sensitivity, as a
|
||||||
|
smaller delta capacitance is required to
|
||||||
|
generate the same delta count values.
|
||||||
|
|
||||||
|
microchip,irq-active-high:
|
||||||
|
type: boolean
|
||||||
|
description: |
|
||||||
|
By default the interrupt pin is active low
|
||||||
|
open drain. This property allows using the active
|
||||||
|
high push-pull output.
|
||||||
|
|
||||||
|
patternProperties:
|
||||||
|
"^led@[0-7]$":
|
||||||
|
type: object
|
||||||
|
description: CAP11xx LEDs
|
||||||
|
$ref: /schemas/leds/common.yaml#
|
||||||
|
|
||||||
|
properties:
|
||||||
|
reg:
|
||||||
|
enum: [0, 1, 2, 3, 4, 5, 6, 7]
|
||||||
|
|
||||||
|
label: true
|
||||||
|
|
||||||
|
linux,default-trigger: true
|
||||||
|
|
||||||
|
default-state: true
|
||||||
|
|
||||||
|
required:
|
||||||
|
- reg
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- $ref: input.yaml
|
||||||
|
- if:
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
contains:
|
||||||
|
enum:
|
||||||
|
- microchip,cap1106
|
||||||
|
then:
|
||||||
|
patternProperties:
|
||||||
|
"^led@[0-7]$": false
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- interrupts
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
i2c {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
cap1188@28 {
|
||||||
|
compatible = "microchip,cap1188";
|
||||||
|
interrupt-parent = <&gpio1>;
|
||||||
|
interrupts = <0 0>;
|
||||||
|
reg = <0x28>;
|
||||||
|
autorepeat;
|
||||||
|
microchip,sensor-gain = <2>;
|
||||||
|
|
||||||
|
linux,keycodes = <103>, /* KEY_UP */
|
||||||
|
<106>, /* KEY_RIGHT */
|
||||||
|
<108>, /* KEY_DOWN */
|
||||||
|
<105>, /* KEY_LEFT */
|
||||||
|
<109>, /* KEY_PAGEDOWN */
|
||||||
|
<104>; /* KEY_PAGEUP */
|
||||||
|
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
led@0 {
|
||||||
|
label = "cap11xx:green:usr0";
|
||||||
|
reg = <0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led@1 {
|
||||||
|
label = "cap11xx:green:usr1";
|
||||||
|
reg = <1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led@2 {
|
||||||
|
label = "cap11xx:green:alive";
|
||||||
|
reg = <2>;
|
||||||
|
linux,default-trigger = "heartbeat";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -0,0 +1,91 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/input/touchscreen/silead,gsl1680.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Silead GSL1680 Touchscreen Controller Device Tree Bindings
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Dmitry Torokhov <dmitry.torokhov@gmail.com>
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- $ref: touchscreen.yaml#
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
enum:
|
||||||
|
- silead,gsl1680
|
||||||
|
- silead,gsl1688
|
||||||
|
- silead,gsl3670
|
||||||
|
- silead,gsl3675
|
||||||
|
- silead,gsl3692
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
power-gpios:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
firmware-name:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/string
|
||||||
|
description: >
|
||||||
|
File basename for board specific firmware
|
||||||
|
|
||||||
|
silead,max-fingers:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
maximum: 5
|
||||||
|
description: >
|
||||||
|
Maximum number of fingers the touchscreen can detect
|
||||||
|
|
||||||
|
silead,home-button:
|
||||||
|
type: boolean
|
||||||
|
description: >
|
||||||
|
Does the device have a capacitive home-button build into the
|
||||||
|
touchscreen?
|
||||||
|
|
||||||
|
avdd-supply:
|
||||||
|
description: >
|
||||||
|
Regulator phandle for controller AVDD
|
||||||
|
|
||||||
|
vddio-supply:
|
||||||
|
description: >
|
||||||
|
Regulator phandle for controller VDDIO
|
||||||
|
|
||||||
|
unevaluatedProperties: false
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- interrupts
|
||||||
|
- power-gpios
|
||||||
|
- touchscreen-size-x
|
||||||
|
- touchscreen-size-y
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||||
|
|
||||||
|
i2c {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
touchscreen@40 {
|
||||||
|
compatible = "silead,gsl1680";
|
||||||
|
reg = <0x40>;
|
||||||
|
interrupt-parent = <&pio>;
|
||||||
|
interrupts = <6 11 IRQ_TYPE_EDGE_FALLING>;
|
||||||
|
power-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>;
|
||||||
|
touchscreen-size-x = <480>;
|
||||||
|
touchscreen-size-y = <800>;
|
||||||
|
touchscreen-inverted-x;
|
||||||
|
touchscreen-swapped-x-y;
|
||||||
|
silead,max-fingers = <5>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
...
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
* GSL 1680 touchscreen controller
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible : Must be one of the following, depending on the model:
|
|
||||||
"silead,gsl1680"
|
|
||||||
"silead,gsl1688"
|
|
||||||
"silead,gsl3670"
|
|
||||||
"silead,gsl3675"
|
|
||||||
"silead,gsl3692"
|
|
||||||
- reg : I2C slave address of the chip (0x40)
|
|
||||||
- interrupts : interrupt specification for the gsl1680 interrupt
|
|
||||||
- power-gpios : Specification for the pin connected to the gsl1680's
|
|
||||||
shutdown input. This needs to be driven high to take the
|
|
||||||
gsl1680 out of its low power state
|
|
||||||
- touchscreen-size-x : See touchscreen.txt
|
|
||||||
- touchscreen-size-y : See touchscreen.txt
|
|
||||||
|
|
||||||
Optional properties:
|
|
||||||
- firmware-name : File basename (string) for board specific firmware
|
|
||||||
- touchscreen-inverted-x : See touchscreen.txt
|
|
||||||
- touchscreen-inverted-y : See touchscreen.txt
|
|
||||||
- touchscreen-swapped-x-y : See touchscreen.txt
|
|
||||||
- silead,max-fingers : maximum number of fingers the touchscreen can detect
|
|
||||||
- silead,home-button : Boolean, set to true on devices which have a
|
|
||||||
capacitive home-button build into the touchscreen
|
|
||||||
- vddio-supply : regulator phandle for controller VDDIO
|
|
||||||
- avdd-supply : regulator phandle for controller AVDD
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
i2c@00000000 {
|
|
||||||
gsl1680: touchscreen@40 {
|
|
||||||
compatible = "silead,gsl1680";
|
|
||||||
reg = <0x40>;
|
|
||||||
interrupt-parent = <&pio>;
|
|
||||||
interrupts = <6 11 IRQ_TYPE_EDGE_FALLING>;
|
|
||||||
power-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>;
|
|
||||||
touchscreen-size-x = <480>;
|
|
||||||
touchscreen-size-y = <800>;
|
|
||||||
touchscreen-inverted-x;
|
|
||||||
touchscreen-swapped-x-y;
|
|
||||||
silead,max-fingers = <5>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/interrupt-controller/msi-controller.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: MSI controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Marc Zyngier <maz@kernel.org>
|
||||||
|
|
||||||
|
description: |
|
||||||
|
An MSI controller signals interrupts to a CPU when a write is made
|
||||||
|
to an MMIO address by some master. An MSI controller may feature a
|
||||||
|
number of doorbells.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
"#msi-cells":
|
||||||
|
description: |
|
||||||
|
The number of cells in an msi-specifier, required if not zero.
|
||||||
|
|
||||||
|
Typically this will encode information related to sideband data,
|
||||||
|
and will not encode doorbells or payloads as these can be
|
||||||
|
configured dynamically.
|
||||||
|
|
||||||
|
The meaning of the msi-specifier is defined by the device tree
|
||||||
|
binding of the specific MSI controller.
|
||||||
|
enum: [0, 1]
|
||||||
|
|
||||||
|
msi-controller:
|
||||||
|
description:
|
||||||
|
Identifies the node as an MSI controller.
|
||||||
|
$ref: /schemas/types.yaml#/definitions/flag
|
||||||
|
|
||||||
|
msi-ranges:
|
||||||
|
description:
|
||||||
|
A list of <phandle intspec span> tuples, where "phandle" is the
|
||||||
|
parent interrupt controller, "intspec" is the starting/base
|
||||||
|
interrupt specifier and "span" is the size of the
|
||||||
|
range. Multiple ranges can be provided.
|
||||||
|
$ref: /schemas/types.yaml#/definitions/phandle-array
|
||||||
|
|
||||||
|
dependencies:
|
||||||
|
"#msi-cells": [ msi-controller ]
|
||||||
|
|
||||||
|
additionalProperties: true
|
||||||
@@ -1,94 +0,0 @@
|
|||||||
Device Tree Bindings for Register Bit LEDs
|
|
||||||
|
|
||||||
Register bit leds are used with syscon multifunctional devices
|
|
||||||
where single bits in a certain register can turn on/off a
|
|
||||||
single LED. The register bit LEDs appear as children to the
|
|
||||||
syscon device, with the proper compatible string. For the
|
|
||||||
syscon bindings see:
|
|
||||||
Documentation/devicetree/bindings/mfd/syscon.yaml
|
|
||||||
|
|
||||||
Each LED is represented as a sub-node of the syscon device. Each
|
|
||||||
node's name represents the name of the corresponding LED.
|
|
||||||
|
|
||||||
LED sub-node properties:
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible : must be "register-bit-led"
|
|
||||||
- offset : register offset to the register controlling this LED
|
|
||||||
- mask : bit mask for the bit controlling this LED in the register
|
|
||||||
typically 0x01, 0x02, 0x04 ...
|
|
||||||
|
|
||||||
Optional properties:
|
|
||||||
- label : (optional)
|
|
||||||
see Documentation/devicetree/bindings/leds/common.txt
|
|
||||||
- linux,default-trigger : (optional)
|
|
||||||
see Documentation/devicetree/bindings/leds/common.txt
|
|
||||||
- default-state: (optional) The initial state of the LED
|
|
||||||
see Documentation/devicetree/bindings/leds/common.txt
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
syscon: syscon@10000000 {
|
|
||||||
compatible = "arm,realview-pb1176-syscon", "syscon";
|
|
||||||
reg = <0x10000000 0x1000>;
|
|
||||||
|
|
||||||
led@8.0 {
|
|
||||||
compatible = "register-bit-led";
|
|
||||||
offset = <0x08>;
|
|
||||||
mask = <0x01>;
|
|
||||||
label = "versatile:0";
|
|
||||||
linux,default-trigger = "heartbeat";
|
|
||||||
default-state = "on";
|
|
||||||
};
|
|
||||||
led@8.1 {
|
|
||||||
compatible = "register-bit-led";
|
|
||||||
offset = <0x08>;
|
|
||||||
mask = <0x02>;
|
|
||||||
label = "versatile:1";
|
|
||||||
linux,default-trigger = "mmc0";
|
|
||||||
default-state = "off";
|
|
||||||
};
|
|
||||||
led@8.2 {
|
|
||||||
compatible = "register-bit-led";
|
|
||||||
offset = <0x08>;
|
|
||||||
mask = <0x04>;
|
|
||||||
label = "versatile:2";
|
|
||||||
linux,default-trigger = "cpu0";
|
|
||||||
default-state = "off";
|
|
||||||
};
|
|
||||||
led@8.3 {
|
|
||||||
compatible = "register-bit-led";
|
|
||||||
offset = <0x08>;
|
|
||||||
mask = <0x08>;
|
|
||||||
label = "versatile:3";
|
|
||||||
default-state = "off";
|
|
||||||
};
|
|
||||||
led@8.4 {
|
|
||||||
compatible = "register-bit-led";
|
|
||||||
offset = <0x08>;
|
|
||||||
mask = <0x10>;
|
|
||||||
label = "versatile:4";
|
|
||||||
default-state = "off";
|
|
||||||
};
|
|
||||||
led@8.5 {
|
|
||||||
compatible = "register-bit-led";
|
|
||||||
offset = <0x08>;
|
|
||||||
mask = <0x20>;
|
|
||||||
label = "versatile:5";
|
|
||||||
default-state = "off";
|
|
||||||
};
|
|
||||||
led@8.6 {
|
|
||||||
compatible = "register-bit-led";
|
|
||||||
offset = <0x08>;
|
|
||||||
mask = <0x40>;
|
|
||||||
label = "versatile:6";
|
|
||||||
default-state = "off";
|
|
||||||
};
|
|
||||||
led@8.7 {
|
|
||||||
compatible = "register-bit-led";
|
|
||||||
offset = <0x08>;
|
|
||||||
mask = <0x80>;
|
|
||||||
label = "versatile:7";
|
|
||||||
default-state = "off";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
95
Documentation/devicetree/bindings/leds/register-bit-led.yaml
Normal file
95
Documentation/devicetree/bindings/leds/register-bit-led.yaml
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/leds/register-bit-led.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Device Tree Bindings for Register Bit LEDs
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Linus Walleij <linus.walleij@linaro.org>
|
||||||
|
|
||||||
|
description: |+
|
||||||
|
Register bit leds are used with syscon multifunctional devices where single
|
||||||
|
bits in a certain register can turn on/off a single LED. The register bit LEDs
|
||||||
|
appear as children to the syscon device, with the proper compatible string.
|
||||||
|
For the syscon bindings see:
|
||||||
|
Documentation/devicetree/bindings/mfd/syscon.yaml
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- $ref: /schemas/leds/common.yaml#
|
||||||
|
|
||||||
|
properties:
|
||||||
|
$nodename:
|
||||||
|
description:
|
||||||
|
The unit-address is in the form of @<reg addr>,<bit offset>
|
||||||
|
pattern: '^led@[0-9a-f]+,[0-9a-f]{1,2}$'
|
||||||
|
|
||||||
|
compatible:
|
||||||
|
const: register-bit-led
|
||||||
|
|
||||||
|
reg:
|
||||||
|
description:
|
||||||
|
The register address and size
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
mask:
|
||||||
|
description:
|
||||||
|
bit mask for the bit controlling this LED in the register
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
enum:
|
||||||
|
[ 0x1, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80, 0x100, 0x200, 0x400, 0x800,
|
||||||
|
0x1000, 0x2000, 0x4000, 0x8000, 0x10000, 0x20000, 0x40000, 0x80000,
|
||||||
|
0x100000, 0x200000, 0x400000, 0x800000, 0x1000000, 0x2000000, 0x4000000,
|
||||||
|
0x8000000, 0x10000000, 0x20000000, 0x40000000, 0x80000000 ]
|
||||||
|
|
||||||
|
offset:
|
||||||
|
description:
|
||||||
|
register offset to the register controlling this LED
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
deprecated: true
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- mask
|
||||||
|
- reg
|
||||||
|
|
||||||
|
unevaluatedProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
|
||||||
|
syscon@10000000 {
|
||||||
|
compatible = "arm,realview-pb1176-syscon", "syscon";
|
||||||
|
reg = <0x10000000 0x1000>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
ranges = <0x0 0x10000000 0x1000>;
|
||||||
|
|
||||||
|
led@8,0 {
|
||||||
|
compatible = "register-bit-led";
|
||||||
|
reg = <0x08 0x04>;
|
||||||
|
offset = <0x08>;
|
||||||
|
mask = <0x01>;
|
||||||
|
label = "versatile:0";
|
||||||
|
linux,default-trigger = "heartbeat";
|
||||||
|
default-state = "on";
|
||||||
|
};
|
||||||
|
led@8,1 {
|
||||||
|
compatible = "register-bit-led";
|
||||||
|
reg = <0x08 0x04>;
|
||||||
|
offset = <0x08>;
|
||||||
|
mask = <0x02>;
|
||||||
|
label = "versatile:1";
|
||||||
|
default-state = "off";
|
||||||
|
};
|
||||||
|
led@8,2 {
|
||||||
|
compatible = "register-bit-led";
|
||||||
|
reg = <0x08 0x04>;
|
||||||
|
offset = <0x08>;
|
||||||
|
mask = <0x04>;
|
||||||
|
label = "versatile:2";
|
||||||
|
default-state = "off";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
...
|
||||||
@@ -40,8 +40,8 @@ Optional properties for a client mutex node:
|
|||||||
defined in 'dt-bindings/gce/<chip>-gce.h'.
|
defined in 'dt-bindings/gce/<chip>-gce.h'.
|
||||||
|
|
||||||
Some vaules of properties are defined in 'dt-bindings/gce/mt8173-gce.h',
|
Some vaules of properties are defined in 'dt-bindings/gce/mt8173-gce.h',
|
||||||
'dt-binding/gce/mt8183-gce.h', 'dt-binding/gce/mt8192-gce.h',
|
'dt-bindings/gce/mt8183-gce.h', 'dt-bindings/gce/mt8192-gce.h',
|
||||||
'dt-binding/gce/mt8195-gce.h' or 'dt-bindings/gce/mt6779-gce.h'.
|
'dt-bindings/gce/mt8195-gce.h' or 'dt-bindings/gce/mt6779-gce.h'.
|
||||||
Such as sub-system ids, thread priority, event ids.
|
Such as sub-system ids, thread priority, event ids.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|||||||
@@ -1,92 +0,0 @@
|
|||||||
* Omnivision OV5640 MIPI CSI-2 / parallel sensor
|
|
||||||
|
|
||||||
Required Properties:
|
|
||||||
- compatible: should be "ovti,ov5640"
|
|
||||||
- clocks: reference to the xclk input clock.
|
|
||||||
- clock-names: should be "xclk".
|
|
||||||
- DOVDD-supply: Digital I/O voltage supply, 1.8 volts
|
|
||||||
- AVDD-supply: Analog voltage supply, 2.8 volts
|
|
||||||
- DVDD-supply: Digital core voltage supply, 1.5 volts
|
|
||||||
|
|
||||||
Optional Properties:
|
|
||||||
- reset-gpios: reference to the GPIO connected to the reset pin, if any.
|
|
||||||
This is an active low signal to the OV5640.
|
|
||||||
- powerdown-gpios: reference to the GPIO connected to the powerdown pin,
|
|
||||||
if any. This is an active high signal to the OV5640.
|
|
||||||
- rotation: as defined in
|
|
||||||
Documentation/devicetree/bindings/media/video-interfaces.txt,
|
|
||||||
valid values are 0 (sensor mounted upright) and 180 (sensor
|
|
||||||
mounted upside down).
|
|
||||||
|
|
||||||
The device node must contain one 'port' child node for its digital output
|
|
||||||
video port, in accordance with the video interface bindings defined in
|
|
||||||
Documentation/devicetree/bindings/media/video-interfaces.txt.
|
|
||||||
|
|
||||||
OV5640 can be connected to a MIPI CSI-2 bus or a parallel bus endpoint.
|
|
||||||
|
|
||||||
Endpoint node required properties for CSI-2 connection are:
|
|
||||||
- remote-endpoint: a phandle to the bus receiver's endpoint node.
|
|
||||||
- clock-lanes: should be set to <0> (clock lane on hardware lane 0)
|
|
||||||
- data-lanes: should be set to <1> or <1 2> (one or two CSI-2 lanes supported)
|
|
||||||
|
|
||||||
Endpoint node required properties for parallel connection are:
|
|
||||||
- remote-endpoint: a phandle to the bus receiver's endpoint node.
|
|
||||||
- bus-width: shall be set to <8> for 8 bits parallel bus
|
|
||||||
or <10> for 10 bits parallel bus
|
|
||||||
- data-shift: shall be set to <2> for 8 bits parallel bus
|
|
||||||
(lines 9:2 are used) or <0> for 10 bits parallel bus
|
|
||||||
- hsync-active: active state of the HSYNC signal, 0/1 for LOW/HIGH respectively.
|
|
||||||
- vsync-active: active state of the VSYNC signal, 0/1 for LOW/HIGH respectively.
|
|
||||||
- pclk-sample: sample data on rising (1) or falling (0) edge of the pixel clock
|
|
||||||
signal.
|
|
||||||
|
|
||||||
Examples:
|
|
||||||
|
|
||||||
&i2c1 {
|
|
||||||
ov5640: camera@3c {
|
|
||||||
compatible = "ovti,ov5640";
|
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&pinctrl_ov5640>;
|
|
||||||
reg = <0x3c>;
|
|
||||||
clocks = <&clks IMX6QDL_CLK_CKO>;
|
|
||||||
clock-names = "xclk";
|
|
||||||
DOVDD-supply = <&vgen4_reg>; /* 1.8v */
|
|
||||||
AVDD-supply = <&vgen3_reg>; /* 2.8v */
|
|
||||||
DVDD-supply = <&vgen2_reg>; /* 1.5v */
|
|
||||||
powerdown-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
|
|
||||||
reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
|
|
||||||
rotation = <180>;
|
|
||||||
|
|
||||||
port {
|
|
||||||
/* MIPI CSI-2 bus endpoint */
|
|
||||||
ov5640_to_mipi_csi2: endpoint {
|
|
||||||
remote-endpoint = <&mipi_csi2_from_ov5640>;
|
|
||||||
clock-lanes = <0>;
|
|
||||||
data-lanes = <1 2>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&i2c1 {
|
|
||||||
ov5640: camera@3c {
|
|
||||||
compatible = "ovti,ov5640";
|
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&pinctrl_ov5640>;
|
|
||||||
reg = <0x3c>;
|
|
||||||
clocks = <&clk_ext_camera>;
|
|
||||||
clock-names = "xclk";
|
|
||||||
|
|
||||||
port {
|
|
||||||
/* Parallel bus endpoint */
|
|
||||||
ov5640_to_parallel: endpoint {
|
|
||||||
remote-endpoint = <¶llel_from_ov5640>;
|
|
||||||
bus-width = <8>;
|
|
||||||
data-shift = <2>; /* lines 9:2 are used */
|
|
||||||
hsync-active = <0>;
|
|
||||||
vsync-active = <0>;
|
|
||||||
pclk-sample = <1>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
154
Documentation/devicetree/bindings/media/i2c/ovti,ov5640.yaml
Normal file
154
Documentation/devicetree/bindings/media/i2c/ovti,ov5640.yaml
Normal file
@@ -0,0 +1,154 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/media/i2c/ovti,ov5640.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: OmniVision OV5640 Image Sensor Device Tree Bindings
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Steve Longerbeam <slongerbeam@gmail.com>
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- $ref: /schemas/media/video-interface-devices.yaml#
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: ovti,ov5640
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
clocks:
|
||||||
|
description: XCLK Input Clock
|
||||||
|
|
||||||
|
clock-names:
|
||||||
|
const: xclk
|
||||||
|
|
||||||
|
AVDD-supply:
|
||||||
|
description: Analog voltage supply, 2.8 volts
|
||||||
|
|
||||||
|
DVDD-supply:
|
||||||
|
description: Digital core voltage supply, 1.5 volts
|
||||||
|
|
||||||
|
DOVDD-supply:
|
||||||
|
description: Digital I/O voltage supply, 1.8 volts
|
||||||
|
|
||||||
|
powerdown-gpios:
|
||||||
|
maxItems: 1
|
||||||
|
description: >
|
||||||
|
Reference to the GPIO connected to the powerdown pin, if any.
|
||||||
|
|
||||||
|
reset-gpios:
|
||||||
|
maxItems: 1
|
||||||
|
description: >
|
||||||
|
Reference to the GPIO connected to the reset pin, if any.
|
||||||
|
|
||||||
|
rotation:
|
||||||
|
enum:
|
||||||
|
- 0
|
||||||
|
- 180
|
||||||
|
|
||||||
|
port:
|
||||||
|
description: Digital Output Port
|
||||||
|
$ref: /schemas/graph.yaml#/$defs/port-base
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
properties:
|
||||||
|
endpoint:
|
||||||
|
$ref: /schemas/media/video-interfaces.yaml#
|
||||||
|
unevaluatedProperties: false
|
||||||
|
|
||||||
|
properties:
|
||||||
|
clock-lanes:
|
||||||
|
const: 0
|
||||||
|
|
||||||
|
data-lanes:
|
||||||
|
minItems: 1
|
||||||
|
maxItems: 2
|
||||||
|
items:
|
||||||
|
enum: [1, 2]
|
||||||
|
|
||||||
|
bus-width:
|
||||||
|
enum: [8, 10]
|
||||||
|
|
||||||
|
data-shift:
|
||||||
|
enum: [0, 2]
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- clocks
|
||||||
|
- clock-names
|
||||||
|
- AVDD-supply
|
||||||
|
- DVDD-supply
|
||||||
|
- DOVDD-supply
|
||||||
|
- port
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/clock/imx6qdl-clock.h>
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
|
||||||
|
i2c {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
camera@3c {
|
||||||
|
compatible = "ovti,ov5640";
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&pinctrl_ov5640>;
|
||||||
|
reg = <0x3c>;
|
||||||
|
clocks = <&clks IMX6QDL_CLK_CKO>;
|
||||||
|
clock-names = "xclk";
|
||||||
|
DOVDD-supply = <&vgen4_reg>; /* 1.8v */
|
||||||
|
AVDD-supply = <&vgen3_reg>; /* 2.8v */
|
||||||
|
DVDD-supply = <&vgen2_reg>; /* 1.5v */
|
||||||
|
powerdown-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
|
||||||
|
reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
|
||||||
|
rotation = <180>;
|
||||||
|
|
||||||
|
port {
|
||||||
|
/* MIPI CSI-2 bus endpoint */
|
||||||
|
ov5640_to_mipi_csi2: endpoint {
|
||||||
|
remote-endpoint = <&mipi_csi2_from_ov5640>;
|
||||||
|
clock-lanes = <0>;
|
||||||
|
data-lanes = <1 2>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
- |
|
||||||
|
i2c {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
camera@3c {
|
||||||
|
compatible = "ovti,ov5640";
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&pinctrl_ov5640>;
|
||||||
|
reg = <0x3c>;
|
||||||
|
clocks = <&clk_ext_camera>;
|
||||||
|
clock-names = "xclk";
|
||||||
|
DOVDD-supply = <&vgen4_reg>; /* 1.8v */
|
||||||
|
AVDD-supply = <&vgen3_reg>; /* 2.8v */
|
||||||
|
DVDD-supply = <&vgen2_reg>; /* 1.5v */
|
||||||
|
|
||||||
|
port {
|
||||||
|
/* Parallel bus endpoint */
|
||||||
|
ov5640_to_parallel: endpoint {
|
||||||
|
remote-endpoint = <¶llel_from_ov5640>;
|
||||||
|
bus-width = <8>;
|
||||||
|
data-shift = <2>; /* lines 9:2 are used */
|
||||||
|
hsync-active = <0>;
|
||||||
|
vsync-active = <0>;
|
||||||
|
pclk-sample = <1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
...
|
||||||
@@ -154,7 +154,9 @@ examples:
|
|||||||
camera-sensor@3c {
|
camera-sensor@3c {
|
||||||
compatible = "ovti,ov5640";
|
compatible = "ovti,ov5640";
|
||||||
reg = <0x3c>;
|
reg = <0x3c>;
|
||||||
|
AVDD-supply = <®_2p8v>;
|
||||||
|
DOVDD-supply = <®_1p8v>;
|
||||||
|
DVDD-supply = <®_1p5v>;
|
||||||
clocks = <&clk_ov5640_fixed>;
|
clocks = <&clk_ov5640_fixed>;
|
||||||
clock-names = "xclk";
|
clock-names = "xclk";
|
||||||
|
|
||||||
|
|||||||
@@ -1,29 +0,0 @@
|
|||||||
Freescale DDR memory controller
|
|
||||||
|
|
||||||
Properties:
|
|
||||||
|
|
||||||
- compatible : Should include "fsl,chip-memory-controller" where
|
|
||||||
chip is the processor (bsc9132, mpc8572 etc.), or
|
|
||||||
"fsl,qoriq-memory-controller".
|
|
||||||
- reg : Address and size of DDR controller registers
|
|
||||||
- interrupts : Error interrupt of DDR controller
|
|
||||||
- little-endian : Specifies little-endian access to registers
|
|
||||||
If omitted, big-endian will be used.
|
|
||||||
|
|
||||||
Example 1:
|
|
||||||
|
|
||||||
memory-controller@2000 {
|
|
||||||
compatible = "fsl,bsc9132-memory-controller";
|
|
||||||
reg = <0x2000 0x1000>;
|
|
||||||
interrupts = <16 2 1 8>;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
Example 2:
|
|
||||||
|
|
||||||
ddr1: memory-controller@8000 {
|
|
||||||
compatible = "fsl,qoriq-memory-controller-v4.7",
|
|
||||||
"fsl,qoriq-memory-controller";
|
|
||||||
reg = <0x8000 0x1000>;
|
|
||||||
interrupts = <16 2 1 23>;
|
|
||||||
};
|
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/memory-controllers/fsl/fsl,ddr.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Freescale DDR memory controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Borislav Petkov <bp@alien8.de>
|
||||||
|
- York Sun <york.sun@nxp.com>
|
||||||
|
|
||||||
|
properties:
|
||||||
|
$nodename:
|
||||||
|
pattern: "^memory-controller@[0-9a-f]+$"
|
||||||
|
|
||||||
|
compatible:
|
||||||
|
oneOf:
|
||||||
|
- items:
|
||||||
|
- enum:
|
||||||
|
- fsl,qoriq-memory-controller-v4.4
|
||||||
|
- fsl,qoriq-memory-controller-v4.5
|
||||||
|
- fsl,qoriq-memory-controller-v4.7
|
||||||
|
- fsl,qoriq-memory-controller-v5.0
|
||||||
|
- const: fsl,qoriq-memory-controller
|
||||||
|
- enum:
|
||||||
|
- fsl,bsc9132-memory-controller
|
||||||
|
- fsl,8540-memory-controller
|
||||||
|
- fsl,8541-memory-controller
|
||||||
|
- fsl,8544-memory-controller
|
||||||
|
- fsl,8548-memory-controller
|
||||||
|
- fsl,8555-memory-controller
|
||||||
|
- fsl,8568-memory-controller
|
||||||
|
- fsl,mpc8536-memory-controller
|
||||||
|
- fsl,mpc8540-memory-controller
|
||||||
|
- fsl,mpc8541-memory-controller
|
||||||
|
- fsl,mpc8544-memory-controller
|
||||||
|
- fsl,mpc8548-memory-controller
|
||||||
|
- fsl,mpc8555-memory-controller
|
||||||
|
- fsl,mpc8560-memory-controller
|
||||||
|
- fsl,mpc8568-memory-controller
|
||||||
|
- fsl,mpc8569-memory-controller
|
||||||
|
- fsl,mpc8572-memory-controller
|
||||||
|
- fsl,mpc8349-memory-controller
|
||||||
|
- fsl,p1020-memory-controller
|
||||||
|
- fsl,p1021-memory-controller
|
||||||
|
- fsl,p2020-memory-controller
|
||||||
|
- fsl,qoriq-memory-controller
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
little-endian:
|
||||||
|
description:
|
||||||
|
Specifies little-endian access to registers. If omitted, big-endian will
|
||||||
|
be used.
|
||||||
|
type: boolean
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- interrupts
|
||||||
|
- reg
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
memory-controller@2000 {
|
||||||
|
compatible = "fsl,bsc9132-memory-controller";
|
||||||
|
reg = <0x2000 0x1000>;
|
||||||
|
interrupts = <16 2 1 8>;
|
||||||
|
};
|
||||||
|
|
||||||
|
- |
|
||||||
|
memory-controller@8000 {
|
||||||
|
compatible = "fsl,qoriq-memory-controller-v4.7",
|
||||||
|
"fsl,qoriq-memory-controller";
|
||||||
|
reg = <0x8000 0x1000>;
|
||||||
|
interrupts = <16 2 1 23>;
|
||||||
|
};
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/memory-controllers/mediatek,mt7621-memc.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: MT7621 SDRAM controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Sergio Paracuellos <sergio.paracuellos@gmail.com>
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: mediatek,mt7621-memc
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
memory-controller@5000 {
|
||||||
|
compatible = "mediatek,mt7621-memc";
|
||||||
|
reg = <0x5000 0x1000>;
|
||||||
|
};
|
||||||
@@ -1,157 +0,0 @@
|
|||||||
======================================================================
|
|
||||||
Device tree bindings for the Aspeed Low Pin Count (LPC) Bus Controller
|
|
||||||
======================================================================
|
|
||||||
|
|
||||||
The LPC bus is a means to bridge a host CPU to a number of low-bandwidth
|
|
||||||
peripheral devices, replacing the use of the ISA bus in the age of PCI[0]. The
|
|
||||||
primary use case of the Aspeed LPC controller is as a slave on the bus
|
|
||||||
(typically in a Baseboard Management Controller SoC), but under certain
|
|
||||||
conditions it can also take the role of bus master.
|
|
||||||
|
|
||||||
The LPC controller is represented as a multi-function device to account for the
|
|
||||||
mix of functionality, which includes, but is not limited to:
|
|
||||||
|
|
||||||
* An IPMI Block Transfer[2] Controller
|
|
||||||
|
|
||||||
* An LPC Host Controller: Manages LPC functions such as host vs slave mode, the
|
|
||||||
physical properties of some LPC pins, configuration of serial IRQs, and
|
|
||||||
APB-to-LPC bridging amonst other functions.
|
|
||||||
|
|
||||||
* An LPC Host Interface Controller: Manages functions exposed to the host such
|
|
||||||
as LPC firmware hub cycles, configuration of the LPC-to-AHB mapping, UART
|
|
||||||
management and bus snoop configuration.
|
|
||||||
|
|
||||||
* A set of SuperIO[3] scratch registers: Enables implementation of e.g. custom
|
|
||||||
hardware management protocols for handover between the host and baseboard
|
|
||||||
management controller.
|
|
||||||
|
|
||||||
Additionally the state of the LPC controller influences the pinmux
|
|
||||||
configuration, therefore the host portion of the controller is exposed as a
|
|
||||||
syscon as a means to arbitrate access.
|
|
||||||
|
|
||||||
[0] http://www.intel.com/design/chipsets/industry/25128901.pdf
|
|
||||||
[1] https://www.renesas.com/en-sg/doc/products/mpumcu/001/rej09b0078_h8s2168.pdf?key=7c88837454702128622bee53acbda8f4
|
|
||||||
[2] https://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/ipmi-second-gen-interface-spec-v2-rev1-1.pdf
|
|
||||||
[3] https://en.wikipedia.org/wiki/Super_I/O
|
|
||||||
|
|
||||||
Required properties
|
|
||||||
===================
|
|
||||||
|
|
||||||
- compatible: One of:
|
|
||||||
"aspeed,ast2400-lpc-v2", "simple-mfd", "syscon"
|
|
||||||
"aspeed,ast2500-lpc-v2", "simple-mfd", "syscon"
|
|
||||||
"aspeed,ast2600-lpc-v2", "simple-mfd", "syscon"
|
|
||||||
|
|
||||||
- reg: contains the physical address and length values of the Aspeed
|
|
||||||
LPC memory region.
|
|
||||||
|
|
||||||
- #address-cells: <1>
|
|
||||||
- #size-cells: <1>
|
|
||||||
- ranges: Maps 0 to the physical address and length of the LPC memory
|
|
||||||
region
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
lpc: lpc@1e789000 {
|
|
||||||
compatible = "aspeed,ast2500-lpc-v2", "simple-mfd", "syscon";
|
|
||||||
reg = <0x1e789000 0x1000>;
|
|
||||||
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
ranges = <0x0 0x1e789000 0x1000>;
|
|
||||||
|
|
||||||
lpc_snoop: lpc-snoop@0 {
|
|
||||||
compatible = "aspeed,ast2600-lpc-snoop";
|
|
||||||
reg = <0x0 0x80>;
|
|
||||||
interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
|
|
||||||
snoop-ports = <0x80>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
LPC Host Interface Controller
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
The LPC Host Interface Controller manages functions exposed to the host such as
|
|
||||||
LPC firmware hub cycles, configuration of the LPC-to-AHB mapping, UART
|
|
||||||
management and bus snoop configuration.
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
|
|
||||||
- compatible: One of:
|
|
||||||
"aspeed,ast2400-lpc-ctrl";
|
|
||||||
"aspeed,ast2500-lpc-ctrl";
|
|
||||||
"aspeed,ast2600-lpc-ctrl";
|
|
||||||
|
|
||||||
- reg: contains offset/length values of the host interface controller
|
|
||||||
memory regions
|
|
||||||
|
|
||||||
- clocks: contains a phandle to the syscon node describing the clocks.
|
|
||||||
There should then be one cell representing the clock to use
|
|
||||||
|
|
||||||
Optional properties:
|
|
||||||
|
|
||||||
- memory-region: A phandle to a reserved_memory region to be used for the LPC
|
|
||||||
to AHB mapping
|
|
||||||
|
|
||||||
- flash: A phandle to the SPI flash controller containing the flash to
|
|
||||||
be exposed over the LPC to AHB mapping
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
lpc_ctrl: lpc-ctrl@80 {
|
|
||||||
compatible = "aspeed,ast2500-lpc-ctrl";
|
|
||||||
reg = <0x80 0x80>;
|
|
||||||
clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
|
|
||||||
memory-region = <&flash_memory>;
|
|
||||||
flash = <&spi>;
|
|
||||||
};
|
|
||||||
|
|
||||||
LPC Host Controller
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
The Aspeed LPC Host Controller configures the Low Pin Count (LPC) bus behaviour
|
|
||||||
between the host and the baseboard management controller. The registers exist
|
|
||||||
in the "host" portion of the Aspeed LPC controller, which must be the parent of
|
|
||||||
the LPC host controller node.
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
|
|
||||||
- compatible: One of:
|
|
||||||
"aspeed,ast2400-lhc";
|
|
||||||
"aspeed,ast2500-lhc";
|
|
||||||
"aspeed,ast2600-lhc";
|
|
||||||
|
|
||||||
- reg: contains offset/length values of the LHC memory regions. In the
|
|
||||||
AST2400 and AST2500 there are two regions.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
lhc: lhc@a0 {
|
|
||||||
compatible = "aspeed,ast2500-lhc";
|
|
||||||
reg = <0xa0 0x24 0xc8 0x8>;
|
|
||||||
};
|
|
||||||
|
|
||||||
LPC reset control
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
The UARTs present in the ASPEED SoC can have their resets tied to the reset
|
|
||||||
state of the LPC bus. Some systems may chose to modify this configuration.
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
|
|
||||||
- compatible: One of:
|
|
||||||
"aspeed,ast2600-lpc-reset";
|
|
||||||
"aspeed,ast2500-lpc-reset";
|
|
||||||
"aspeed,ast2400-lpc-reset";
|
|
||||||
|
|
||||||
- reg: offset and length of the IP in the LHC memory region
|
|
||||||
- #reset-controller indicates the number of reset cells expected
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
lpc_reset: reset-controller@98 {
|
|
||||||
compatible = "aspeed,ast2500-lpc-reset";
|
|
||||||
reg = <0x98 0x4>;
|
|
||||||
#reset-cells = <1>;
|
|
||||||
};
|
|
||||||
199
Documentation/devicetree/bindings/mfd/aspeed-lpc.yaml
Normal file
199
Documentation/devicetree/bindings/mfd/aspeed-lpc.yaml
Normal file
@@ -0,0 +1,199 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
# # Copyright (c) 2021 Aspeed Tehchnology Inc.
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/mfd/aspeed-lpc.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Aspeed Low Pin Count (LPC) Bus Controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Andrew Jeffery <andrew@aj.id.au>
|
||||||
|
- Chia-Wei Wang <chiawei_wang@aspeedtech.com>
|
||||||
|
|
||||||
|
description:
|
||||||
|
The LPC bus is a means to bridge a host CPU to a number of low-bandwidth
|
||||||
|
peripheral devices, replacing the use of the ISA bus in the age of PCI[0]. The
|
||||||
|
primary use case of the Aspeed LPC controller is as a slave on the bus
|
||||||
|
(typically in a Baseboard Management Controller SoC), but under certain
|
||||||
|
conditions it can also take the role of bus master.
|
||||||
|
|
||||||
|
The LPC controller is represented as a multi-function device to account for the
|
||||||
|
mix of functionality, which includes, but is not limited to
|
||||||
|
|
||||||
|
* An IPMI Block Transfer[2] Controller
|
||||||
|
|
||||||
|
* An LPC Host Interface Controller manages functions exposed to the host such
|
||||||
|
as LPC firmware hub cycles, configuration of the LPC-to-AHB mapping, UART
|
||||||
|
management and bus snoop configuration.
|
||||||
|
|
||||||
|
* A set of SuperIO[3] scratch registers enableing implementation of e.g. custom
|
||||||
|
hardware management protocols for handover between the host and baseboard
|
||||||
|
management controller.
|
||||||
|
|
||||||
|
Additionally the state of the LPC controller influences the pinmux
|
||||||
|
configuration, therefore the host portion of the controller is exposed as a
|
||||||
|
syscon as a means to arbitrate access.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
items:
|
||||||
|
- enum:
|
||||||
|
- aspeed,ast2400-lpc-v2
|
||||||
|
- aspeed,ast2500-lpc-v2
|
||||||
|
- aspeed,ast2600-lpc-v2
|
||||||
|
- const: simple-mfd
|
||||||
|
- const: syscon
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
"#address-cells":
|
||||||
|
const: 1
|
||||||
|
|
||||||
|
"#size-cells":
|
||||||
|
const: 1
|
||||||
|
|
||||||
|
ranges: true
|
||||||
|
|
||||||
|
patternProperties:
|
||||||
|
"^lpc-ctrl@[0-9a-f]+$":
|
||||||
|
type: object
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
description: |
|
||||||
|
The LPC Host Interface Controller manages functions exposed to the host such as
|
||||||
|
LPC firmware hub cycles, configuration of the LPC-to-AHB mapping, UART management
|
||||||
|
and bus snoop configuration.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
items:
|
||||||
|
- enum:
|
||||||
|
- aspeed,ast2400-lpc-ctrl
|
||||||
|
- aspeed,ast2500-lpc-ctrl
|
||||||
|
- aspeed,ast2600-lpc-ctrl
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
clocks:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
memory-region:
|
||||||
|
maxItems: 1
|
||||||
|
description: handle to memory reservation for the LPC to AHB mapping region
|
||||||
|
|
||||||
|
flash:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/phandle
|
||||||
|
description: The SPI flash controller containing the flash to be exposed over the LPC to AHB mapping
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- clocks
|
||||||
|
|
||||||
|
"^reset-controller@[0-9a-f]+$":
|
||||||
|
type: object
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
description:
|
||||||
|
The UARTs present in the ASPEED SoC can have their resets tied to the reset
|
||||||
|
state of the LPC bus. Some systems may chose to modify this configuration
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
items:
|
||||||
|
- enum:
|
||||||
|
- aspeed,ast2400-lpc-reset
|
||||||
|
- aspeed,ast2500-lpc-reset
|
||||||
|
- aspeed,ast2600-lpc-reset
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
'#reset-cells':
|
||||||
|
const: 1
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- '#reset-cells'
|
||||||
|
|
||||||
|
"^lpc-snoop@[0-9a-f]+$":
|
||||||
|
type: object
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
description:
|
||||||
|
The LPC snoop interface allows the BMC to listen on and record the data
|
||||||
|
bytes written by the Host to the targeted LPC I/O pots.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
items:
|
||||||
|
- enum:
|
||||||
|
- aspeed,ast2400-lpc-snoop
|
||||||
|
- aspeed,ast2500-lpc-snoop
|
||||||
|
- aspeed,ast2600-lpc-snoop
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
snoop-ports:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||||
|
description: The LPC I/O ports to snoop
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- interrupts
|
||||||
|
- snoop-ports
|
||||||
|
|
||||||
|
"^uart-routing@[0-9a-f]+$":
|
||||||
|
$ref: /schemas/soc/aspeed/uart-routing.yaml#
|
||||||
|
description: The UART routing control under LPC register space
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- "#address-cells"
|
||||||
|
- "#size-cells"
|
||||||
|
- ranges
|
||||||
|
|
||||||
|
additionalProperties:
|
||||||
|
type: object
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||||
|
#include <dt-bindings/clock/ast2600-clock.h>
|
||||||
|
|
||||||
|
lpc: lpc@1e789000 {
|
||||||
|
compatible = "aspeed,ast2600-lpc-v2", "simple-mfd", "syscon";
|
||||||
|
reg = <0x1e789000 0x1000>;
|
||||||
|
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
ranges = <0x0 0x1e789000 0x1000>;
|
||||||
|
|
||||||
|
lpc_ctrl: lpc-ctrl@80 {
|
||||||
|
compatible = "aspeed,ast2600-lpc-ctrl";
|
||||||
|
reg = <0x80 0x80>;
|
||||||
|
clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
|
||||||
|
memory-region = <&flash_memory>;
|
||||||
|
flash = <&spi>;
|
||||||
|
};
|
||||||
|
|
||||||
|
lpc_reset: reset-controller@98 {
|
||||||
|
compatible = "aspeed,ast2600-lpc-reset";
|
||||||
|
reg = <0x98 0x4>;
|
||||||
|
#reset-cells = <1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
lpc_snoop: lpc-snoop@90 {
|
||||||
|
compatible = "aspeed,ast2600-lpc-snoop";
|
||||||
|
reg = <0x90 0x8>;
|
||||||
|
interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
snoop-ports = <0x80>;
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
Ralink MIPS SoC device tree bindings
|
|
||||||
|
|
||||||
1. SoCs
|
|
||||||
|
|
||||||
Each device tree must specify a compatible value for the Ralink SoC
|
|
||||||
it uses in the compatible property of the root node. The compatible
|
|
||||||
value must be one of the following values:
|
|
||||||
|
|
||||||
ralink,rt2880-soc
|
|
||||||
ralink,rt3050-soc
|
|
||||||
ralink,rt3052-soc
|
|
||||||
ralink,rt3350-soc
|
|
||||||
ralink,rt3352-soc
|
|
||||||
ralink,rt3883-soc
|
|
||||||
ralink,rt5350-soc
|
|
||||||
ralink,mt7620a-soc
|
|
||||||
ralink,mt7620n-soc
|
|
||||||
ralink,mt7628a-soc
|
|
||||||
ralink,mt7688a-soc
|
|
||||||
|
|
||||||
2. Boards
|
|
||||||
|
|
||||||
GARDENA smart Gateway (MT7688)
|
|
||||||
|
|
||||||
This board is based on the MediaTek MT7688 and equipped with 128 MiB
|
|
||||||
of DDR and 8 MiB of flash (SPI NOR) and additional 128MiB SPI NAND
|
|
||||||
storage.
|
|
||||||
|
|
||||||
------------------------------
|
|
||||||
Required root node properties:
|
|
||||||
- compatible = "gardena,smart-gateway-mt7688", "ralink,mt7688a-soc",
|
|
||||||
"ralink,mt7628a-soc";
|
|
||||||
87
Documentation/devicetree/bindings/mips/ralink.yaml
Normal file
87
Documentation/devicetree/bindings/mips/ralink.yaml
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/mips/ralink.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Ralink SoC based Platforms Device Tree Bindings
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Sergio Paracuellos <sergio.paracuellos@gmail.com>
|
||||||
|
|
||||||
|
description: |
|
||||||
|
Boards with a Ralink SoC shall have the following properties.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
$nodename:
|
||||||
|
const: '/'
|
||||||
|
compatible:
|
||||||
|
oneOf:
|
||||||
|
- description: Boards with Ralink RT2880 SoC
|
||||||
|
items:
|
||||||
|
- enum:
|
||||||
|
- ralink,rt2880-eval-board
|
||||||
|
- const: ralink,rt2880-soc
|
||||||
|
|
||||||
|
- description: Boards with Ralink RT3050 SoC
|
||||||
|
items:
|
||||||
|
- const: ralink,rt3050-soc
|
||||||
|
|
||||||
|
- description: Boards with Ralink RT3052 SoC
|
||||||
|
items:
|
||||||
|
- enum:
|
||||||
|
- ralink,rt3052-eval-board
|
||||||
|
- const: ralink,rt3052-soc
|
||||||
|
|
||||||
|
- description: Boards with Ralink RT3350 SoC
|
||||||
|
items:
|
||||||
|
- const: ralink,rt3350-soc
|
||||||
|
|
||||||
|
- description: Boards with Ralink RT3352 SoC
|
||||||
|
items:
|
||||||
|
- const: ralink,rt3352-soc
|
||||||
|
|
||||||
|
- description: Boards with Ralink RT3383 SoC
|
||||||
|
items:
|
||||||
|
- enum:
|
||||||
|
- ralink,rt3883-eval-board
|
||||||
|
- const: ralink,rt3383-soc
|
||||||
|
|
||||||
|
- description: Boards with Ralink RT5350 SoC
|
||||||
|
items:
|
||||||
|
- const: ralink,rt5350-soc
|
||||||
|
|
||||||
|
- description: Boards with Mediatek/Ralink MT7620A SoC
|
||||||
|
items:
|
||||||
|
- enum:
|
||||||
|
- ralink,mt7620a-eval-board
|
||||||
|
- const: ralink,mt7620a-soc
|
||||||
|
|
||||||
|
- description: Boards with Mediatek/Ralink MT7620N SoC
|
||||||
|
items:
|
||||||
|
- const: ralink,mt7620n-soc
|
||||||
|
|
||||||
|
- description: Boards with Mediatek/Ralink MT7628A SoC
|
||||||
|
items:
|
||||||
|
- enum:
|
||||||
|
- onion,omega2+
|
||||||
|
- vocore,vocore2
|
||||||
|
- const: ralink,mt7628a-soc
|
||||||
|
|
||||||
|
- description: Boards with Mediatek/Ralink MT7688A SoC
|
||||||
|
items:
|
||||||
|
- enum:
|
||||||
|
- gardena,smart-gateway-mt7688
|
||||||
|
- onion,omega2+
|
||||||
|
- const: ralink,mt7628a-soc
|
||||||
|
|
||||||
|
- description: Boards with Mediatek/Ralink MT7621 SoC
|
||||||
|
items:
|
||||||
|
- enum:
|
||||||
|
- gnubee,gb-pc1
|
||||||
|
- gnubee,gb-pc2
|
||||||
|
- const: mediatek,mt7621-soc
|
||||||
|
|
||||||
|
additionalProperties: true
|
||||||
|
|
||||||
|
...
|
||||||
@@ -15,7 +15,7 @@ properties:
|
|||||||
oneOf:
|
oneOf:
|
||||||
- const: allwinner,sun8i-a83t-emac
|
- const: allwinner,sun8i-a83t-emac
|
||||||
- const: allwinner,sun8i-h3-emac
|
- const: allwinner,sun8i-h3-emac
|
||||||
- const: allwinner,sun8i-r40-emac
|
- const: allwinner,sun8i-r40-gmac
|
||||||
- const: allwinner,sun8i-v3s-emac
|
- const: allwinner,sun8i-v3s-emac
|
||||||
- const: allwinner,sun50i-a64-emac
|
- const: allwinner,sun50i-a64-emac
|
||||||
- items:
|
- items:
|
||||||
@@ -93,7 +93,7 @@ allOf:
|
|||||||
compatible:
|
compatible:
|
||||||
contains:
|
contains:
|
||||||
enum:
|
enum:
|
||||||
- allwinner,sun8i-r40-emac
|
- allwinner,sun8i-r40-gmac
|
||||||
|
|
||||||
then:
|
then:
|
||||||
properties:
|
properties:
|
||||||
|
|||||||
@@ -50,16 +50,29 @@ properties:
|
|||||||
by interrupts and "host-wakeup" interrupt-names
|
by interrupts and "host-wakeup" interrupt-names
|
||||||
|
|
||||||
clocks:
|
clocks:
|
||||||
|
minItems: 1
|
||||||
maxItems: 2
|
maxItems: 2
|
||||||
description: 1 or 2 clocks as defined in clock-names below,
|
description: 1 or 2 clocks as defined in clock-names below,
|
||||||
in that order
|
in that order
|
||||||
|
|
||||||
clock-names:
|
clock-names:
|
||||||
description: Names of the 1 to 2 supplied clocks
|
description: Names of the 1 to 2 supplied clocks
|
||||||
items:
|
oneOf:
|
||||||
- const: txco
|
|
||||||
- const: lpo
|
|
||||||
- const: extclk
|
- const: extclk
|
||||||
|
deprecated: true
|
||||||
|
description: Deprecated in favor of txco
|
||||||
|
|
||||||
|
- const: txco
|
||||||
|
description: >
|
||||||
|
external reference clock (not a standalone crystal)
|
||||||
|
|
||||||
|
- const: lpo
|
||||||
|
description: >
|
||||||
|
external low power 32.768 kHz clock
|
||||||
|
|
||||||
|
- items:
|
||||||
|
- const: txco
|
||||||
|
- const: lpo
|
||||||
|
|
||||||
vbat-supply:
|
vbat-supply:
|
||||||
description: phandle to regulator supply for VBAT
|
description: phandle to regulator supply for VBAT
|
||||||
|
|||||||
@@ -1,25 +0,0 @@
|
|||||||
Marvell Bluetooth Chips
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
This documents the binding structure and common properties for serial
|
|
||||||
attached Marvell Bluetooth devices. The following chips are included in
|
|
||||||
this binding:
|
|
||||||
|
|
||||||
* Marvell 88W8897 Bluetooth devices
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible: should be:
|
|
||||||
"mrvl,88w8897"
|
|
||||||
|
|
||||||
Optional properties:
|
|
||||||
None so far
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
&serial0 {
|
|
||||||
compatible = "ns16550a";
|
|
||||||
...
|
|
||||||
bluetooth {
|
|
||||||
compatible = "mrvl,88w8897";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
31
Documentation/devicetree/bindings/net/marvell-bluetooth.yaml
Normal file
31
Documentation/devicetree/bindings/net/marvell-bluetooth.yaml
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: "http://devicetree.org/schemas/net/marvell-bluetooth.yaml#"
|
||||||
|
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||||
|
|
||||||
|
title: Marvell Bluetooth chips
|
||||||
|
|
||||||
|
description: |
|
||||||
|
This documents the binding structure and common properties for serial
|
||||||
|
attached Marvell Bluetooth devices.
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Rob Herring <robh@kernel.org>
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: mrvl,88w8897
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
serial {
|
||||||
|
bluetooth {
|
||||||
|
compatible = "mrvl,88w8897";
|
||||||
|
};
|
||||||
|
};
|
||||||
170
Documentation/devicetree/bindings/net/nfc/marvell,nci.yaml
Normal file
170
Documentation/devicetree/bindings/net/nfc/marvell,nci.yaml
Normal file
@@ -0,0 +1,170 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/net/nfc/marvell,nci.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Marvell International Ltd. NCI NFC controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
enum:
|
||||||
|
- marvell,nfc-i2c
|
||||||
|
- marvell,nfc-spi
|
||||||
|
- marvell,nfc-uart
|
||||||
|
|
||||||
|
hci-muxed:
|
||||||
|
type: boolean
|
||||||
|
description: |
|
||||||
|
Specifies that the chip is muxing NCI over HCI frames
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
reset-n-io:
|
||||||
|
$ref: "/schemas/types.yaml#/definitions/phandle-array"
|
||||||
|
maxItems: 1
|
||||||
|
description: |
|
||||||
|
Output GPIO pin used to reset the chip (active low)
|
||||||
|
|
||||||
|
i2c-int-falling:
|
||||||
|
type: boolean
|
||||||
|
description: |
|
||||||
|
For I2C type of connection. Specifies that the chip read event shall be
|
||||||
|
trigged on falling edge.
|
||||||
|
|
||||||
|
i2c-int-rising:
|
||||||
|
type: boolean
|
||||||
|
description: |
|
||||||
|
For I2C type of connection. Specifies that the chip read event shall be
|
||||||
|
trigged on rising edge.
|
||||||
|
|
||||||
|
break-control:
|
||||||
|
type: boolean
|
||||||
|
description: |
|
||||||
|
For UART type of connection. Specifies that the chip needs specific break
|
||||||
|
management.
|
||||||
|
|
||||||
|
flow-control:
|
||||||
|
type: boolean
|
||||||
|
description: |
|
||||||
|
For UART type of connection. Specifies that the chip is using RTS/CTS.
|
||||||
|
|
||||||
|
spi-cpha: true
|
||||||
|
spi-cpol: true
|
||||||
|
spi-max-frequency: true
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- if:
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
contains:
|
||||||
|
const: marvell,nfc-i2c
|
||||||
|
then:
|
||||||
|
properties:
|
||||||
|
break-control: false
|
||||||
|
flow-control: false
|
||||||
|
spi-cpha: false
|
||||||
|
spi-cpol: false
|
||||||
|
spi-max-frequency: false
|
||||||
|
required:
|
||||||
|
- reg
|
||||||
|
|
||||||
|
- if:
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
contains:
|
||||||
|
const: marvell,nfc-spi
|
||||||
|
then:
|
||||||
|
properties:
|
||||||
|
break-control: false
|
||||||
|
flow-control: false
|
||||||
|
i2c-int-falling: false
|
||||||
|
i2c-int-rising: false
|
||||||
|
required:
|
||||||
|
- reg
|
||||||
|
|
||||||
|
- if:
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
contains:
|
||||||
|
const: marvell,nfc-uart
|
||||||
|
then:
|
||||||
|
properties:
|
||||||
|
i2c-int-falling: false
|
||||||
|
i2c-int-rising: false
|
||||||
|
interrupts: false
|
||||||
|
spi-cpha: false
|
||||||
|
spi-cpol: false
|
||||||
|
spi-max-frequency: false
|
||||||
|
reg: false
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
|
|
||||||
|
i2c {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
nfc@8 {
|
||||||
|
compatible = "marvell,nfc-i2c";
|
||||||
|
reg = <0x8>;
|
||||||
|
|
||||||
|
interrupt-parent = <&gpio3>;
|
||||||
|
interrupts = <21 IRQ_TYPE_EDGE_RISING>;
|
||||||
|
|
||||||
|
i2c-int-rising;
|
||||||
|
|
||||||
|
reset-n-io = <&gpio3 19 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
|
|
||||||
|
spi {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
nfc@0 {
|
||||||
|
compatible = "marvell,nfc-spi";
|
||||||
|
reg = <0>;
|
||||||
|
|
||||||
|
spi-max-frequency = <3000000>;
|
||||||
|
spi-cpha;
|
||||||
|
spi-cpol;
|
||||||
|
|
||||||
|
interrupt-parent = <&gpio1>;
|
||||||
|
interrupts = <17 IRQ_TYPE_EDGE_RISING>;
|
||||||
|
|
||||||
|
reset-n-io = <&gpio3 19 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
|
||||||
|
uart {
|
||||||
|
nfc {
|
||||||
|
compatible = "marvell,nfc-uart";
|
||||||
|
|
||||||
|
reset-n-io = <&gpio3 16 GPIO_ACTIVE_HIGH>;
|
||||||
|
|
||||||
|
hci-muxed;
|
||||||
|
flow-control;
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -1,84 +0,0 @@
|
|||||||
* Marvell International Ltd. NCI NFC Controller
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible: Should be:
|
|
||||||
- "marvell,nfc-uart" or "mrvl,nfc-uart" for UART devices
|
|
||||||
- "marvell,nfc-i2c" for I2C devices
|
|
||||||
- "marvell,nfc-spi" for SPI devices
|
|
||||||
|
|
||||||
Optional SoC specific properties:
|
|
||||||
- pinctrl-names: Contains only one value - "default".
|
|
||||||
- pintctrl-0: Specifies the pin control groups used for this controller.
|
|
||||||
- reset-n-io: Output GPIO pin used to reset the chip (active low).
|
|
||||||
- hci-muxed: Specifies that the chip is muxing NCI over HCI frames.
|
|
||||||
|
|
||||||
Optional UART-based chip specific properties:
|
|
||||||
- flow-control: Specifies that the chip is using RTS/CTS.
|
|
||||||
- break-control: Specifies that the chip needs specific break management.
|
|
||||||
|
|
||||||
Optional I2C-based chip specific properties:
|
|
||||||
- i2c-int-falling: Specifies that the chip read event shall be trigged on
|
|
||||||
falling edge.
|
|
||||||
- i2c-int-rising: Specifies that the chip read event shall be trigged on
|
|
||||||
rising edge.
|
|
||||||
|
|
||||||
Example (for ARM-based BeagleBoard Black with 88W8887 on UART5):
|
|
||||||
|
|
||||||
&uart5 {
|
|
||||||
|
|
||||||
nfcmrvluart: nfcmrvluart@5 {
|
|
||||||
compatible = "marvell,nfc-uart";
|
|
||||||
|
|
||||||
reset-n-io = <&gpio3 16 0>;
|
|
||||||
|
|
||||||
hci-muxed;
|
|
||||||
flow-control;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
Example (for ARM-based BeagleBoard Black with 88W8887 on I2C1):
|
|
||||||
|
|
||||||
&i2c1 {
|
|
||||||
clock-frequency = <400000>;
|
|
||||||
|
|
||||||
nfcmrvli2c0: i2c@1 {
|
|
||||||
compatible = "marvell,nfc-i2c";
|
|
||||||
|
|
||||||
reg = <0x8>;
|
|
||||||
|
|
||||||
/* I2C INT configuration */
|
|
||||||
interrupt-parent = <&gpio3>;
|
|
||||||
interrupts = <21 0>;
|
|
||||||
|
|
||||||
/* I2C INT trigger configuration */
|
|
||||||
i2c-int-rising;
|
|
||||||
|
|
||||||
/* Reset IO */
|
|
||||||
reset-n-io = <&gpio3 19 0>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
Example (for ARM-based BeagleBoard Black on SPI0):
|
|
||||||
|
|
||||||
&spi0 {
|
|
||||||
|
|
||||||
mrvlnfcspi0: spi@0 {
|
|
||||||
compatible = "marvell,nfc-spi";
|
|
||||||
|
|
||||||
reg = <0>;
|
|
||||||
|
|
||||||
/* SPI Bus configuration */
|
|
||||||
spi-max-frequency = <3000000>;
|
|
||||||
spi-cpha;
|
|
||||||
spi-cpol;
|
|
||||||
|
|
||||||
/* SPI INT configuration */
|
|
||||||
interrupt-parent = <&gpio1>;
|
|
||||||
interrupts = <17 0>;
|
|
||||||
|
|
||||||
/* Reset IO */
|
|
||||||
reset-n-io = <&gpio3 19 0>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
61
Documentation/devicetree/bindings/net/nfc/nxp,nci.yaml
Normal file
61
Documentation/devicetree/bindings/net/nfc/nxp,nci.yaml
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/net/nfc/nxp,nci.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: NXP Semiconductors NCI NFC controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Charles Gorand <charles.gorand@effinnov.com>
|
||||||
|
- Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
oneOf:
|
||||||
|
- const: nxp,nxp-nci-i2c
|
||||||
|
- items:
|
||||||
|
- const: nxp,pn547
|
||||||
|
- const: nxp,nxp-nci-i2c
|
||||||
|
|
||||||
|
enable-gpios:
|
||||||
|
description: Output GPIO pin used for enabling/disabling the controller
|
||||||
|
|
||||||
|
firmware-gpios:
|
||||||
|
description: Output GPIO pin used to enter firmware download mode
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- enable-gpios
|
||||||
|
- interrupts
|
||||||
|
- reg
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
|
|
||||||
|
i2c {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
nfc@29 {
|
||||||
|
compatible = "nxp,nxp-nci-i2c";
|
||||||
|
|
||||||
|
reg = <0x29>;
|
||||||
|
|
||||||
|
interrupt-parent = <&gpio1>;
|
||||||
|
interrupts = <29 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
|
||||||
|
enable-gpios = <&gpio0 30 GPIO_ACTIVE_HIGH>;
|
||||||
|
firmware-gpios = <&gpio0 31 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
};
|
||||||
65
Documentation/devicetree/bindings/net/nfc/nxp,pn532.yaml
Normal file
65
Documentation/devicetree/bindings/net/nfc/nxp,pn532.yaml
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/net/nfc/nxp,pn532.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: NXP Semiconductors PN532 NFC controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
oneOf:
|
||||||
|
- const: nxp,pn532
|
||||||
|
- description: Deprecated bindings
|
||||||
|
enum:
|
||||||
|
- nxp,pn532-i2c
|
||||||
|
- nxp,pn533-i2c
|
||||||
|
deprecated: true
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
description: Required if connected via I2C
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
reg:
|
||||||
|
description: Required if connected via I2C
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
|
||||||
|
dependencies:
|
||||||
|
interrupts: [ 'reg' ]
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
# PN532 on I2C bus
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
|
|
||||||
|
i2c {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
nfc@24 {
|
||||||
|
compatible = "nxp,pn532";
|
||||||
|
|
||||||
|
reg = <0x24>;
|
||||||
|
|
||||||
|
interrupt-parent = <&gpio1>;
|
||||||
|
interrupts = <17 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# PN532 connected via UART
|
||||||
|
- |
|
||||||
|
serial@49042000 {
|
||||||
|
reg = <0x49042000 0x400>;
|
||||||
|
|
||||||
|
nfc {
|
||||||
|
compatible = "nxp,pn532";
|
||||||
|
};
|
||||||
|
};
|
||||||
58
Documentation/devicetree/bindings/net/nfc/nxp,pn544.yaml
Normal file
58
Documentation/devicetree/bindings/net/nfc/nxp,pn544.yaml
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/net/nfc/nxp,pn544.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: NXP Semiconductors PN544 NFC Controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: nxp,pn544-i2c
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
enable-gpios:
|
||||||
|
description: Output GPIO pin used for enabling/disabling the PN544
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
firmware-gpios:
|
||||||
|
description: Output GPIO pin used to enter firmware download mode
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- interrupts
|
||||||
|
- enable-gpios
|
||||||
|
- firmware-gpios
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
|
|
||||||
|
i2c {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
nfc@28 {
|
||||||
|
compatible = "nxp,pn544-i2c";
|
||||||
|
reg = <0x28>;
|
||||||
|
|
||||||
|
interrupt-parent = <&gpio1>;
|
||||||
|
interrupts = <17 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
|
||||||
|
enable-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
|
||||||
|
firmware-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
* NXP Semiconductors NXP NCI NFC Controllers
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible: Should be "nxp,nxp-nci-i2c".
|
|
||||||
- clock-frequency: I²C work frequency.
|
|
||||||
- reg: address on the bus
|
|
||||||
- interrupts: GPIO interrupt to which the chip is connected
|
|
||||||
- enable-gpios: Output GPIO pin used for enabling/disabling the chip
|
|
||||||
|
|
||||||
Optional SoC Specific Properties:
|
|
||||||
- pinctrl-names: Contains only one value - "default".
|
|
||||||
- pintctrl-0: Specifies the pin control groups used for this controller.
|
|
||||||
- firmware-gpios: Output GPIO pin used to enter firmware download mode
|
|
||||||
|
|
||||||
Example (for ARM-based BeagleBone with NPC100 NFC controller on I2C2):
|
|
||||||
|
|
||||||
&i2c2 {
|
|
||||||
|
|
||||||
|
|
||||||
npc100: npc100@29 {
|
|
||||||
|
|
||||||
compatible = "nxp,nxp-nci-i2c";
|
|
||||||
|
|
||||||
reg = <0x29>;
|
|
||||||
clock-frequency = <100000>;
|
|
||||||
|
|
||||||
interrupt-parent = <&gpio1>;
|
|
||||||
interrupts = <29 IRQ_TYPE_LEVEL_HIGH>;
|
|
||||||
|
|
||||||
enable-gpios = <&gpio0 30 GPIO_ACTIVE_HIGH>;
|
|
||||||
firmware-gpios = <&gpio0 31 GPIO_ACTIVE_HIGH>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
* NXP Semiconductors PN532 NFC Controller
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible: Should be
|
|
||||||
- "nxp,pn532" Place a node with this inside the devicetree node of the bus
|
|
||||||
where the NFC chip is connected to.
|
|
||||||
Currently the kernel has phy bindings for uart and i2c.
|
|
||||||
- "nxp,pn532-i2c" (DEPRECATED) only works for the i2c binding.
|
|
||||||
- "nxp,pn533-i2c" (DEPRECATED) only works for the i2c binding.
|
|
||||||
|
|
||||||
Required properties if connected on i2c:
|
|
||||||
- clock-frequency: I²C work frequency.
|
|
||||||
- reg: for the I²C bus address. This is fixed at 0x24 for the PN532.
|
|
||||||
- interrupts: GPIO interrupt to which the chip is connected
|
|
||||||
|
|
||||||
Optional SoC Specific Properties:
|
|
||||||
- pinctrl-names: Contains only one value - "default".
|
|
||||||
- pintctrl-0: Specifies the pin control groups used for this controller.
|
|
||||||
|
|
||||||
Example (for ARM-based BeagleBone with PN532 on I2C2):
|
|
||||||
|
|
||||||
&i2c2 {
|
|
||||||
|
|
||||||
|
|
||||||
pn532: nfc@24 {
|
|
||||||
|
|
||||||
compatible = "nxp,pn532";
|
|
||||||
|
|
||||||
reg = <0x24>;
|
|
||||||
clock-frequency = <400000>;
|
|
||||||
|
|
||||||
interrupt-parent = <&gpio1>;
|
|
||||||
interrupts = <17 IRQ_TYPE_EDGE_FALLING>;
|
|
||||||
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
Example (for PN532 connected via uart):
|
|
||||||
|
|
||||||
uart4: serial@49042000 {
|
|
||||||
compatible = "ti,omap3-uart";
|
|
||||||
|
|
||||||
pn532: nfc {
|
|
||||||
compatible = "nxp,pn532";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
* NXP Semiconductors PN544 NFC Controller
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible: Should be "nxp,pn544-i2c".
|
|
||||||
- clock-frequency: I²C work frequency.
|
|
||||||
- reg: address on the bus
|
|
||||||
- interrupts: GPIO interrupt to which the chip is connected
|
|
||||||
- enable-gpios: Output GPIO pin used for enabling/disabling the PN544
|
|
||||||
- firmware-gpios: Output GPIO pin used to enter firmware download mode
|
|
||||||
|
|
||||||
Optional SoC Specific Properties:
|
|
||||||
- pinctrl-names: Contains only one value - "default".
|
|
||||||
- pintctrl-0: Specifies the pin control groups used for this controller.
|
|
||||||
|
|
||||||
Example (for ARM-based BeagleBone with PN544 on I2C2):
|
|
||||||
|
|
||||||
&i2c2 {
|
|
||||||
|
|
||||||
|
|
||||||
pn544: pn544@28 {
|
|
||||||
|
|
||||||
compatible = "nxp,pn544-i2c";
|
|
||||||
|
|
||||||
reg = <0x28>;
|
|
||||||
clock-frequency = <400000>;
|
|
||||||
|
|
||||||
interrupt-parent = <&gpio1>;
|
|
||||||
interrupts = <17 IRQ_TYPE_LEVEL_HIGH>;
|
|
||||||
|
|
||||||
enable-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
|
|
||||||
firmware-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
106
Documentation/devicetree/bindings/net/nfc/st,st-nci.yaml
Normal file
106
Documentation/devicetree/bindings/net/nfc/st,st-nci.yaml
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/net/nfc/st,st-nci.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: STMicroelectronics ST NCI NFC controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
enum:
|
||||||
|
- st,st21nfcb-i2c
|
||||||
|
- st,st21nfcb-spi
|
||||||
|
- st,st21nfcc-i2c
|
||||||
|
|
||||||
|
reset-gpios:
|
||||||
|
description: Output GPIO pin used for resetting the controller
|
||||||
|
|
||||||
|
ese-present:
|
||||||
|
type: boolean
|
||||||
|
description: |
|
||||||
|
Specifies that an ese is physically connected to the controller
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
spi-max-frequency: true
|
||||||
|
|
||||||
|
uicc-present:
|
||||||
|
type: boolean
|
||||||
|
description: |
|
||||||
|
Specifies that the uicc swp signal can be physically connected to the
|
||||||
|
controller
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- interrupts
|
||||||
|
- reg
|
||||||
|
- reset-gpios
|
||||||
|
|
||||||
|
if:
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
contains:
|
||||||
|
enum:
|
||||||
|
- st,st21nfcb-i2c
|
||||||
|
- st,st21nfcc-i2c
|
||||||
|
then:
|
||||||
|
properties:
|
||||||
|
spi-max-frequency: false
|
||||||
|
else:
|
||||||
|
required:
|
||||||
|
- spi-max-frequency
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
|
|
||||||
|
i2c {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
nfc@8 {
|
||||||
|
compatible = "st,st21nfcb-i2c";
|
||||||
|
reg = <0x08>;
|
||||||
|
|
||||||
|
interrupt-parent = <&gpio5>;
|
||||||
|
interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
reset-gpios = <&gpio5 29 GPIO_ACTIVE_HIGH>;
|
||||||
|
|
||||||
|
ese-present;
|
||||||
|
uicc-present;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
|
|
||||||
|
spi {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
nfc@0 {
|
||||||
|
compatible = "st,st21nfcb-spi";
|
||||||
|
reg = <0>;
|
||||||
|
|
||||||
|
spi-max-frequency = <4000000>;
|
||||||
|
|
||||||
|
interrupt-parent = <&gpio5>;
|
||||||
|
interrupts = <2 IRQ_TYPE_EDGE_RISING>;
|
||||||
|
reset-gpios = <&gpio5 29 GPIO_ACTIVE_HIGH>;
|
||||||
|
|
||||||
|
ese-present;
|
||||||
|
uicc-present;
|
||||||
|
};
|
||||||
|
};
|
||||||
64
Documentation/devicetree/bindings/net/nfc/st,st21nfca.yaml
Normal file
64
Documentation/devicetree/bindings/net/nfc/st,st21nfca.yaml
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/net/nfc/st,st21nfca.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: STMicroelectronics SAS ST21NFCA NFC controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: st,st21nfca-i2c
|
||||||
|
|
||||||
|
enable-gpios:
|
||||||
|
description: Output GPIO pin used for enabling/disabling the controller
|
||||||
|
|
||||||
|
ese-present:
|
||||||
|
type: boolean
|
||||||
|
description: |
|
||||||
|
Specifies that an ese is physically connected to the controller
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
uicc-present:
|
||||||
|
type: boolean
|
||||||
|
description: |
|
||||||
|
Specifies that the uicc swp signal can be physically connected to the
|
||||||
|
controller
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- enable-gpios
|
||||||
|
- interrupts
|
||||||
|
- reg
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
|
|
||||||
|
i2c {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
nfc@1 {
|
||||||
|
compatible = "st,st21nfca-i2c";
|
||||||
|
reg = <0x1>;
|
||||||
|
|
||||||
|
interrupt-parent = <&gpio5>;
|
||||||
|
interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
|
||||||
|
enable-gpios = <&gpio5 29 GPIO_ACTIVE_HIGH>;
|
||||||
|
|
||||||
|
ese-present;
|
||||||
|
uicc-present;
|
||||||
|
};
|
||||||
|
};
|
||||||
57
Documentation/devicetree/bindings/net/nfc/st,st95hf.yaml
Normal file
57
Documentation/devicetree/bindings/net/nfc/st,st95hf.yaml
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/net/nfc/st,st95hf.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: STMicroelectronics ST95HF NFC controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: st,st95hf
|
||||||
|
|
||||||
|
enable-gpio:
|
||||||
|
description: Output GPIO pin used for enabling/disabling the controller
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
st95hfvin-supply:
|
||||||
|
description: ST95HF transceiver's Vin regulator supply
|
||||||
|
|
||||||
|
spi-max-frequency: true
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- enable-gpio
|
||||||
|
- interrupts
|
||||||
|
- reg
|
||||||
|
- spi-max-frequency
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
|
|
||||||
|
spi {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
nfc@0{
|
||||||
|
compatible = "st,st95hf";
|
||||||
|
reg = <0>;
|
||||||
|
|
||||||
|
spi-max-frequency = <1000000>;
|
||||||
|
enable-gpio = <&pio4 GPIO_ACTIVE_HIGH>;
|
||||||
|
interrupt-parent = <&pio0>;
|
||||||
|
interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
* STMicroelectronics SAS. ST NCI NFC Controller
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible: Should be "st,st21nfcb-i2c" or "st,st21nfcc-i2c".
|
|
||||||
- clock-frequency: I²C work frequency.
|
|
||||||
- reg: address on the bus
|
|
||||||
- interrupts: GPIO interrupt to which the chip is connected
|
|
||||||
- reset-gpios: Output GPIO pin used to reset the ST21NFCB
|
|
||||||
|
|
||||||
Optional SoC Specific Properties:
|
|
||||||
- pinctrl-names: Contains only one value - "default".
|
|
||||||
- pintctrl-0: Specifies the pin control groups used for this controller.
|
|
||||||
- ese-present: Specifies that an ese is physically connected to the nfc
|
|
||||||
controller.
|
|
||||||
- uicc-present: Specifies that the uicc swp signal can be physically
|
|
||||||
connected to the nfc controller.
|
|
||||||
|
|
||||||
Example (for ARM-based BeagleBoard xM with ST21NFCB on I2C2):
|
|
||||||
|
|
||||||
&i2c2 {
|
|
||||||
|
|
||||||
|
|
||||||
st21nfcb: st21nfcb@8 {
|
|
||||||
|
|
||||||
compatible = "st,st21nfcb-i2c";
|
|
||||||
|
|
||||||
reg = <0x08>;
|
|
||||||
clock-frequency = <400000>;
|
|
||||||
|
|
||||||
interrupt-parent = <&gpio5>;
|
|
||||||
interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
|
|
||||||
|
|
||||||
reset-gpios = <&gpio5 29 GPIO_ACTIVE_HIGH>;
|
|
||||||
|
|
||||||
ese-present;
|
|
||||||
uicc-present;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
* STMicroelectronics SAS. ST NCI NFC Controller
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible: Should be "st,st21nfcb-spi"
|
|
||||||
- spi-max-frequency: Maximum SPI frequency (<= 4000000).
|
|
||||||
- interrupts: GPIO interrupt to which the chip is connected
|
|
||||||
- reset-gpios: Output GPIO pin used to reset the ST21NFCB
|
|
||||||
|
|
||||||
Optional SoC Specific Properties:
|
|
||||||
- pinctrl-names: Contains only one value - "default".
|
|
||||||
- pintctrl-0: Specifies the pin control groups used for this controller.
|
|
||||||
- ese-present: Specifies that an ese is physically connected to the nfc
|
|
||||||
controller.
|
|
||||||
- uicc-present: Specifies that the uicc swp signal can be physically
|
|
||||||
connected to the nfc controller.
|
|
||||||
|
|
||||||
Example (for ARM-based BeagleBoard xM with ST21NFCB on SPI4):
|
|
||||||
|
|
||||||
&mcspi4 {
|
|
||||||
|
|
||||||
|
|
||||||
st21nfcb: st21nfcb@0 {
|
|
||||||
|
|
||||||
compatible = "st,st21nfcb-spi";
|
|
||||||
|
|
||||||
clock-frequency = <4000000>;
|
|
||||||
|
|
||||||
interrupt-parent = <&gpio5>;
|
|
||||||
interrupts = <2 IRQ_TYPE_EDGE_RISING>;
|
|
||||||
|
|
||||||
reset-gpios = <&gpio5 29 GPIO_ACTIVE_HIGH>;
|
|
||||||
|
|
||||||
ese-present;
|
|
||||||
uicc-present;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
* STMicroelectronics SAS. ST21NFCA NFC Controller
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible: Should be "st,st21nfca-i2c".
|
|
||||||
- clock-frequency: I²C work frequency.
|
|
||||||
- reg: address on the bus
|
|
||||||
- enable-gpios: Output GPIO pin used for enabling/disabling the ST21NFCA
|
|
||||||
|
|
||||||
Optional SoC Specific Properties:
|
|
||||||
- pinctrl-names: Contains only one value - "default".
|
|
||||||
- pintctrl-0: Specifies the pin control groups used for this controller.
|
|
||||||
- ese-present: Specifies that an ese is physically connected to the nfc
|
|
||||||
controller.
|
|
||||||
- uicc-present: Specifies that the uicc swp signal can be physically
|
|
||||||
connected to the nfc controller.
|
|
||||||
|
|
||||||
Example (for ARM-based BeagleBoard xM with ST21NFCA on I2C2):
|
|
||||||
|
|
||||||
&i2c2 {
|
|
||||||
|
|
||||||
|
|
||||||
st21nfca: st21nfca@1 {
|
|
||||||
|
|
||||||
compatible = "st,st21nfca-i2c";
|
|
||||||
|
|
||||||
reg = <0x01>;
|
|
||||||
clock-frequency = <400000>;
|
|
||||||
|
|
||||||
interrupt-parent = <&gpio5>;
|
|
||||||
interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
|
|
||||||
|
|
||||||
enable-gpios = <&gpio5 29 GPIO_ACTIVE_HIGH>;
|
|
||||||
|
|
||||||
ese-present;
|
|
||||||
uicc-present;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
* STMicroelectronics : NFC Transceiver ST95HF
|
|
||||||
|
|
||||||
ST NFC Transceiver is required to attach with SPI bus.
|
|
||||||
ST95HF node should be defined in DT as SPI slave device of SPI
|
|
||||||
master with which ST95HF transceiver is physically connected.
|
|
||||||
The properties defined below are required to be the part of DT
|
|
||||||
to include ST95HF transceiver into the platform.
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
===================
|
|
||||||
- reg: Address of SPI slave "ST95HF transceiver" on SPI master bus.
|
|
||||||
|
|
||||||
- compatible: should be "st,st95hf" for ST95HF NFC transceiver
|
|
||||||
|
|
||||||
- spi-max-frequency: Max. operating SPI frequency for ST95HF
|
|
||||||
transceiver.
|
|
||||||
|
|
||||||
- enable-gpio: GPIO line to enable ST95HF transceiver.
|
|
||||||
|
|
||||||
- interrupts : Standard way to define ST95HF transceiver's out
|
|
||||||
interrupt.
|
|
||||||
|
|
||||||
Optional property:
|
|
||||||
=================
|
|
||||||
- st95hfvin-supply : This is an optional property. It contains a
|
|
||||||
phandle to ST95HF transceiver's regulator supply node in DT.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
=======
|
|
||||||
spi@9840000 {
|
|
||||||
reg = <0x9840000 0x110>;
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
cs-gpios = <&pio0 4>;
|
|
||||||
|
|
||||||
st95hf@0{
|
|
||||||
reg = <0>;
|
|
||||||
compatible = "st,st95hf";
|
|
||||||
spi-max-frequency = <1000000>;
|
|
||||||
enable-gpio = <&pio4 0>;
|
|
||||||
interrupt-parent = <&pio0>;
|
|
||||||
interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
98
Documentation/devicetree/bindings/net/nfc/ti,trf7970a.yaml
Normal file
98
Documentation/devicetree/bindings/net/nfc/ti,trf7970a.yaml
Normal file
@@ -0,0 +1,98 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/net/nfc/ti,trf7970a.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Texas Instruments TRF7970A RFID/NFC/15693 Transceiver
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
|
||||||
|
- Mark Greer <mgreer@animalcreek.com>
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: ti,trf7970a
|
||||||
|
|
||||||
|
autosuspend-delay:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description: |
|
||||||
|
Specify autosuspend delay in milliseconds.
|
||||||
|
|
||||||
|
clock-frequency:
|
||||||
|
description: |
|
||||||
|
Set to specify that the input frequency to the trf7970a is 13560000Hz or
|
||||||
|
27120000Hz
|
||||||
|
|
||||||
|
en2-rf-quirk:
|
||||||
|
type: boolean
|
||||||
|
description: |
|
||||||
|
Specify that the trf7970a being used has the "EN2 RF" erratum
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
irq-status-read-quirk:
|
||||||
|
type: boolean
|
||||||
|
description: |
|
||||||
|
Specify that the trf7970a being used has the "IRQ Status Read" erratum
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
spi-max-frequency: true
|
||||||
|
|
||||||
|
ti,enable-gpios:
|
||||||
|
minItems: 1
|
||||||
|
maxItems: 2
|
||||||
|
description: |
|
||||||
|
One or two GPIO entries used for 'EN' and 'EN2' pins on the TRF7970A. EN2
|
||||||
|
is optional.
|
||||||
|
|
||||||
|
vdd-io-supply:
|
||||||
|
description: |
|
||||||
|
Regulator specifying voltage for VDD-IO
|
||||||
|
|
||||||
|
vin-supply:
|
||||||
|
description: |
|
||||||
|
Regulator for supply voltage to VIN pin
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- interrupts
|
||||||
|
- reg
|
||||||
|
- spi-max-frequency
|
||||||
|
- ti,enable-gpios
|
||||||
|
- vin-supply
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
|
|
||||||
|
i2c {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
nfc@0 {
|
||||||
|
compatible = "ti,trf7970a";
|
||||||
|
reg = <0>;
|
||||||
|
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&trf7970a_default>;
|
||||||
|
spi-max-frequency = <2000000>;
|
||||||
|
interrupt-parent = <&gpio2>;
|
||||||
|
interrupts = <14 0>;
|
||||||
|
|
||||||
|
ti,enable-gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>,
|
||||||
|
<&gpio2 5 GPIO_ACTIVE_HIGH>;
|
||||||
|
vin-supply = <&ldo3_reg>;
|
||||||
|
vdd-io-supply = <&ldo2_reg>;
|
||||||
|
autosuspend-delay = <30000>;
|
||||||
|
irq-status-read-quirk;
|
||||||
|
en2-rf-quirk;
|
||||||
|
clock-frequency = <27120000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
* Texas Instruments TRF7970A RFID/NFC/15693 Transceiver
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible: Should be "ti,trf7970a".
|
|
||||||
- spi-max-frequency: Maximum SPI frequency (<= 2000000).
|
|
||||||
- interrupts: A single interrupt specifier.
|
|
||||||
- ti,enable-gpios: One or two GPIO entries used for 'EN' and 'EN2' pins on the
|
|
||||||
TRF7970A. EN2 is optional.
|
|
||||||
- vin-supply: Regulator for supply voltage to VIN pin
|
|
||||||
|
|
||||||
Optional SoC Specific Properties:
|
|
||||||
- pinctrl-names: Contains only one value - "default".
|
|
||||||
- pintctrl-0: Specifies the pin control groups used for this controller.
|
|
||||||
- autosuspend-delay: Specify autosuspend delay in milliseconds.
|
|
||||||
- irq-status-read-quirk: Specify that the trf7970a being used has the
|
|
||||||
"IRQ Status Read" erratum.
|
|
||||||
- en2-rf-quirk: Specify that the trf7970a being used has the "EN2 RF"
|
|
||||||
erratum.
|
|
||||||
- vdd-io-supply: Regulator specifying voltage for vdd-io
|
|
||||||
- clock-frequency: Set to specify that the input frequency to the trf7970a is 13560000Hz or 27120000Hz
|
|
||||||
|
|
||||||
Example (for ARM-based BeagleBone with TRF7970A on SPI1):
|
|
||||||
|
|
||||||
&spi1 {
|
|
||||||
|
|
||||||
nfc@0 {
|
|
||||||
compatible = "ti,trf7970a";
|
|
||||||
reg = <0>;
|
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&trf7970a_default>;
|
|
||||||
spi-max-frequency = <2000000>;
|
|
||||||
interrupt-parent = <&gpio2>;
|
|
||||||
interrupts = <14 0>;
|
|
||||||
ti,enable-gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>,
|
|
||||||
<&gpio2 5 GPIO_ACTIVE_HIGH>;
|
|
||||||
vin-supply = <&ldo3_reg>;
|
|
||||||
vdd-io-supply = <&ldo2_reg>;
|
|
||||||
autosuspend-delay = <30000>;
|
|
||||||
irq-status-read-quirk;
|
|
||||||
en2-rf-quirk;
|
|
||||||
clock-frequency = <27120000>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
@@ -64,7 +64,8 @@ properties:
|
|||||||
- const: gsi
|
- const: gsi
|
||||||
|
|
||||||
iommus:
|
iommus:
|
||||||
maxItems: 1
|
minItems: 1
|
||||||
|
maxItems: 2
|
||||||
|
|
||||||
clocks:
|
clocks:
|
||||||
maxItems: 1
|
maxItems: 1
|
||||||
|
|||||||
@@ -34,6 +34,8 @@ properties:
|
|||||||
maxItems: 1
|
maxItems: 1
|
||||||
description: GPIO specifier, used to wakeup the host processor
|
description: GPIO specifier, used to wakeup the host processor
|
||||||
|
|
||||||
|
max-speed: true
|
||||||
|
|
||||||
required:
|
required:
|
||||||
- compatible
|
- compatible
|
||||||
|
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ properties:
|
|||||||
- allwinner,sun7i-a20-gmac
|
- allwinner,sun7i-a20-gmac
|
||||||
- allwinner,sun8i-a83t-emac
|
- allwinner,sun8i-a83t-emac
|
||||||
- allwinner,sun8i-h3-emac
|
- allwinner,sun8i-h3-emac
|
||||||
- allwinner,sun8i-r40-emac
|
- allwinner,sun8i-r40-gmac
|
||||||
- allwinner,sun8i-v3s-emac
|
- allwinner,sun8i-v3s-emac
|
||||||
- allwinner,sun50i-a64-emac
|
- allwinner,sun50i-a64-emac
|
||||||
- loongson,ls2k-dwmac
|
- loongson,ls2k-dwmac
|
||||||
@@ -318,7 +318,7 @@ allOf:
|
|||||||
- allwinner,sun7i-a20-gmac
|
- allwinner,sun7i-a20-gmac
|
||||||
- allwinner,sun8i-a83t-emac
|
- allwinner,sun8i-a83t-emac
|
||||||
- allwinner,sun8i-h3-emac
|
- allwinner,sun8i-h3-emac
|
||||||
- allwinner,sun8i-r40-emac
|
- allwinner,sun8i-r40-gmac
|
||||||
- allwinner,sun8i-v3s-emac
|
- allwinner,sun8i-v3s-emac
|
||||||
- allwinner,sun50i-a64-emac
|
- allwinner,sun50i-a64-emac
|
||||||
- ingenic,jz4775-mac
|
- ingenic,jz4775-mac
|
||||||
@@ -366,7 +366,7 @@ allOf:
|
|||||||
- allwinner,sun7i-a20-gmac
|
- allwinner,sun7i-a20-gmac
|
||||||
- allwinner,sun8i-a83t-emac
|
- allwinner,sun8i-a83t-emac
|
||||||
- allwinner,sun8i-h3-emac
|
- allwinner,sun8i-h3-emac
|
||||||
- allwinner,sun8i-r40-emac
|
- allwinner,sun8i-r40-gmac
|
||||||
- allwinner,sun8i-v3s-emac
|
- allwinner,sun8i-v3s-emac
|
||||||
- allwinner,sun50i-a64-emac
|
- allwinner,sun50i-a64-emac
|
||||||
- loongson,ls2k-dwmac
|
- loongson,ls2k-dwmac
|
||||||
|
|||||||
92
Documentation/devicetree/bindings/net/ti,bluetooth.yaml
Normal file
92
Documentation/devicetree/bindings/net/ti,bluetooth.yaml
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/net/ti,bluetooth.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Texas Instruments Bluetooth Chips
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- David Lechner <david@lechnology.com>
|
||||||
|
|
||||||
|
description: |
|
||||||
|
This documents the binding structure and common properties for serial
|
||||||
|
attached TI Bluetooth devices. The following chips are included in this
|
||||||
|
binding:
|
||||||
|
|
||||||
|
* TI CC256x Bluetooth devices
|
||||||
|
* TI WiLink 7/8 (wl12xx/wl18xx) Shared Transport BT/FM/GPS devices
|
||||||
|
|
||||||
|
TI WiLink devices have a UART interface for providing Bluetooth, FM radio,
|
||||||
|
and GPS over what's called "shared transport". The shared transport is
|
||||||
|
standard BT HCI protocol with additional channels for the other functions.
|
||||||
|
|
||||||
|
TI WiLink devices also have a separate WiFi interface as described in
|
||||||
|
wireless/ti,wlcore.yaml.
|
||||||
|
|
||||||
|
This bindings follows the UART slave device binding in ../serial/serial.yaml.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
enum:
|
||||||
|
- ti,cc2560
|
||||||
|
- ti,wl1271-st
|
||||||
|
- ti,wl1273-st
|
||||||
|
- ti,wl1281-st
|
||||||
|
- ti,wl1283-st
|
||||||
|
- ti,wl1285-st
|
||||||
|
- ti,wl1801-st
|
||||||
|
- ti,wl1805-st
|
||||||
|
- ti,wl1807-st
|
||||||
|
- ti,wl1831-st
|
||||||
|
- ti,wl1835-st
|
||||||
|
- ti,wl1837-st
|
||||||
|
|
||||||
|
enable-gpios:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
vio-supply:
|
||||||
|
description: Vio input supply (1.8V)
|
||||||
|
|
||||||
|
vbat-supply:
|
||||||
|
description: Vbat input supply (2.9-4.8V)
|
||||||
|
|
||||||
|
clocks:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
clock-names:
|
||||||
|
items:
|
||||||
|
- const: ext_clock
|
||||||
|
|
||||||
|
max-speed:
|
||||||
|
default: 3000000
|
||||||
|
|
||||||
|
nvmem-cells:
|
||||||
|
maxItems: 1
|
||||||
|
description:
|
||||||
|
Nvmem data cell that contains a 6 byte BD address with the most
|
||||||
|
significant byte first (big-endian).
|
||||||
|
|
||||||
|
nvmem-cell-names:
|
||||||
|
items:
|
||||||
|
- const: bd-address
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
|
||||||
|
serial {
|
||||||
|
bluetooth {
|
||||||
|
compatible = "ti,wl1835-st";
|
||||||
|
enable-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
|
||||||
|
clocks = <&clk32k_wl18xx>;
|
||||||
|
clock-names = "ext_clock";
|
||||||
|
nvmem-cells = <&bd_address>;
|
||||||
|
nvmem-cell-names = "bd-address";
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -1,60 +0,0 @@
|
|||||||
Texas Instruments Bluetooth Chips
|
|
||||||
---------------------------------
|
|
||||||
|
|
||||||
This documents the binding structure and common properties for serial
|
|
||||||
attached TI Bluetooth devices. The following chips are included in this
|
|
||||||
binding:
|
|
||||||
|
|
||||||
* TI CC256x Bluetooth devices
|
|
||||||
* TI WiLink 7/8 (wl12xx/wl18xx) Shared Transport BT/FM/GPS devices
|
|
||||||
|
|
||||||
TI WiLink devices have a UART interface for providing Bluetooth, FM radio,
|
|
||||||
and GPS over what's called "shared transport". The shared transport is
|
|
||||||
standard BT HCI protocol with additional channels for the other functions.
|
|
||||||
|
|
||||||
TI WiLink devices also have a separate WiFi interface as described in
|
|
||||||
wireless/ti,wlcore.txt.
|
|
||||||
|
|
||||||
This bindings follows the UART slave device binding in ../serial/serial.yaml.
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible: should be one of the following:
|
|
||||||
"ti,cc2560"
|
|
||||||
"ti,wl1271-st"
|
|
||||||
"ti,wl1273-st"
|
|
||||||
"ti,wl1281-st"
|
|
||||||
"ti,wl1283-st"
|
|
||||||
"ti,wl1285-st"
|
|
||||||
"ti,wl1801-st"
|
|
||||||
"ti,wl1805-st"
|
|
||||||
"ti,wl1807-st"
|
|
||||||
"ti,wl1831-st"
|
|
||||||
"ti,wl1835-st"
|
|
||||||
"ti,wl1837-st"
|
|
||||||
|
|
||||||
Optional properties:
|
|
||||||
- enable-gpios : GPIO signal controlling enabling of BT. Active high.
|
|
||||||
- vio-supply : Vio input supply (1.8V)
|
|
||||||
- vbat-supply : Vbat input supply (2.9-4.8V)
|
|
||||||
- clocks : Must contain an entry, for each entry in clock-names.
|
|
||||||
See ../clocks/clock-bindings.txt for details.
|
|
||||||
- clock-names : Must include the following entry:
|
|
||||||
"ext_clock" (External clock provided to the TI combo chip).
|
|
||||||
- nvmem-cells: phandle to nvmem data cell that contains a 6 byte BD address
|
|
||||||
with the most significant byte first (big-endian).
|
|
||||||
- nvmem-cell-names: "bd-address" (required when nvmem-cells is specified)
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
&serial0 {
|
|
||||||
compatible = "ns16550a";
|
|
||||||
...
|
|
||||||
bluetooth {
|
|
||||||
compatible = "ti,wl1835-st";
|
|
||||||
enable-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
|
|
||||||
clocks = <&clk32k_wl18xx>;
|
|
||||||
clock-names = "ext_clock";
|
|
||||||
nvmem-cells = <&bd_address>;
|
|
||||||
nvmem-cell-names = "bd-address";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
Espressif ESP8089 wireless SDIO devices
|
|
||||||
|
|
||||||
This node provides properties for controlling the ESP8089 wireless device.
|
|
||||||
The node is expected to be specified as a child node to the SDIO controller
|
|
||||||
that connects the device to the system.
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
|
|
||||||
- compatible : Should be "esp,esp8089".
|
|
||||||
|
|
||||||
Optional properties:
|
|
||||||
- esp,crystal-26M-en: Integer value for the crystal_26M_en firmware parameter
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
&mmc1 {
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
|
|
||||||
vmmc-supply = <®_dldo1>;
|
|
||||||
mmc-pwrseq = <&wifi_pwrseq>;
|
|
||||||
bus-width = <4>;
|
|
||||||
non-removable;
|
|
||||||
|
|
||||||
esp8089: sdio_wifi@1 {
|
|
||||||
compatible = "esp,esp8089";
|
|
||||||
reg = <1>;
|
|
||||||
esp,crystal-26M-en = <2>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/net/wireless/esp,esp8089.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Espressif ESP8089 Device Tree Bindings
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Hans de Goede <hdegoede@redhat.com>
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: esp,esp8089
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
esp,crystal-26M-en:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description: >
|
||||||
|
Value for the crystal_26M_en firmware parameter
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
mmc {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
wifi@1 {
|
||||||
|
compatible = "esp,esp8089";
|
||||||
|
reg = <1>;
|
||||||
|
esp,crystal-26M-en = <2>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
...
|
||||||
@@ -1,57 +0,0 @@
|
|||||||
* Texas Instruments wl12xx/wl18xx wireless lan controller
|
|
||||||
|
|
||||||
The wl12xx/wl18xx chips can be connected via SPI or via SDIO. This
|
|
||||||
document describes the binding for the SPI connected chip.
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible : Should be one of the following:
|
|
||||||
* "ti,wl1271"
|
|
||||||
* "ti,wl1273"
|
|
||||||
* "ti,wl1281"
|
|
||||||
* "ti,wl1283"
|
|
||||||
* "ti,wl1801"
|
|
||||||
* "ti,wl1805"
|
|
||||||
* "ti,wl1807"
|
|
||||||
* "ti,wl1831"
|
|
||||||
* "ti,wl1835"
|
|
||||||
* "ti,wl1837"
|
|
||||||
- reg : Chip select address of device
|
|
||||||
- spi-max-frequency : Maximum SPI clocking speed of device in Hz
|
|
||||||
- interrupts : Should contain parameters for 1 interrupt line.
|
|
||||||
- vwlan-supply : Point the node of the regulator that powers/enable the
|
|
||||||
wl12xx/wl18xx chip
|
|
||||||
|
|
||||||
Optional properties:
|
|
||||||
- ref-clock-frequency : Reference clock frequency (should be set for wl12xx)
|
|
||||||
- clock-xtal : boolean, clock is generated from XTAL
|
|
||||||
|
|
||||||
- Please consult Documentation/devicetree/bindings/spi/spi-bus.txt
|
|
||||||
for optional SPI connection related properties,
|
|
||||||
|
|
||||||
Examples:
|
|
||||||
|
|
||||||
For wl12xx family:
|
|
||||||
&spi1 {
|
|
||||||
wlcore: wlcore@1 {
|
|
||||||
compatible = "ti,wl1271";
|
|
||||||
reg = <1>;
|
|
||||||
spi-max-frequency = <48000000>;
|
|
||||||
interrupt-parent = <&gpio3>;
|
|
||||||
interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
|
|
||||||
vwlan-supply = <&vwlan_fixed>;
|
|
||||||
clock-xtal;
|
|
||||||
ref-clock-frequency = <38400000>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
For wl18xx family:
|
|
||||||
&spi0 {
|
|
||||||
wlcore: wlcore@0 {
|
|
||||||
compatible = "ti,wl1835";
|
|
||||||
reg = <0>;
|
|
||||||
spi-max-frequency = <48000000>;
|
|
||||||
interrupt-parent = <&gpio0>;
|
|
||||||
interrupts = <27 IRQ_TYPE_EDGE_RISING>;
|
|
||||||
vwlan-supply = <&vwlan_fixed>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
TI Wilink 6/7/8 (wl12xx/wl18xx) SDIO devices
|
|
||||||
|
|
||||||
This node provides properties for controlling the wilink wireless device. The
|
|
||||||
node is expected to be specified as a child node to the SDIO controller that
|
|
||||||
connects the device to the system.
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible: should be one of the following:
|
|
||||||
* "ti,wl1271"
|
|
||||||
* "ti,wl1273"
|
|
||||||
* "ti,wl1281"
|
|
||||||
* "ti,wl1283"
|
|
||||||
* "ti,wl1285"
|
|
||||||
* "ti,wl1801"
|
|
||||||
* "ti,wl1805"
|
|
||||||
* "ti,wl1807"
|
|
||||||
* "ti,wl1831"
|
|
||||||
* "ti,wl1835"
|
|
||||||
* "ti,wl1837"
|
|
||||||
- interrupts : specifies attributes for the out-of-band interrupt.
|
|
||||||
|
|
||||||
Optional properties:
|
|
||||||
- ref-clock-frequency : ref clock frequency in Hz
|
|
||||||
- tcxo-clock-frequency : tcxo clock frequency in Hz
|
|
||||||
|
|
||||||
Note: the *-clock-frequency properties assume internal clocks. In case of external
|
|
||||||
clock, new bindings (for parsing the clock nodes) have to be added.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
&mmc3 {
|
|
||||||
vmmc-supply = <&wlan_en_reg>;
|
|
||||||
bus-width = <4>;
|
|
||||||
cap-power-off-card;
|
|
||||||
keep-power-in-suspend;
|
|
||||||
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
wlcore: wlcore@2 {
|
|
||||||
compatible = "ti,wl1835";
|
|
||||||
reg = <2>;
|
|
||||||
interrupt-parent = <&gpio0>;
|
|
||||||
interrupts = <19 IRQ_TYPE_LEVEL_HIGH>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
134
Documentation/devicetree/bindings/net/wireless/ti,wlcore.yaml
Normal file
134
Documentation/devicetree/bindings/net/wireless/ti,wlcore.yaml
Normal file
@@ -0,0 +1,134 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/net/wireless/ti,wlcore.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Texas Instruments Wilink 6/7/8 (wl12xx/wl18xx) Wireless LAN Controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Tony Lindgren <tony@atomide.com>
|
||||||
|
|
||||||
|
description:
|
||||||
|
The wl12xx/wl18xx chips can be connected via SPI or via SDIO.
|
||||||
|
Note that the *-clock-frequency properties assume internal clocks. In case
|
||||||
|
of external clocks, new bindings (for parsing the clock nodes) have to be
|
||||||
|
added.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
enum:
|
||||||
|
- ti,wl1271
|
||||||
|
- ti,wl1273
|
||||||
|
- ti,wl1281
|
||||||
|
- ti,wl1283
|
||||||
|
- ti,wl1285
|
||||||
|
- ti,wl1801
|
||||||
|
- ti,wl1805
|
||||||
|
- ti,wl1807
|
||||||
|
- ti,wl1831
|
||||||
|
- ti,wl1835
|
||||||
|
- ti,wl1837
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
description:
|
||||||
|
This is required when connected via SPI, and optional when connected via
|
||||||
|
SDIO.
|
||||||
|
|
||||||
|
spi-max-frequency: true
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
minItems: 1
|
||||||
|
maxItems: 2
|
||||||
|
|
||||||
|
interrupt-names:
|
||||||
|
items:
|
||||||
|
- const: irq
|
||||||
|
- const: wakeup
|
||||||
|
|
||||||
|
vwlan-supply:
|
||||||
|
description:
|
||||||
|
Points to the node of the regulator that powers/enable the wl12xx/wl18xx
|
||||||
|
chip. This is required when connected via SPI.
|
||||||
|
|
||||||
|
|
||||||
|
ref-clock-frequency:
|
||||||
|
description: Reference clock frequency.
|
||||||
|
|
||||||
|
tcxo-clock-frequency:
|
||||||
|
description: TCXO clock frequency.
|
||||||
|
|
||||||
|
clock-xtal:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/flag
|
||||||
|
description: Indicates that the clock is generated from XTAL.
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- interrupts
|
||||||
|
|
||||||
|
if:
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
contains:
|
||||||
|
enum:
|
||||||
|
- ti,wl1271
|
||||||
|
- ti,wl1273
|
||||||
|
- ti,wl1281
|
||||||
|
- ti,wl1283
|
||||||
|
then:
|
||||||
|
required:
|
||||||
|
- ref-clock-frequency
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
|
|
||||||
|
// For wl12xx family:
|
||||||
|
spi1 {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
wlcore1: wlcore@1 {
|
||||||
|
compatible = "ti,wl1271";
|
||||||
|
reg = <1>;
|
||||||
|
spi-max-frequency = <48000000>;
|
||||||
|
interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
vwlan-supply = <&vwlan_fixed>;
|
||||||
|
clock-xtal;
|
||||||
|
ref-clock-frequency = <38400000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
// For wl18xx family:
|
||||||
|
spi2 {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
wlcore2: wlcore@0 {
|
||||||
|
compatible = "ti,wl1835";
|
||||||
|
reg = <0>;
|
||||||
|
spi-max-frequency = <48000000>;
|
||||||
|
interrupts = <27 IRQ_TYPE_EDGE_RISING>;
|
||||||
|
vwlan-supply = <&vwlan_fixed>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
// SDIO example:
|
||||||
|
mmc3 {
|
||||||
|
vmmc-supply = <&wlan_en_reg>;
|
||||||
|
bus-width = <4>;
|
||||||
|
cap-power-off-card;
|
||||||
|
keep-power-in-suspend;
|
||||||
|
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
wlcore3: wlcore@2 {
|
||||||
|
compatible = "ti,wl1835";
|
||||||
|
reg = <2>;
|
||||||
|
interrupts = <19 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -103,7 +103,51 @@ Example:
|
|||||||
};
|
};
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
4 - Example dts
|
4 - Empty memory nodes
|
||||||
|
==============================================================================
|
||||||
|
|
||||||
|
Empty memory nodes, which no memory resides in, are allowed. There are no
|
||||||
|
device nodes for these empty memory nodes. However, the NUMA node IDs and
|
||||||
|
distance maps are still valid and memory may be added into them through
|
||||||
|
hotplug afterwards.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
memory@0 {
|
||||||
|
device_type = "memory";
|
||||||
|
reg = <0x0 0x0 0x0 0x80000000>;
|
||||||
|
numa-node-id = <0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
memory@80000000 {
|
||||||
|
device_type = "memory";
|
||||||
|
reg = <0x0 0x80000000 0x0 0x80000000>;
|
||||||
|
numa-node-id = <1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Empty memory node 2 and 3 */
|
||||||
|
distance-map {
|
||||||
|
compatible = "numa-distance-map-v1";
|
||||||
|
distance-matrix = <0 0 10>,
|
||||||
|
<0 1 20>,
|
||||||
|
<0 2 40>,
|
||||||
|
<0 3 20>,
|
||||||
|
<1 0 20>,
|
||||||
|
<1 1 10>,
|
||||||
|
<1 2 20>,
|
||||||
|
<1 3 40>,
|
||||||
|
<2 0 40>,
|
||||||
|
<2 1 20>,
|
||||||
|
<2 2 10>,
|
||||||
|
<2 3 20>,
|
||||||
|
<3 0 20>,
|
||||||
|
<3 1 40>,
|
||||||
|
<3 2 20>,
|
||||||
|
<3 3 10>;
|
||||||
|
};
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
5 - Example dts
|
||||||
==============================================================================
|
==============================================================================
|
||||||
|
|
||||||
Dual socket system consists of 2 boards connected through ccn bus and
|
Dual socket system consists of 2 boards connected through ccn bus and
|
||||||
|
|||||||
160
Documentation/devicetree/bindings/pci/apple,pcie.yaml
Normal file
160
Documentation/devicetree/bindings/pci/apple,pcie.yaml
Normal file
@@ -0,0 +1,160 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/pci/apple,pcie.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Apple PCIe host controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Mark Kettenis <kettenis@openbsd.org>
|
||||||
|
|
||||||
|
description: |
|
||||||
|
The Apple PCIe host controller is a PCIe host controller with
|
||||||
|
multiple root ports present in Apple ARM SoC platforms, including
|
||||||
|
various iPhone and iPad devices and the "Apple Silicon" Macs.
|
||||||
|
The controller incorporates Synopsys DesigWare PCIe logic to
|
||||||
|
implements its root ports. But the ATU found on most DesignWare
|
||||||
|
PCIe host bridges is absent.
|
||||||
|
|
||||||
|
All root ports share a single ECAM space, but separate GPIOs are
|
||||||
|
used to take the PCI devices on those ports out of reset. Therefore
|
||||||
|
the standard "reset-gpios" and "max-link-speed" properties appear on
|
||||||
|
the child nodes that represent the PCI bridges that correspond to
|
||||||
|
the individual root ports.
|
||||||
|
|
||||||
|
MSIs are handled by the PCIe controller and translated into regular
|
||||||
|
interrupts. A range of 32 MSIs is provided. These 32 MSIs can be
|
||||||
|
distributed over the root ports as the OS sees fit by programming
|
||||||
|
the PCIe controller's port registers.
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- $ref: /schemas/pci/pci-bus.yaml#
|
||||||
|
- $ref: /schemas/interrupt-controller/msi-controller.yaml#
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
items:
|
||||||
|
- const: apple,t8103-pcie
|
||||||
|
- const: apple,pcie
|
||||||
|
|
||||||
|
reg:
|
||||||
|
minItems: 3
|
||||||
|
maxItems: 5
|
||||||
|
|
||||||
|
reg-names:
|
||||||
|
minItems: 3
|
||||||
|
items:
|
||||||
|
- const: config
|
||||||
|
- const: rc
|
||||||
|
- const: port0
|
||||||
|
- const: port1
|
||||||
|
- const: port2
|
||||||
|
|
||||||
|
ranges:
|
||||||
|
minItems: 2
|
||||||
|
maxItems: 2
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
description:
|
||||||
|
Interrupt specifiers, one for each root port.
|
||||||
|
minItems: 1
|
||||||
|
maxItems: 3
|
||||||
|
|
||||||
|
msi-parent: true
|
||||||
|
|
||||||
|
msi-ranges:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
iommu-map: true
|
||||||
|
iommu-map-mask: true
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- reg-names
|
||||||
|
- bus-range
|
||||||
|
- interrupts
|
||||||
|
- msi-controller
|
||||||
|
- msi-parent
|
||||||
|
- msi-ranges
|
||||||
|
|
||||||
|
unevaluatedProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/interrupt-controller/apple-aic.h>
|
||||||
|
|
||||||
|
soc {
|
||||||
|
#address-cells = <2>;
|
||||||
|
#size-cells = <2>;
|
||||||
|
|
||||||
|
pcie0: pcie@690000000 {
|
||||||
|
compatible = "apple,t8103-pcie", "apple,pcie";
|
||||||
|
device_type = "pci";
|
||||||
|
|
||||||
|
reg = <0x6 0x90000000 0x0 0x1000000>,
|
||||||
|
<0x6 0x80000000 0x0 0x100000>,
|
||||||
|
<0x6 0x81000000 0x0 0x4000>,
|
||||||
|
<0x6 0x82000000 0x0 0x4000>,
|
||||||
|
<0x6 0x83000000 0x0 0x4000>;
|
||||||
|
reg-names = "config", "rc", "port0", "port1", "port2";
|
||||||
|
|
||||||
|
interrupt-parent = <&aic>;
|
||||||
|
interrupts = <AIC_IRQ 695 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<AIC_IRQ 698 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<AIC_IRQ 701 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
|
||||||
|
msi-controller;
|
||||||
|
msi-parent = <&pcie0>;
|
||||||
|
msi-ranges = <&aic AIC_IRQ 704 IRQ_TYPE_EDGE_RISING 32>;
|
||||||
|
|
||||||
|
iommu-map = <0x100 &dart0 1 1>,
|
||||||
|
<0x200 &dart1 1 1>,
|
||||||
|
<0x300 &dart2 1 1>;
|
||||||
|
iommu-map-mask = <0xff00>;
|
||||||
|
|
||||||
|
bus-range = <0 3>;
|
||||||
|
#address-cells = <3>;
|
||||||
|
#size-cells = <2>;
|
||||||
|
ranges = <0x43000000 0x6 0xa0000000 0x6 0xa0000000 0x0 0x20000000>,
|
||||||
|
<0x02000000 0x0 0xc0000000 0x6 0xc0000000 0x0 0x40000000>;
|
||||||
|
|
||||||
|
power-domains = <&ps_apcie>, <&ps_apcie_gp>, <&ps_pcie_ref>;
|
||||||
|
pinctrl-0 = <&pcie_pins>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
|
||||||
|
pci@0,0 {
|
||||||
|
device_type = "pci";
|
||||||
|
reg = <0x0 0x0 0x0 0x0 0x0>;
|
||||||
|
reset-gpios = <&pinctrl_ap 152 0>;
|
||||||
|
max-link-speed = <2>;
|
||||||
|
|
||||||
|
#address-cells = <3>;
|
||||||
|
#size-cells = <2>;
|
||||||
|
ranges;
|
||||||
|
};
|
||||||
|
|
||||||
|
pci@1,0 {
|
||||||
|
device_type = "pci";
|
||||||
|
reg = <0x800 0x0 0x0 0x0 0x0>;
|
||||||
|
reset-gpios = <&pinctrl_ap 153 0>;
|
||||||
|
max-link-speed = <2>;
|
||||||
|
|
||||||
|
#address-cells = <3>;
|
||||||
|
#size-cells = <2>;
|
||||||
|
ranges;
|
||||||
|
};
|
||||||
|
|
||||||
|
pci@2,0 {
|
||||||
|
device_type = "pci";
|
||||||
|
reg = <0x1000 0x0 0x0 0x0 0x0>;
|
||||||
|
reset-gpios = <&pinctrl_ap 33 0>;
|
||||||
|
max-link-speed = <1>;
|
||||||
|
|
||||||
|
#address-cells = <3>;
|
||||||
|
#size-cells = <2>;
|
||||||
|
ranges;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -88,6 +88,7 @@ required:
|
|||||||
|
|
||||||
allOf:
|
allOf:
|
||||||
- $ref: /schemas/pci/pci-bus.yaml#
|
- $ref: /schemas/pci/pci-bus.yaml#
|
||||||
|
- $ref: /schemas/interrupt-controller/msi-controller.yaml#
|
||||||
- if:
|
- if:
|
||||||
properties:
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ maintainers:
|
|||||||
|
|
||||||
allOf:
|
allOf:
|
||||||
- $ref: /schemas/pci/pci-bus.yaml#
|
- $ref: /schemas/pci/pci-bus.yaml#
|
||||||
|
- $ref: /schemas/interrupt-controller/msi-controller.yaml#
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ properties:
|
|||||||
- renesas,r8a774b1-pcie-ep # RZ/G2N
|
- renesas,r8a774b1-pcie-ep # RZ/G2N
|
||||||
- renesas,r8a774c0-pcie-ep # RZ/G2E
|
- renesas,r8a774c0-pcie-ep # RZ/G2E
|
||||||
- renesas,r8a774e1-pcie-ep # RZ/G2H
|
- renesas,r8a774e1-pcie-ep # RZ/G2H
|
||||||
|
- renesas,r8a7795-pcie-ep # R-Car H3
|
||||||
- const: renesas,rcar-gen3-pcie-ep # R-Car Gen3 and RZ/G2
|
- const: renesas,rcar-gen3-pcie-ep # R-Car Gen3 and RZ/G2
|
||||||
|
|
||||||
reg:
|
reg:
|
||||||
|
|||||||
@@ -0,0 +1,40 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/reserved-memory/memory-region.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Reserved Memory Region Device Tree Binding
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- devicetree-spec@vger.kernel.org
|
||||||
|
|
||||||
|
description: |
|
||||||
|
Regions in the /reserved-memory node may be referenced by other device
|
||||||
|
nodes by adding a memory-region property to the device node.
|
||||||
|
|
||||||
|
select: true
|
||||||
|
|
||||||
|
properties:
|
||||||
|
memory-region:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/phandle-array
|
||||||
|
description: >
|
||||||
|
Phandle to a /reserved-memory child node assigned to the device.
|
||||||
|
|
||||||
|
memory-region-names:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/string-array
|
||||||
|
description: >
|
||||||
|
A list of names, one for each corresponding entry in the
|
||||||
|
memory-region property
|
||||||
|
|
||||||
|
additionalProperties: true
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
fb0: video@12300000 {
|
||||||
|
/* ... */
|
||||||
|
reg = <0x12300000 0x1000>;
|
||||||
|
memory-region = <&display_reserved>;
|
||||||
|
};
|
||||||
|
|
||||||
|
...
|
||||||
@@ -1,66 +0,0 @@
|
|||||||
Ramoops oops/panic logger
|
|
||||||
=========================
|
|
||||||
|
|
||||||
ramoops provides persistent RAM storage for oops and panics, so they can be
|
|
||||||
recovered after a reboot. This is a child-node of "/reserved-memory", and
|
|
||||||
is named "ramoops" after the backend, rather than "pstore" which is the
|
|
||||||
subsystem.
|
|
||||||
|
|
||||||
Parts of this storage may be set aside for other persistent log buffers, such
|
|
||||||
as kernel log messages, or for optional ECC error-correction data. The total
|
|
||||||
size of these optional buffers must fit in the reserved region.
|
|
||||||
|
|
||||||
Any remaining space will be used for a circular buffer of oops and panic
|
|
||||||
records. These records have a configurable size, with a size of 0 indicating
|
|
||||||
that they should be disabled.
|
|
||||||
|
|
||||||
At least one of "record-size", "console-size", "ftrace-size", or "pmsg-size"
|
|
||||||
must be set non-zero, but are otherwise optional as listed below.
|
|
||||||
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
|
|
||||||
- compatible: must be "ramoops"
|
|
||||||
|
|
||||||
- reg: region of memory that is preserved between reboots
|
|
||||||
|
|
||||||
|
|
||||||
Optional properties:
|
|
||||||
|
|
||||||
- ecc-size: enables ECC support and specifies ECC buffer size in bytes
|
|
||||||
(defaults to 0: no ECC)
|
|
||||||
|
|
||||||
- record-size: maximum size in bytes of each kmsg dump.
|
|
||||||
(defaults to 0: disabled)
|
|
||||||
|
|
||||||
- console-size: size in bytes of log buffer reserved for kernel messages
|
|
||||||
(defaults to 0: disabled)
|
|
||||||
|
|
||||||
- ftrace-size: size in bytes of log buffer reserved for function tracing and
|
|
||||||
profiling (defaults to 0: disabled)
|
|
||||||
|
|
||||||
- pmsg-size: size in bytes of log buffer reserved for userspace messages
|
|
||||||
(defaults to 0: disabled)
|
|
||||||
|
|
||||||
- mem-type: if present, sets the type of mapping is to be used to map the
|
|
||||||
reserved region. mem-type: 0 = write-combined (default), 1 = unbuffered,
|
|
||||||
2 = cached.
|
|
||||||
|
|
||||||
- unbuffered: deprecated, use mem_type instead. If present, and mem_type is
|
|
||||||
not specified, it is equivalent to mem_type = 1 and uses unbuffered mappings
|
|
||||||
to map the reserved region (defaults to buffered mappings mem_type = 0). If
|
|
||||||
both are specified -- "mem_type" overrides "unbuffered".
|
|
||||||
|
|
||||||
- max-reason: if present, sets maximum type of kmsg dump reasons to store
|
|
||||||
(defaults to 2: log Oopses and Panics). This can be set to INT_MAX to
|
|
||||||
store all kmsg dumps. See include/linux/kmsg_dump.h KMSG_DUMP_* for other
|
|
||||||
kmsg dump reason values. Setting this to 0 (KMSG_DUMP_UNDEF), means the
|
|
||||||
reason filtering will be controlled by the printk.always_kmsg_dump boot
|
|
||||||
param: if unset, it will be KMSG_DUMP_OOPS, otherwise KMSG_DUMP_MAX.
|
|
||||||
|
|
||||||
- no-dump-oops: deprecated, use max_reason instead. If present, and
|
|
||||||
max_reason is not specified, it is equivalent to max_reason = 1
|
|
||||||
(KMSG_DUMP_PANIC).
|
|
||||||
|
|
||||||
- flags: if present, pass ramoops behavioral flags (defaults to 0,
|
|
||||||
see include/linux/pstore_ram.h RAMOOPS_FLAG_* for flag values).
|
|
||||||
145
Documentation/devicetree/bindings/reserved-memory/ramoops.yaml
Normal file
145
Documentation/devicetree/bindings/reserved-memory/ramoops.yaml
Normal file
@@ -0,0 +1,145 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: "http://devicetree.org/schemas/reserved-memory/ramoops.yaml#"
|
||||||
|
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||||
|
|
||||||
|
title: Ramoops oops/panic logger
|
||||||
|
|
||||||
|
description: |
|
||||||
|
ramoops provides persistent RAM storage for oops and panics, so they can be
|
||||||
|
recovered after a reboot. This is a child-node of "/reserved-memory", and
|
||||||
|
is named "ramoops" after the backend, rather than "pstore" which is the
|
||||||
|
subsystem.
|
||||||
|
|
||||||
|
Parts of this storage may be set aside for other persistent log buffers, such
|
||||||
|
as kernel log messages, or for optional ECC error-correction data. The total
|
||||||
|
size of these optional buffers must fit in the reserved region.
|
||||||
|
|
||||||
|
Any remaining space will be used for a circular buffer of oops and panic
|
||||||
|
records. These records have a configurable size, with a size of 0 indicating
|
||||||
|
that they should be disabled.
|
||||||
|
|
||||||
|
At least one of "record-size", "console-size", "ftrace-size", or "pmsg-size"
|
||||||
|
must be set non-zero, but are otherwise optional as listed below.
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Kees Cook <keescook@chromium.org>
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- $ref: "reserved-memory.yaml"
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: ramoops
|
||||||
|
|
||||||
|
reg:
|
||||||
|
description: region of memory that is preserved between reboots
|
||||||
|
|
||||||
|
ecc-size:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description: enables ECC support and specifies ECC buffer size in bytes
|
||||||
|
default: 0 # no ECC
|
||||||
|
|
||||||
|
record-size:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description: maximum size in bytes of each kmsg dump
|
||||||
|
default: 0
|
||||||
|
|
||||||
|
console-size:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description: size in bytes of log buffer reserved for kernel messages
|
||||||
|
default: 0
|
||||||
|
|
||||||
|
ftrace-size:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description: size in bytes of log buffer reserved for function tracing and profiling
|
||||||
|
default: 0
|
||||||
|
|
||||||
|
pmsg-size:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description: size in bytes of log buffer reserved for userspace messages
|
||||||
|
default: 0
|
||||||
|
|
||||||
|
mem-type:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description: if present, sets the type of mapping is to be used to map the reserved region.
|
||||||
|
default: 0
|
||||||
|
oneOf:
|
||||||
|
- const: 0
|
||||||
|
description: write-combined
|
||||||
|
- const: 1
|
||||||
|
description: unbuffered
|
||||||
|
- const: 2
|
||||||
|
description: cached
|
||||||
|
|
||||||
|
max-reason:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
default: 2 # log oopses and panics
|
||||||
|
maximum: 0x7fffffff
|
||||||
|
description: |
|
||||||
|
If present, sets maximum type of kmsg dump reasons to store.
|
||||||
|
This can be set to INT_MAX to store all kmsg dumps.
|
||||||
|
See include/linux/kmsg_dump.h KMSG_DUMP_* for other kmsg dump reason values.
|
||||||
|
Setting this to 0 (KMSG_DUMP_UNDEF), means the reason filtering will be
|
||||||
|
controlled by the printk.always_kmsg_dump boot param.
|
||||||
|
If unset, it will be 2 (KMSG_DUMP_OOPS), otherwise 5 (KMSG_DUMP_MAX).
|
||||||
|
|
||||||
|
flags:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
default: 0
|
||||||
|
description: |
|
||||||
|
If present, pass ramoops behavioral flags
|
||||||
|
(see include/linux/pstore_ram.h RAMOOPS_FLAG_* for flag values).
|
||||||
|
|
||||||
|
no-dump-oops:
|
||||||
|
deprecated: true
|
||||||
|
type: boolean
|
||||||
|
description: |
|
||||||
|
Use max_reason instead. If present, and max_reason is not specified,
|
||||||
|
it is equivalent to max_reason = 1 (KMSG_DUMP_PANIC).
|
||||||
|
|
||||||
|
unbuffered:
|
||||||
|
deprecated: true
|
||||||
|
type: boolean
|
||||||
|
description: |
|
||||||
|
Use mem_type instead. If present, and mem_type is not specified,
|
||||||
|
it is equivalent to mem_type = 1 and uses unbuffered mappings to map
|
||||||
|
the reserved region (defaults to buffered mappings mem_type = 0).
|
||||||
|
If both are specified -- "mem_type" overrides "unbuffered".
|
||||||
|
|
||||||
|
unevaluatedProperties: false
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
|
||||||
|
anyOf:
|
||||||
|
- required: [record-size]
|
||||||
|
- required: [console-size]
|
||||||
|
- required: [ftrace-size]
|
||||||
|
- required: [pmsg-size]
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
/ {
|
||||||
|
compatible = "foo";
|
||||||
|
model = "foo";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
reserved-memory {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
ranges;
|
||||||
|
|
||||||
|
ramoops@bfdf0000 {
|
||||||
|
compatible = "ramoops";
|
||||||
|
reg = <0xbfdf0000 0x10000>; /* 64kB */
|
||||||
|
console-size = <0x8000>; /* 32kB */
|
||||||
|
record-size = <0x400>; /* 1kB */
|
||||||
|
ecc-size = <16>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
@@ -1,171 +1 @@
|
|||||||
*** Reserved memory regions ***
|
This file has been moved to reserved-memory.yaml.
|
||||||
|
|
||||||
Reserved memory is specified as a node under the /reserved-memory node.
|
|
||||||
The operating system shall exclude reserved memory from normal usage
|
|
||||||
one can create child nodes describing particular reserved (excluded from
|
|
||||||
normal use) memory regions. Such memory regions are usually designed for
|
|
||||||
the special usage by various device drivers.
|
|
||||||
|
|
||||||
Parameters for each memory region can be encoded into the device tree
|
|
||||||
with the following nodes:
|
|
||||||
|
|
||||||
/reserved-memory node
|
|
||||||
---------------------
|
|
||||||
#address-cells, #size-cells (required) - standard definition
|
|
||||||
- Should use the same values as the root node
|
|
||||||
ranges (required) - standard definition
|
|
||||||
- Should be empty
|
|
||||||
|
|
||||||
/reserved-memory/ child nodes
|
|
||||||
-----------------------------
|
|
||||||
Each child of the reserved-memory node specifies one or more regions of
|
|
||||||
reserved memory. Each child node may either use a 'reg' property to
|
|
||||||
specify a specific range of reserved memory, or a 'size' property with
|
|
||||||
optional constraints to request a dynamically allocated block of memory.
|
|
||||||
|
|
||||||
Following the generic-names recommended practice, node names should
|
|
||||||
reflect the purpose of the node (ie. "framebuffer" or "dma-pool"). Unit
|
|
||||||
address (@<address>) should be appended to the name if the node is a
|
|
||||||
static allocation.
|
|
||||||
|
|
||||||
Properties:
|
|
||||||
Requires either a) or b) below.
|
|
||||||
a) static allocation
|
|
||||||
reg (required) - standard definition
|
|
||||||
b) dynamic allocation
|
|
||||||
size (required) - length based on parent's #size-cells
|
|
||||||
- Size in bytes of memory to reserve.
|
|
||||||
alignment (optional) - length based on parent's #size-cells
|
|
||||||
- Address boundary for alignment of allocation.
|
|
||||||
alloc-ranges (optional) - prop-encoded-array (address, length pairs).
|
|
||||||
- Specifies regions of memory that are
|
|
||||||
acceptable to allocate from.
|
|
||||||
|
|
||||||
If both reg and size are present, then the reg property takes precedence
|
|
||||||
and size is ignored.
|
|
||||||
|
|
||||||
Additional properties:
|
|
||||||
compatible (optional) - standard definition
|
|
||||||
- may contain the following strings:
|
|
||||||
- shared-dma-pool: This indicates a region of memory meant to be
|
|
||||||
used as a shared pool of DMA buffers for a set of devices. It can
|
|
||||||
be used by an operating system to instantiate the necessary pool
|
|
||||||
management subsystem if necessary.
|
|
||||||
- restricted-dma-pool: This indicates a region of memory meant to be
|
|
||||||
used as a pool of restricted DMA buffers for a set of devices. The
|
|
||||||
memory region would be the only region accessible to those devices.
|
|
||||||
When using this, the no-map and reusable properties must not be set,
|
|
||||||
so the operating system can create a virtual mapping that will be used
|
|
||||||
for synchronization. The main purpose for restricted DMA is to
|
|
||||||
mitigate the lack of DMA access control on systems without an IOMMU,
|
|
||||||
which could result in the DMA accessing the system memory at
|
|
||||||
unexpected times and/or unexpected addresses, possibly leading to data
|
|
||||||
leakage or corruption. The feature on its own provides a basic level
|
|
||||||
of protection against the DMA overwriting buffer contents at
|
|
||||||
unexpected times. However, to protect against general data leakage and
|
|
||||||
system memory corruption, the system needs to provide way to lock down
|
|
||||||
the memory access, e.g., MPU. Note that since coherent allocation
|
|
||||||
needs remapping, one must set up another device coherent pool by
|
|
||||||
shared-dma-pool and use dma_alloc_from_dev_coherent instead for atomic
|
|
||||||
coherent allocation.
|
|
||||||
- vendor specific string in the form <vendor>,[<device>-]<usage>
|
|
||||||
no-map (optional) - empty property
|
|
||||||
- Indicates the operating system must not create a virtual mapping
|
|
||||||
of the region as part of its standard mapping of system memory,
|
|
||||||
nor permit speculative access to it under any circumstances other
|
|
||||||
than under the control of the device driver using the region.
|
|
||||||
reusable (optional) - empty property
|
|
||||||
- The operating system can use the memory in this region with the
|
|
||||||
limitation that the device driver(s) owning the region need to be
|
|
||||||
able to reclaim it back. Typically that means that the operating
|
|
||||||
system can use that region to store volatile or cached data that
|
|
||||||
can be otherwise regenerated or migrated elsewhere.
|
|
||||||
|
|
||||||
A node must not carry both the no-map and the reusable property as these are
|
|
||||||
logically contradictory.
|
|
||||||
|
|
||||||
Linux implementation note:
|
|
||||||
- If a "linux,cma-default" property is present, then Linux will use the
|
|
||||||
region for the default pool of the contiguous memory allocator.
|
|
||||||
|
|
||||||
- If a "linux,dma-default" property is present, then Linux will use the
|
|
||||||
region for the default pool of the consistent DMA allocator.
|
|
||||||
|
|
||||||
Device node references to reserved memory
|
|
||||||
-----------------------------------------
|
|
||||||
Regions in the /reserved-memory node may be referenced by other device
|
|
||||||
nodes by adding a memory-region property to the device node.
|
|
||||||
|
|
||||||
memory-region (optional) - phandle, specifier pairs to children of /reserved-memory
|
|
||||||
memory-region-names (optional) - a list of names, one for each corresponding
|
|
||||||
entry in the memory-region property
|
|
||||||
|
|
||||||
Example
|
|
||||||
-------
|
|
||||||
This example defines 4 contiguous regions for Linux kernel:
|
|
||||||
one default of all device drivers (named linux,cma@72000000 and 64MiB in size),
|
|
||||||
one dedicated to the framebuffer device (named framebuffer@78000000, 8MiB),
|
|
||||||
one for multimedia processing (named multimedia-memory@77000000, 64MiB), and
|
|
||||||
one for restricted dma pool (named restricted_dma_reserved@0x50000000, 64MiB).
|
|
||||||
|
|
||||||
/ {
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
|
|
||||||
memory {
|
|
||||||
reg = <0x40000000 0x40000000>;
|
|
||||||
};
|
|
||||||
|
|
||||||
reserved-memory {
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
ranges;
|
|
||||||
|
|
||||||
/* global autoconfigured region for contiguous allocations */
|
|
||||||
linux,cma {
|
|
||||||
compatible = "shared-dma-pool";
|
|
||||||
reusable;
|
|
||||||
size = <0x4000000>;
|
|
||||||
alignment = <0x2000>;
|
|
||||||
linux,cma-default;
|
|
||||||
};
|
|
||||||
|
|
||||||
display_reserved: framebuffer@78000000 {
|
|
||||||
reg = <0x78000000 0x800000>;
|
|
||||||
};
|
|
||||||
|
|
||||||
multimedia_reserved: multimedia@77000000 {
|
|
||||||
compatible = "acme,multimedia-memory";
|
|
||||||
reg = <0x77000000 0x4000000>;
|
|
||||||
};
|
|
||||||
|
|
||||||
restricted_dma_reserved: restricted_dma_reserved {
|
|
||||||
compatible = "restricted-dma-pool";
|
|
||||||
reg = <0x50000000 0x4000000>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
/* ... */
|
|
||||||
|
|
||||||
fb0: video@12300000 {
|
|
||||||
memory-region = <&display_reserved>;
|
|
||||||
/* ... */
|
|
||||||
};
|
|
||||||
|
|
||||||
scaler: scaler@12500000 {
|
|
||||||
memory-region = <&multimedia_reserved>;
|
|
||||||
/* ... */
|
|
||||||
};
|
|
||||||
|
|
||||||
codec: codec@12600000 {
|
|
||||||
memory-region = <&multimedia_reserved>;
|
|
||||||
/* ... */
|
|
||||||
};
|
|
||||||
|
|
||||||
pcie_device: pcie_device@0,0 {
|
|
||||||
reg = <0x83010000 0x0 0x00000000 0x0 0x00100000
|
|
||||||
0x83010000 0x0 0x00100000 0x0 0x00100000>;
|
|
||||||
memory-region = <&restricted_dma_reserved>;
|
|
||||||
/* ... */
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|||||||
@@ -0,0 +1,100 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/reserved-memory/reserved-memory.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: /reserved-memory Child Node Common Device Tree Bindings
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- devicetree-spec@vger.kernel.org
|
||||||
|
|
||||||
|
description: >
|
||||||
|
Reserved memory is specified as a node under the /reserved-memory node. The
|
||||||
|
operating system shall exclude reserved memory from normal usage one can
|
||||||
|
create child nodes describing particular reserved (excluded from normal use)
|
||||||
|
memory regions. Such memory regions are usually designed for the special
|
||||||
|
usage by various device drivers.
|
||||||
|
|
||||||
|
Each child of the reserved-memory node specifies one or more regions
|
||||||
|
of reserved memory. Each child node may either use a 'reg' property to
|
||||||
|
specify a specific range of reserved memory, or a 'size' property with
|
||||||
|
optional constraints to request a dynamically allocated block of
|
||||||
|
memory.
|
||||||
|
|
||||||
|
Following the generic-names recommended practice, node names should
|
||||||
|
reflect the purpose of the node (ie. "framebuffer" or "dma-pool").
|
||||||
|
Unit address (@<address>) should be appended to the name if the node
|
||||||
|
is a static allocation.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
reg: true
|
||||||
|
|
||||||
|
size:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||||
|
minItems: 1
|
||||||
|
maxItems: 2
|
||||||
|
description: >
|
||||||
|
Length based on parent's \#size-cells. Size in bytes of memory to
|
||||||
|
reserve.
|
||||||
|
|
||||||
|
alignment:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||||
|
minItems: 1
|
||||||
|
maxItems: 2
|
||||||
|
description: >
|
||||||
|
Length based on parent's \#size-cells. Address boundary for
|
||||||
|
alignment of allocation.
|
||||||
|
|
||||||
|
alloc-ranges:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||||
|
description: >
|
||||||
|
Address and Length pairs. Specifies regions of memory that are
|
||||||
|
acceptable to allocate from.
|
||||||
|
|
||||||
|
no-map:
|
||||||
|
type: boolean
|
||||||
|
description: >
|
||||||
|
Indicates the operating system must not create a virtual mapping
|
||||||
|
of the region as part of its standard mapping of system memory,
|
||||||
|
nor permit speculative access to it under any circumstances other
|
||||||
|
than under the control of the device driver using the region.
|
||||||
|
|
||||||
|
reusable:
|
||||||
|
type: boolean
|
||||||
|
description: >
|
||||||
|
The operating system can use the memory in this region with the
|
||||||
|
limitation that the device driver(s) owning the region need to be
|
||||||
|
able to reclaim it back. Typically that means that the operating
|
||||||
|
system can use that region to store volatile or cached data that
|
||||||
|
can be otherwise regenerated or migrated elsewhere.
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- if:
|
||||||
|
required:
|
||||||
|
- no-map
|
||||||
|
|
||||||
|
then:
|
||||||
|
not:
|
||||||
|
required:
|
||||||
|
- reusable
|
||||||
|
|
||||||
|
- if:
|
||||||
|
required:
|
||||||
|
- reusable
|
||||||
|
|
||||||
|
then:
|
||||||
|
not:
|
||||||
|
required:
|
||||||
|
- no-map
|
||||||
|
|
||||||
|
oneOf:
|
||||||
|
- required:
|
||||||
|
- reg
|
||||||
|
|
||||||
|
- required:
|
||||||
|
- size
|
||||||
|
|
||||||
|
additionalProperties: true
|
||||||
|
|
||||||
|
...
|
||||||
@@ -0,0 +1,87 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/reserved-memory/shared-dma-pool.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: /reserved-memory DMA pool node bindings
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- devicetree-spec@vger.kernel.org
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- $ref: "reserved-memory.yaml"
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
oneOf:
|
||||||
|
- const: shared-dma-pool
|
||||||
|
description: >
|
||||||
|
This indicates a region of memory meant to be used as a shared
|
||||||
|
pool of DMA buffers for a set of devices. It can be used by an
|
||||||
|
operating system to instantiate the necessary pool management
|
||||||
|
subsystem if necessary.
|
||||||
|
|
||||||
|
- const: restricted-dma-pool
|
||||||
|
description: >
|
||||||
|
This indicates a region of memory meant to be used as a pool
|
||||||
|
of restricted DMA buffers for a set of devices. The memory
|
||||||
|
region would be the only region accessible to those devices.
|
||||||
|
When using this, the no-map and reusable properties must not
|
||||||
|
be set, so the operating system can create a virtual mapping
|
||||||
|
that will be used for synchronization. The main purpose for
|
||||||
|
restricted DMA is to mitigate the lack of DMA access control
|
||||||
|
on systems without an IOMMU, which could result in the DMA
|
||||||
|
accessing the system memory at unexpected times and/or
|
||||||
|
unexpected addresses, possibly leading to data leakage or
|
||||||
|
corruption. The feature on its own provides a basic level of
|
||||||
|
protection against the DMA overwriting buffer contents at
|
||||||
|
unexpected times. However, to protect against general data
|
||||||
|
leakage and system memory corruption, the system needs to
|
||||||
|
provide way to lock down the memory access, e.g., MPU. Note
|
||||||
|
that since coherent allocation needs remapping, one must set
|
||||||
|
up another device coherent pool by shared-dma-pool and use
|
||||||
|
dma_alloc_from_dev_coherent instead for atomic coherent
|
||||||
|
allocation.
|
||||||
|
|
||||||
|
linux,cma-default:
|
||||||
|
type: boolean
|
||||||
|
description: >
|
||||||
|
If this property is present, then Linux will use the region for
|
||||||
|
the default pool of the contiguous memory allocator.
|
||||||
|
|
||||||
|
linux,dma-default:
|
||||||
|
type: boolean
|
||||||
|
description: >
|
||||||
|
If this property is present, then Linux will use the region for
|
||||||
|
the default pool of the consistent DMA allocator.
|
||||||
|
|
||||||
|
unevaluatedProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
reserved-memory {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
ranges;
|
||||||
|
|
||||||
|
/* global autoconfigured region for contiguous allocations */
|
||||||
|
linux,cma {
|
||||||
|
compatible = "shared-dma-pool";
|
||||||
|
reusable;
|
||||||
|
size = <0x4000000>;
|
||||||
|
alignment = <0x2000>;
|
||||||
|
linux,cma-default;
|
||||||
|
};
|
||||||
|
|
||||||
|
display_reserved: framebuffer@78000000 {
|
||||||
|
reg = <0x78000000 0x800000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
restricted_dma_reserved: restricted-dma-pool@50000000 {
|
||||||
|
compatible = "restricted-dma-pool";
|
||||||
|
reg = <0x50000000 0x4000000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
...
|
||||||
@@ -31,9 +31,7 @@ properties:
|
|||||||
- sifive,bullet0
|
- sifive,bullet0
|
||||||
- sifive,e5
|
- sifive,e5
|
||||||
- sifive,e7
|
- sifive,e7
|
||||||
- sifive,e51
|
|
||||||
- sifive,e71
|
- sifive,e71
|
||||||
- sifive,u54-mc
|
|
||||||
- sifive,u74-mc
|
- sifive,u74-mc
|
||||||
- sifive,u54
|
- sifive,u54
|
||||||
- sifive,u74
|
- sifive,u74
|
||||||
@@ -41,6 +39,12 @@ properties:
|
|||||||
- sifive,u7
|
- sifive,u7
|
||||||
- canaan,k210
|
- canaan,k210
|
||||||
- const: riscv
|
- const: riscv
|
||||||
|
- items:
|
||||||
|
- enum:
|
||||||
|
- sifive,e51
|
||||||
|
- sifive,u54-mc
|
||||||
|
- const: sifive,rocket0
|
||||||
|
- const: riscv
|
||||||
- const: riscv # Simulator only
|
- const: riscv # Simulator only
|
||||||
description:
|
description:
|
||||||
Identifies that the hart uses the RISC-V instruction set
|
Identifies that the hart uses the RISC-V instruction set
|
||||||
|
|||||||
@@ -1,38 +0,0 @@
|
|||||||
OMAP SoC and Inside-Secure HWRNG Module
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
|
|
||||||
- compatible : Should contain entries for this and backward compatible
|
|
||||||
RNG versions:
|
|
||||||
- "ti,omap2-rng" for OMAP2.
|
|
||||||
- "ti,omap4-rng" for OMAP4, OMAP5 and AM33XX.
|
|
||||||
- "inside-secure,safexcel-eip76" for SoCs with EIP76 IP block
|
|
||||||
Note that these two versions are incompatible.
|
|
||||||
- ti,hwmods: Name of the hwmod associated with the RNG module
|
|
||||||
- reg : Offset and length of the register set for the module
|
|
||||||
- interrupts : the interrupt number for the RNG module.
|
|
||||||
Used for "ti,omap4-rng" and "inside-secure,safexcel-eip76"
|
|
||||||
- clocks: the trng clock source. Only mandatory for the
|
|
||||||
"inside-secure,safexcel-eip76" compatible, the second clock is
|
|
||||||
needed for the Armada 7K/8K SoCs
|
|
||||||
- clock-names: mandatory if there is a second clock, in this case the
|
|
||||||
name must be "core" for the first clock and "reg" for the second
|
|
||||||
one
|
|
||||||
|
|
||||||
|
|
||||||
Example:
|
|
||||||
/* AM335x */
|
|
||||||
rng: rng@48310000 {
|
|
||||||
compatible = "ti,omap4-rng";
|
|
||||||
ti,hwmods = "rng";
|
|
||||||
reg = <0x48310000 0x2000>;
|
|
||||||
interrupts = <111>;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* SafeXcel IP-76 */
|
|
||||||
trng: rng@f2760000 {
|
|
||||||
compatible = "inside-secure,safexcel-eip76";
|
|
||||||
reg = <0xf2760000 0x7d>;
|
|
||||||
interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
|
|
||||||
clocks = <&cpm_syscon0 1 25>;
|
|
||||||
};
|
|
||||||
92
Documentation/devicetree/bindings/rng/omap_rng.yaml
Normal file
92
Documentation/devicetree/bindings/rng/omap_rng.yaml
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/rng/omap_rng.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: OMAP SoC and Inside-Secure HWRNG Module
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Jayesh Choudhary <j-choudhary@ti.com>
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
enum:
|
||||||
|
- ti,omap2-rng
|
||||||
|
- ti,omap4-rng
|
||||||
|
- inside-secure,safexcel-eip76
|
||||||
|
|
||||||
|
ti,hwmods:
|
||||||
|
const: rng
|
||||||
|
deprecated: true
|
||||||
|
description: Name of the hwmod associated with the RNG module
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
clocks:
|
||||||
|
minItems: 1
|
||||||
|
items:
|
||||||
|
- description: EIP150 gatable clock
|
||||||
|
- description: Main gatable clock
|
||||||
|
|
||||||
|
clock-names:
|
||||||
|
minItems: 1
|
||||||
|
items:
|
||||||
|
- const: core
|
||||||
|
- const: reg
|
||||||
|
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- if:
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
contains:
|
||||||
|
enum:
|
||||||
|
- ti,omap4-rng
|
||||||
|
- inside-secure,safexcel-eip76
|
||||||
|
|
||||||
|
then:
|
||||||
|
required:
|
||||||
|
- interrupts
|
||||||
|
|
||||||
|
- if:
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
contains:
|
||||||
|
enum:
|
||||||
|
- inside-secure,safexcel-eip76
|
||||||
|
|
||||||
|
then:
|
||||||
|
required:
|
||||||
|
- clocks
|
||||||
|
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
/* AM335x */
|
||||||
|
rng: rng@48310000 {
|
||||||
|
compatible = "ti,omap4-rng";
|
||||||
|
ti,hwmods = "rng";
|
||||||
|
reg = <0x48310000 0x2000>;
|
||||||
|
interrupts = <111>;
|
||||||
|
};
|
||||||
|
- |
|
||||||
|
/* SafeXcel IP-76 */
|
||||||
|
trng: rng@f2760000 {
|
||||||
|
compatible = "inside-secure,safexcel-eip76";
|
||||||
|
reg = <0xf2760000 0x7d>;
|
||||||
|
interrupts = <0 59 4>;
|
||||||
|
clocks = <&cpm_syscon0 1 25>;
|
||||||
|
};
|
||||||
|
|
||||||
|
...
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
# # Copyright (c) 2018 Google LLC
|
||||||
|
# # Copyright (c) 2021 Aspeed Technology Inc.
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: "http://devicetree.org/schemas/soc/aspeed/uart-routing.yaml#"
|
||||||
|
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||||
|
|
||||||
|
title: Aspeed UART Routing Controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Oskar Senft <osk@google.com>
|
||||||
|
- Chia-Wei Wang <chiawei_wang@aspeedtech.com>
|
||||||
|
|
||||||
|
description:
|
||||||
|
The Aspeed UART routing control allow to dynamically route the inputs for
|
||||||
|
the built-in UARTS and physical serial I/O ports.
|
||||||
|
|
||||||
|
This allows, for example, to connect the output of UART to another UART.
|
||||||
|
This can be used to enable Host <-> BMC communication via UARTs, e.g. to
|
||||||
|
allow access to the Host's serial console.
|
||||||
|
|
||||||
|
This driver is for the BMC side. The sysfs files allow the BMC userspace
|
||||||
|
which owns the system configuration policy, to configure how UARTs and
|
||||||
|
physical serial I/O ports are routed.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
items:
|
||||||
|
- enum:
|
||||||
|
- aspeed,ast2400-uart-routing
|
||||||
|
- aspeed,ast2500-uart-routing
|
||||||
|
- aspeed,ast2600-uart-routing
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
lpc: lpc@1e789000 {
|
||||||
|
compatible = "aspeed,ast2600-lpc-v2", "simple-mfd", "syscon";
|
||||||
|
reg = <0x1e789000 0x1000>;
|
||||||
|
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
ranges = <0x0 0x1e789000 0x1000>;
|
||||||
|
|
||||||
|
uart_routing: uart-routing@98 {
|
||||||
|
compatible = "aspeed,ast2600-uart-routing";
|
||||||
|
reg = <0x98 0x8>;
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -60,7 +60,7 @@ properties:
|
|||||||
type: boolean
|
type: boolean
|
||||||
|
|
||||||
patternProperties:
|
patternProperties:
|
||||||
"^([a-z]*-)?sram(-section)?@[a-f0-9]+$":
|
"^([a-z0-9]*-)?sram(-section)?@[a-f0-9]+$":
|
||||||
type: object
|
type: object
|
||||||
description:
|
description:
|
||||||
Each child of the sram node specifies a region of reserved memory.
|
Each child of the sram node specifies a region of reserved memory.
|
||||||
|
|||||||
@@ -63,6 +63,9 @@ I. For patch submitters
|
|||||||
string that is matched by the driver (as in the "nvidia,tegra20-pcie"
|
string that is matched by the driver (as in the "nvidia,tegra20-pcie"
|
||||||
example above).
|
example above).
|
||||||
|
|
||||||
|
9) Bindings are actively used by multiple projects other than the Linux
|
||||||
|
Kernel, extra care and consideration may need to be taken when making changes
|
||||||
|
to existing bindings.
|
||||||
|
|
||||||
II. For kernel maintainers
|
II. For kernel maintainers
|
||||||
==========================
|
==========================
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ properties:
|
|||||||
compatible:
|
compatible:
|
||||||
enum:
|
enum:
|
||||||
- samsung,exynos7-ufs
|
- samsung,exynos7-ufs
|
||||||
|
- samsung,exynosautov9-ufs
|
||||||
|
- samsung,exynosautov9-ufs-vh
|
||||||
|
|
||||||
reg:
|
reg:
|
||||||
items:
|
items:
|
||||||
@@ -54,6 +56,14 @@ properties:
|
|||||||
phy-names:
|
phy-names:
|
||||||
const: ufs-phy
|
const: ufs-phy
|
||||||
|
|
||||||
|
samsung,sysreg:
|
||||||
|
$ref: '/schemas/types.yaml#/definitions/phandle-array'
|
||||||
|
description: Should be phandle/offset pair. The phandle to the syscon node
|
||||||
|
which indicates the FSYSx sysreg interface and the offset of
|
||||||
|
the control register for UFS io coherency setting.
|
||||||
|
|
||||||
|
dma-coherent: true
|
||||||
|
|
||||||
required:
|
required:
|
||||||
- compatible
|
- compatible
|
||||||
- reg
|
- reg
|
||||||
|
|||||||
@@ -1,18 +0,0 @@
|
|||||||
Xilinx USB2 device controller
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible : Should be "xlnx,usb2-device-4.00.a"
|
|
||||||
- reg : Physical base address and size of the USB2
|
|
||||||
device registers map.
|
|
||||||
- interrupts : Should contain single irq line of USB2 device
|
|
||||||
controller
|
|
||||||
- xlnx,has-builtin-dma : if DMA is included
|
|
||||||
|
|
||||||
Example:
|
|
||||||
axi-usb2-device@42e00000 {
|
|
||||||
compatible = "xlnx,usb2-device-4.00.a";
|
|
||||||
interrupts = <0x0 0x39 0x1>;
|
|
||||||
reg = <0x42e00000 0x10000>;
|
|
||||||
xlnx,has-builtin-dma;
|
|
||||||
};
|
|
||||||
|
|
||||||
47
Documentation/devicetree/bindings/usb/xlnx,usb2.yaml
Normal file
47
Documentation/devicetree/bindings/usb/xlnx,usb2.yaml
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/usb/xlnx,usb2.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Xilinx udc controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Manish Narani <manish.narani@xilinx.com>
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: xlnx,usb2-device-4.00.a
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
xlnx,has-builtin-dma:
|
||||||
|
description:
|
||||||
|
If present, hardware has dma capability.
|
||||||
|
type: boolean
|
||||||
|
|
||||||
|
clocks:
|
||||||
|
minItems: 1
|
||||||
|
|
||||||
|
clock-names:
|
||||||
|
const: s_axi_aclk
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- interrupts
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
axi-usb2-device@42e00000 {
|
||||||
|
compatible = "xlnx,usb2-device-4.00.a";
|
||||||
|
interrupts = <0x0 0x39 0x1>;
|
||||||
|
reg = <0xee000000 0xc00>;
|
||||||
|
xlnx,has-builtin-dma;
|
||||||
|
};
|
||||||
@@ -1104,6 +1104,8 @@ patternProperties:
|
|||||||
description: Spansion Inc.
|
description: Spansion Inc.
|
||||||
"^sparkfun,.*":
|
"^sparkfun,.*":
|
||||||
description: SparkFun Electronics
|
description: SparkFun Electronics
|
||||||
|
"^spinalhdl,.*":
|
||||||
|
description: SpinalHDL
|
||||||
"^sprd,.*":
|
"^sprd,.*":
|
||||||
description: Spreadtrum Communications Inc.
|
description: Spreadtrum Communications Inc.
|
||||||
"^sst,.*":
|
"^sst,.*":
|
||||||
|
|||||||
@@ -1,27 +0,0 @@
|
|||||||
w1-gpio devicetree bindings
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
|
|
||||||
- compatible: "w1-gpio"
|
|
||||||
- gpios: one or two GPIO specs:
|
|
||||||
- the first one is used as data I/O pin
|
|
||||||
- the second one is optional. If specified, it is used as
|
|
||||||
enable pin for an external pin pullup.
|
|
||||||
|
|
||||||
Optional properties:
|
|
||||||
|
|
||||||
- linux,open-drain: if specified, the data pin is considered in
|
|
||||||
open-drain mode.
|
|
||||||
|
|
||||||
Also refer to the generic w1.txt document.
|
|
||||||
|
|
||||||
Examples:
|
|
||||||
|
|
||||||
onewire {
|
|
||||||
compatible = "w1-gpio";
|
|
||||||
gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
|
|
||||||
|
|
||||||
battery {
|
|
||||||
// ...
|
|
||||||
};
|
|
||||||
};
|
|
||||||
43
Documentation/devicetree/bindings/w1/w1-gpio.yaml
Normal file
43
Documentation/devicetree/bindings/w1/w1-gpio.yaml
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/w1/w1-gpio.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Bitbanged GPIO 1-Wire Bus Device Tree Bindings
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Daniel Mack <zonque@gmail.com>
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: w1-gpio
|
||||||
|
|
||||||
|
gpios:
|
||||||
|
minItems: 1
|
||||||
|
items:
|
||||||
|
- description: Data I/O pin
|
||||||
|
- description: Enable pin for an external pull-up resistor
|
||||||
|
|
||||||
|
linux,open-drain:
|
||||||
|
type: boolean
|
||||||
|
description: >
|
||||||
|
If specified, the data pin is considered in open-drain mode.
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- gpios
|
||||||
|
|
||||||
|
additionalProperties:
|
||||||
|
type: object
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
|
||||||
|
onewire {
|
||||||
|
compatible = "w1-gpio";
|
||||||
|
gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
...
|
||||||
@@ -44,7 +44,7 @@ Properties
|
|||||||
of prior implementations. DO add new compatibles in case there are new
|
of prior implementations. DO add new compatibles in case there are new
|
||||||
features or bugs.
|
features or bugs.
|
||||||
|
|
||||||
- DO use a vendor prefix on device specific property names. Consider if
|
- DO use a vendor prefix on device-specific property names. Consider if
|
||||||
properties could be common among devices of the same class. Check other
|
properties could be common among devices of the same class. Check other
|
||||||
existing bindings for similar devices.
|
existing bindings for similar devices.
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ Writing Devicetree Bindings in json-schema
|
|||||||
==========================================
|
==========================================
|
||||||
|
|
||||||
Devicetree bindings are written using json-schema vocabulary. Schema files are
|
Devicetree bindings are written using json-schema vocabulary. Schema files are
|
||||||
written in a JSON compatible subset of YAML. YAML is used instead of JSON as it
|
written in a JSON-compatible subset of YAML. YAML is used instead of JSON as it
|
||||||
is considered more human readable and has some advantages such as allowing
|
is considered more human readable and has some advantages such as allowing
|
||||||
comments (Prefixed with '#').
|
comments (Prefixed with '#').
|
||||||
|
|
||||||
@@ -22,16 +22,16 @@ $id
|
|||||||
URI typically containing the binding's filename and path. For DT schema, it must
|
URI typically containing the binding's filename and path. For DT schema, it must
|
||||||
begin with "http://devicetree.org/schemas/". The URL is used in constructing
|
begin with "http://devicetree.org/schemas/". The URL is used in constructing
|
||||||
references to other files specified in schema "$ref" properties. A $ref value
|
references to other files specified in schema "$ref" properties. A $ref value
|
||||||
with a leading '/' will have the hostname prepended. A $ref value a relative
|
with a leading '/' will have the hostname prepended. A $ref value with only a
|
||||||
path or filename only will be prepended with the hostname and path components
|
relative path or filename will be prepended with the hostname and path
|
||||||
of the current schema file's '$id' value. A URL is used even for local files,
|
components of the current schema file's '$id' value. A URL is used even for
|
||||||
but there may not actually be files present at those locations.
|
local files, but there may not actually be files present at those locations.
|
||||||
|
|
||||||
$schema
|
$schema
|
||||||
Indicates the meta-schema the schema file adheres to.
|
Indicates the meta-schema the schema file adheres to.
|
||||||
|
|
||||||
title
|
title
|
||||||
A one line description on the contents of the binding schema.
|
A one-line description on the contents of the binding schema.
|
||||||
|
|
||||||
maintainers
|
maintainers
|
||||||
A DT specific property. Contains a list of email address(es)
|
A DT specific property. Contains a list of email address(es)
|
||||||
@@ -45,8 +45,8 @@ description
|
|||||||
|
|
||||||
select
|
select
|
||||||
Optional. A json-schema used to match nodes for applying the
|
Optional. A json-schema used to match nodes for applying the
|
||||||
schema. By default without 'select', nodes are matched against their possible
|
schema. By default, without 'select', nodes are matched against their possible
|
||||||
compatible string values or node name. Most bindings should not need select.
|
compatible-string values or node name. Most bindings should not need select.
|
||||||
|
|
||||||
allOf
|
allOf
|
||||||
Optional. A list of other schemas to include. This is used to
|
Optional. A list of other schemas to include. This is used to
|
||||||
@@ -56,7 +56,8 @@ allOf
|
|||||||
properties
|
properties
|
||||||
A set of sub-schema defining all the DT properties for the
|
A set of sub-schema defining all the DT properties for the
|
||||||
binding. The exact schema syntax depends on whether properties are known,
|
binding. The exact schema syntax depends on whether properties are known,
|
||||||
common properties (e.g. 'interrupts') or are binding/vendor specific properties.
|
common properties (e.g. 'interrupts') or are binding/vendor-specific
|
||||||
|
properties.
|
||||||
|
|
||||||
A property can also define a child DT node with child properties defined
|
A property can also define a child DT node with child properties defined
|
||||||
under it.
|
under it.
|
||||||
@@ -81,23 +82,23 @@ Property Schema
|
|||||||
|
|
||||||
The 'properties' section of the schema contains all the DT properties for a
|
The 'properties' section of the schema contains all the DT properties for a
|
||||||
binding. Each property contains a set of constraints using json-schema
|
binding. Each property contains a set of constraints using json-schema
|
||||||
vocabulary for that property. The properties schemas are what is used for
|
vocabulary for that property. The properties schemas are what are used for
|
||||||
validation of DT files.
|
validation of DT files.
|
||||||
|
|
||||||
For common properties, only additional constraints not covered by the common
|
For common properties, only additional constraints not covered by the common,
|
||||||
binding schema need to be defined such as how many values are valid or what
|
binding schema need to be defined such as how many values are valid or what
|
||||||
possible values are valid.
|
possible values are valid.
|
||||||
|
|
||||||
Vendor specific properties will typically need more detailed schema. With the
|
Vendor-specific properties will typically need more detailed schema. With the
|
||||||
exception of boolean properties, they should have a reference to a type in
|
exception of boolean properties, they should have a reference to a type in
|
||||||
schemas/types.yaml. A "description" property is always required.
|
schemas/types.yaml. A "description" property is always required.
|
||||||
|
|
||||||
The Devicetree schemas don't exactly match the YAML encoded DT data produced by
|
The Devicetree schemas don't exactly match the YAML-encoded DT data produced by
|
||||||
dtc. They are simplified to make them more compact and avoid a bunch of
|
dtc. They are simplified to make them more compact and avoid a bunch of
|
||||||
boilerplate. The tools process the schema files to produce the final schema for
|
boilerplate. The tools process the schema files to produce the final schema for
|
||||||
validation. There are currently 2 transformations the tools perform.
|
validation. There are currently 2 transformations the tools perform.
|
||||||
|
|
||||||
The default for arrays in json-schema is they are variable sized and allow more
|
The default for arrays in json-schema is they are variable-sized and allow more
|
||||||
entries than explicitly defined. This can be restricted by defining 'minItems',
|
entries than explicitly defined. This can be restricted by defining 'minItems',
|
||||||
'maxItems', and 'additionalItems'. However, for DeviceTree Schemas, a fixed
|
'maxItems', and 'additionalItems'. However, for DeviceTree Schemas, a fixed
|
||||||
size is desired in most cases, so these properties are added based on the
|
size is desired in most cases, so these properties are added based on the
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ Description
|
|||||||
GPIO 1-wire bus master driver. The driver uses the GPIO API to control the
|
GPIO 1-wire bus master driver. The driver uses the GPIO API to control the
|
||||||
wire and the GPIO pin can be specified using GPIO machine descriptor tables.
|
wire and the GPIO pin can be specified using GPIO machine descriptor tables.
|
||||||
It is also possible to define the master using device tree, see
|
It is also possible to define the master using device tree, see
|
||||||
Documentation/devicetree/bindings/w1/w1-gpio.txt
|
Documentation/devicetree/bindings/w1/w1-gpio.yaml
|
||||||
|
|
||||||
|
|
||||||
Example (mach-at91)
|
Example (mach-at91)
|
||||||
|
|||||||
22
MAINTAINERS
22
MAINTAINERS
@@ -1412,7 +1412,7 @@ F: Documentation/devicetree/bindings/auxdisplay/arm,versatile-lcd.yaml
|
|||||||
F: Documentation/devicetree/bindings/clock/arm,syscon-icst.yaml
|
F: Documentation/devicetree/bindings/clock/arm,syscon-icst.yaml
|
||||||
F: Documentation/devicetree/bindings/i2c/i2c-versatile.txt
|
F: Documentation/devicetree/bindings/i2c/i2c-versatile.txt
|
||||||
F: Documentation/devicetree/bindings/interrupt-controller/arm,versatile-fpga-irq.txt
|
F: Documentation/devicetree/bindings/interrupt-controller/arm,versatile-fpga-irq.txt
|
||||||
F: Documentation/devicetree/bindings/mtd/arm-versatile.txt
|
F: Documentation/devicetree/bindings/mtd/mtd-physmap.yaml
|
||||||
F: arch/arm/boot/dts/arm-realview-*
|
F: arch/arm/boot/dts/arm-realview-*
|
||||||
F: arch/arm/boot/dts/integrator*
|
F: arch/arm/boot/dts/integrator*
|
||||||
F: arch/arm/boot/dts/versatile*
|
F: arch/arm/boot/dts/versatile*
|
||||||
@@ -1723,6 +1723,7 @@ T: git https://github.com/AsahiLinux/linux.git
|
|||||||
F: Documentation/devicetree/bindings/arm/apple.yaml
|
F: Documentation/devicetree/bindings/arm/apple.yaml
|
||||||
F: Documentation/devicetree/bindings/interrupt-controller/apple,aic.yaml
|
F: Documentation/devicetree/bindings/interrupt-controller/apple,aic.yaml
|
||||||
F: Documentation/devicetree/bindings/mailbox/apple,mailbox.yaml
|
F: Documentation/devicetree/bindings/mailbox/apple,mailbox.yaml
|
||||||
|
F: Documentation/devicetree/bindings/pci/apple,pcie.yaml
|
||||||
F: Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml
|
F: Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml
|
||||||
F: arch/arm64/boot/dts/apple/
|
F: arch/arm64/boot/dts/apple/
|
||||||
F: drivers/irqchip/irq-apple-aic.c
|
F: drivers/irqchip/irq-apple-aic.c
|
||||||
@@ -1751,7 +1752,7 @@ R: Joel Stanley <joel@jms.id.au>
|
|||||||
L: linux-i2c@vger.kernel.org
|
L: linux-i2c@vger.kernel.org
|
||||||
L: openbmc@lists.ozlabs.org (moderated for non-subscribers)
|
L: openbmc@lists.ozlabs.org (moderated for non-subscribers)
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: Documentation/devicetree/bindings/i2c/i2c-aspeed.txt
|
F: Documentation/devicetree/bindings/i2c/aspeed,i2c.yaml
|
||||||
F: Documentation/devicetree/bindings/interrupt-controller/aspeed,ast2400-i2c-ic.txt
|
F: Documentation/devicetree/bindings/interrupt-controller/aspeed,ast2400-i2c-ic.txt
|
||||||
F: drivers/i2c/busses/i2c-aspeed.c
|
F: drivers/i2c/busses/i2c-aspeed.c
|
||||||
F: drivers/irqchip/irq-aspeed-i2c-ic.c
|
F: drivers/irqchip/irq-aspeed-i2c-ic.c
|
||||||
@@ -1878,10 +1879,10 @@ M: Linus Walleij <linus.walleij@linaro.org>
|
|||||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||||
S: Maintained
|
S: Maintained
|
||||||
T: git git://github.com/ulli-kroll/linux.git
|
T: git git://github.com/ulli-kroll/linux.git
|
||||||
F: Documentation/devicetree/bindings/arm/gemini.txt
|
F: Documentation/devicetree/bindings/arm/gemini.yaml
|
||||||
F: Documentation/devicetree/bindings/net/cortina,gemini-ethernet.txt
|
F: Documentation/devicetree/bindings/net/cortina,gemini-ethernet.txt
|
||||||
F: Documentation/devicetree/bindings/pinctrl/cortina,gemini-pinctrl.txt
|
F: Documentation/devicetree/bindings/pinctrl/cortina,gemini-pinctrl.txt
|
||||||
F: Documentation/devicetree/bindings/rtc/faraday,ftrtc010.txt
|
F: Documentation/devicetree/bindings/rtc/faraday,ftrtc010.yaml
|
||||||
F: arch/arm/boot/dts/gemini*
|
F: arch/arm/boot/dts/gemini*
|
||||||
F: arch/arm/mach-gemini/
|
F: arch/arm/mach-gemini/
|
||||||
F: drivers/crypto/gemini/
|
F: drivers/crypto/gemini/
|
||||||
@@ -3779,7 +3780,7 @@ L: bcm-kernel-feedback-list@broadcom.com
|
|||||||
L: netdev@vger.kernel.org
|
L: netdev@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
F: Documentation/devicetree/bindings/net/brcm,bcmgenet.txt
|
F: Documentation/devicetree/bindings/net/brcm,bcmgenet.txt
|
||||||
F: Documentation/devicetree/bindings/net/brcm,unimac-mdio.txt
|
F: Documentation/devicetree/bindings/net/brcm,unimac-mdio.yaml
|
||||||
F: drivers/net/ethernet/broadcom/genet/
|
F: drivers/net/ethernet/broadcom/genet/
|
||||||
F: drivers/net/ethernet/broadcom/unimac.h
|
F: drivers/net/ethernet/broadcom/unimac.h
|
||||||
F: drivers/net/mdio/mdio-bcm-unimac.c
|
F: drivers/net/mdio/mdio-bcm-unimac.c
|
||||||
@@ -9562,7 +9563,7 @@ F: include/linux/soc/ixp4xx/qmgr.h
|
|||||||
INTEL IXP4XX RANDOM NUMBER GENERATOR SUPPORT
|
INTEL IXP4XX RANDOM NUMBER GENERATOR SUPPORT
|
||||||
M: Deepak Saxena <dsaxena@plexity.net>
|
M: Deepak Saxena <dsaxena@plexity.net>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: Documentation/devicetree/bindings/display/intel,ixp46x-rng.yaml
|
F: Documentation/devicetree/bindings/rng/intel,ixp46x-rng.yaml
|
||||||
F: drivers/char/hw_random/ixp4xx-rng.c
|
F: drivers/char/hw_random/ixp4xx-rng.c
|
||||||
|
|
||||||
INTEL KEEM BAY DRM DRIVER
|
INTEL KEEM BAY DRM DRIVER
|
||||||
@@ -13634,6 +13635,7 @@ NXP-NCI NFC DRIVER
|
|||||||
R: Charles Gorand <charles.gorand@effinnov.com>
|
R: Charles Gorand <charles.gorand@effinnov.com>
|
||||||
L: linux-nfc@lists.01.org (subscribers-only)
|
L: linux-nfc@lists.01.org (subscribers-only)
|
||||||
S: Supported
|
S: Supported
|
||||||
|
F: Documentation/devicetree/bindings/net/nfc/nxp,nci.yaml
|
||||||
F: drivers/nfc/nxp-nci
|
F: drivers/nfc/nxp-nci
|
||||||
|
|
||||||
NXP i.MX 8QXP/8QM JPEG V4L2 DRIVER
|
NXP i.MX 8QXP/8QM JPEG V4L2 DRIVER
|
||||||
@@ -13641,7 +13643,7 @@ M: Mirela Rabulea <mirela.rabulea@nxp.com>
|
|||||||
R: NXP Linux Team <linux-imx@nxp.com>
|
R: NXP Linux Team <linux-imx@nxp.com>
|
||||||
L: linux-media@vger.kernel.org
|
L: linux-media@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: Documentation/devicetree/bindings/media/imx8-jpeg.yaml
|
F: Documentation/devicetree/bindings/media/nxp,imx8-jpeg.yaml
|
||||||
F: drivers/media/platform/imx-jpeg
|
F: drivers/media/platform/imx-jpeg
|
||||||
|
|
||||||
NZXT-KRAKEN2 HARDWARE MONITORING DRIVER
|
NZXT-KRAKEN2 HARDWARE MONITORING DRIVER
|
||||||
@@ -15267,7 +15269,7 @@ S: Maintained
|
|||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/pstore
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/pstore
|
||||||
F: Documentation/admin-guide/ramoops.rst
|
F: Documentation/admin-guide/ramoops.rst
|
||||||
F: Documentation/admin-guide/pstore-blk.rst
|
F: Documentation/admin-guide/pstore-blk.rst
|
||||||
F: Documentation/devicetree/bindings/reserved-memory/ramoops.txt
|
F: Documentation/devicetree/bindings/reserved-memory/ramoops.yaml
|
||||||
F: drivers/acpi/apei/erst.c
|
F: drivers/acpi/apei/erst.c
|
||||||
F: drivers/firmware/efi/efi-pstore.c
|
F: drivers/firmware/efi/efi-pstore.c
|
||||||
F: fs/pstore/
|
F: fs/pstore/
|
||||||
@@ -18632,7 +18634,7 @@ M: Santosh Shilimkar <ssantosh@kernel.org>
|
|||||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: Documentation/devicetree/bindings/arm/keystone/ti,k3-sci-common.yaml
|
F: Documentation/devicetree/bindings/arm/keystone/ti,k3-sci-common.yaml
|
||||||
F: Documentation/devicetree/bindings/arm/keystone/ti,sci.txt
|
F: Documentation/devicetree/bindings/arm/keystone/ti,sci.yaml
|
||||||
F: Documentation/devicetree/bindings/clock/ti,sci-clk.yaml
|
F: Documentation/devicetree/bindings/clock/ti,sci-clk.yaml
|
||||||
F: Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.yaml
|
F: Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.yaml
|
||||||
F: Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.yaml
|
F: Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.yaml
|
||||||
@@ -18902,7 +18904,7 @@ M: Mark Greer <mgreer@animalcreek.com>
|
|||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
L: linux-nfc@lists.01.org (subscribers-only)
|
L: linux-nfc@lists.01.org (subscribers-only)
|
||||||
S: Supported
|
S: Supported
|
||||||
F: Documentation/devicetree/bindings/net/nfc/trf7970a.txt
|
F: Documentation/devicetree/bindings/net/nfc/ti,trf7970a.yaml
|
||||||
F: drivers/nfc/trf7970a.c
|
F: drivers/nfc/trf7970a.c
|
||||||
|
|
||||||
TI TSC2046 ADC DRIVER
|
TI TSC2046 ADC DRIVER
|
||||||
|
|||||||
10
Makefile
10
Makefile
@@ -1400,17 +1400,17 @@ endif
|
|||||||
|
|
||||||
ifneq ($(dtstree),)
|
ifneq ($(dtstree),)
|
||||||
|
|
||||||
%.dtb: include/config/kernel.release scripts_dtc
|
%.dtb: dt_binding_check include/config/kernel.release scripts_dtc
|
||||||
$(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@
|
$(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@ $(dtstree)/$*.dt.yaml
|
||||||
|
|
||||||
%.dtbo: include/config/kernel.release scripts_dtc
|
%.dtbo: dt_binding_check include/config/kernel.release scripts_dtc
|
||||||
$(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@
|
$(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@ $(dtstree)/$*.dt.yaml
|
||||||
|
|
||||||
PHONY += dtbs dtbs_install dtbs_check
|
PHONY += dtbs dtbs_install dtbs_check
|
||||||
dtbs: include/config/kernel.release scripts_dtc
|
dtbs: include/config/kernel.release scripts_dtc
|
||||||
$(Q)$(MAKE) $(build)=$(dtstree)
|
$(Q)$(MAKE) $(build)=$(dtstree)
|
||||||
|
|
||||||
ifneq ($(filter dtbs_check, $(MAKECMDGOALS)),)
|
ifneq ($(filter dtbs_check %.dtb %.dtbo, $(MAKECMDGOALS)),)
|
||||||
export CHECK_DTBS=y
|
export CHECK_DTBS=y
|
||||||
dtbs: dt_binding_check
|
dtbs: dt_binding_check
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -79,7 +79,7 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* for WL183x module see
|
* for WL183x module see
|
||||||
* Documentation/devicetree/bindings/net/wireless/ti,wlcore.txt
|
* Documentation/devicetree/bindings/net/wireless/ti,wlcore.yaml
|
||||||
*/
|
*/
|
||||||
|
|
||||||
&wifi_pwrseq {
|
&wifi_pwrseq {
|
||||||
|
|||||||
@@ -84,33 +84,15 @@ void __init arm_dt_init_cpu_maps(void)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
for_each_of_cpu_node(cpu) {
|
for_each_of_cpu_node(cpu) {
|
||||||
const __be32 *cell;
|
u32 hwid = of_get_cpu_hwid(cpu, 0);
|
||||||
int prop_bytes;
|
|
||||||
u32 hwid;
|
|
||||||
|
|
||||||
pr_debug(" * %pOF...\n", cpu);
|
pr_debug(" * %pOF...\n", cpu);
|
||||||
/*
|
|
||||||
* A device tree containing CPU nodes with missing "reg"
|
|
||||||
* properties is considered invalid to build the
|
|
||||||
* cpu_logical_map.
|
|
||||||
*/
|
|
||||||
cell = of_get_property(cpu, "reg", &prop_bytes);
|
|
||||||
if (!cell || prop_bytes < sizeof(*cell)) {
|
|
||||||
pr_debug(" * %pOF missing reg property\n", cpu);
|
|
||||||
of_node_put(cpu);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Bits n:24 must be set to 0 in the DT since the reg property
|
* Bits n:24 must be set to 0 in the DT since the reg property
|
||||||
* defines the MPIDR[23:0].
|
* defines the MPIDR[23:0].
|
||||||
*/
|
*/
|
||||||
do {
|
if (hwid & ~MPIDR_HWID_BITMASK) {
|
||||||
hwid = be32_to_cpu(*cell++);
|
|
||||||
prop_bytes -= sizeof(*cell);
|
|
||||||
} while (!hwid && prop_bytes > 0);
|
|
||||||
|
|
||||||
if (prop_bytes || (hwid & ~MPIDR_HWID_BITMASK)) {
|
|
||||||
of_node_put(cpu);
|
of_node_put(cpu);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user