mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-04 03:14:02 +08:00
Devicetree updates for v5.19:
Bindings: - Convert smsc,lan91c111, qcom,spi-qup, qcom,msm-uartdm, qcom,i2c-qup, qcom,gsbi, i2c-mt65xx, TI wkup_m3_ipc (and new props), qcom,smp2p, TI timer, Mediatek gnss, Mediatek topckgen, Mediatek apmixedsys, Mediatek infracfg, fsl,ls-extirq, fsl,layerscape-dcfg, QCom PMIC SPMI, rda,8810pl-timer, Xilinx zynqmp_ipi, uniphier-pcie, and Ilitek touchscreen controllers - Convert various Arm Ltd peripheral IP bindings to schemas - New bindings for Menlo board CPLD, DH electronics board CPLD, Qualcomm Geni based QUP I2C, Renesas RZ/G2UL OSTM, Broafcom BCM4751 GNSS, MT6360 PMIC, ASIX USB Ethernet controllers, and Microchip/SMSC LAN95xx USB Ethernet controllers - Add vendor prefix for Enclustra - Add various compatible string additions - Various example fixes and cleanups - Remove unused hisilicon,hi6220-reset binding - Treewide fix properties missing type definition - Drop some empty and unreferenced .txt bindings - Documentation improvements for writing schemas DT driver core: - Drop static IRQ resources for DT platform devices as IRQ setup is dynamic and drivers have all been converted to use platform_get_irq() and friends - Rework memory allocations and frees for overlays - Continue overlay notifier callbacks on successful calls and add unittests - Handle 'interrupts-extended' in early DT IRQ setup - Fix of_property_read_string() errors to match documentation - Ignore disabled nodes in FDT API calls -----BEGIN PGP SIGNATURE----- iQJEBAABCgAuFiEEktVUI4SxYhzZyEuo+vtdtY28YcMFAmKNXrcQHHJvYmhAa2Vy bmVsLm9yZwAKCRD6+121jbxhw+GkD/9mwZp1qF0cueFI7FU0pYt8olVwi6DgqAJ0 CR8Q/yPCtqyYKhZHcglyCYGgfMLE+9Y97jKJV3pOxfeIT9ZXet67JC2yTrCQKKhm rIYL1jseRZosvFfo21VsFhEVMdFVyGz8pRRaH2s59HYrATye8Vgt9D6zGWN5hOQD fMaqEVu/sEzfMuCHzBu1zkSx4VzWW1mU/jcpmE4zR/rIdyOI7DRPEl3+90VYFHH9 PdUdzeGa4JkOlDg7rcqJXUda5ZMFlHzh4Qy8OQ8yj7jtyUEiGmLcXi07VNC4SZtx wI/y5eV8aPJ4gGNMBbgUqVfiKC+5citRmGTtfToLXGpqZ+gDTjPItjrZBI9MErj/ HA2KF5bHGmoJrwJ4mFJ6uFjqSsqDjptOjIdKLZ2qMFkjTE2S+VwOsrtvMxo1Tjj0 kgi3tRRVndtmOzRuOzfzAVwzUSa4VNtKAdx1rb7mWtAJoVPdBVf1cR7sDwawgZ8G KyfOR/2G0c12IfK18Fz9k9GR+eu4exQ4CUzBb7Q+P03bewLgenvW5tmSOtILzkKq OzHTNAVHLAeVxpezrV/0/leBErb9gnif6h8vrZNh4PxjYM5u6rjy0p+r61xcf3vC iIVDYzlx5buWBUVj68BEC4wRnTmkzGapS4CYtWpBdCzPOONHXMpq+0UYmu9vac18 x+M52fQBLA== =OUL3 -----END PGP SIGNATURE----- Merge tag 'devicetree-for-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux Pull devicetree updates from Rob Herring: "Bindings: - Convert smsc,lan91c111, qcom,spi-qup, qcom,msm-uartdm, qcom,i2c-qup, qcom,gsbi, i2c-mt65xx, TI wkup_m3_ipc (and new props), qcom,smp2p, TI timer, Mediatek gnss, Mediatek topckgen, Mediatek apmixedsys, Mediatek infracfg, fsl,ls-extirq, fsl,layerscape-dcfg, QCom PMIC SPMI, rda,8810pl-timer, Xilinx zynqmp_ipi, uniphier-pcie, and Ilitek touchscreen controllers - Convert various Arm Ltd peripheral IP bindings to schemas - New bindings for Menlo board CPLD, DH electronics board CPLD, Qualcomm Geni based QUP I2C, Renesas RZ/G2UL OSTM, Broafcom BCM4751 GNSS, MT6360 PMIC, ASIX USB Ethernet controllers, and Microchip/SMSC LAN95xx USB Ethernet controllers - Add vendor prefix for Enclustra - Add various compatible string additions - Various example fixes and cleanups - Remove unused hisilicon,hi6220-reset binding - Treewide fix properties missing type definition - Drop some empty and unreferenced .txt bindings - Documentation improvements for writing schemas DT driver core: - Drop static IRQ resources for DT platform devices as IRQ setup is dynamic and drivers have all been converted to use platform_get_irq() and friends - Rework memory allocations and frees for overlays - Continue overlay notifier callbacks on successful calls and add unittests - Handle 'interrupts-extended' in early DT IRQ setup - Fix of_property_read_string() errors to match documentation - Ignore disabled nodes in FDT API calls" * tag 'devicetree-for-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (86 commits) of/irq: fix typo in comment dt-bindings: Fix properties without any type Revert "dt-bindings: mailbox: qcom-ipcc: add missing properties into example" dt-bindings: input: touchscreen: ilitek_ts_i2c: Absorb ili2xxx bindings dt-bindings: timer: samsung,exynos4210-mct: define strict clock order dt-bindings: timer: samsung,exynos4210-mct: drop unneeded minItems dt-bindings: timer: cdns,ttc: drop unneeded minItems dt-bindings: mailbox: zynqmp_ipi: convert to yaml dt-bindings: usb: ci-hdrc-usb2: fix node node for ethernet controller dt-bindings: net: add schema for Microchip/SMSC LAN95xx USB Ethernet controllers dt-bindings: net: add schema for ASIX USB Ethernet controllers of/fdt: Ignore disabled memory nodes dt-bindings: arm: fix typos in compatible dt-bindings: mfd: Add bindings child nodes for the Mediatek MT6360 dt-bindings: display: convert Arm Komeda to DT schema dt-bindings: display: convert Arm Mali-DP to DT schema dt-bindings: display: convert Arm HDLCD to DT schema dt-bindings: display: convert PL110/PL111 to DT schema dt-bindings: arm: convert vexpress-config to DT schema dt-bindings: arm: convert vexpress-sysregs to DT schema ...
This commit is contained in:
commit
86c87bea6b
@ -30,7 +30,7 @@ Example:
|
|||||||
|
|
||||||
cpus {
|
cpus {
|
||||||
cpu@0 {
|
cpu@0 {
|
||||||
compatible = "arm,cotex-a9";
|
compatible = "arm,cortex-a9";
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
...
|
...
|
||||||
enable-method = "brcm,bcm63138";
|
enable-method = "brcm,bcm63138";
|
||||||
|
@ -1,19 +0,0 @@
|
|||||||
Freescale DCFG
|
|
||||||
|
|
||||||
DCFG is the device configuration unit, that provides general purpose
|
|
||||||
configuration and status for the device. Such as setting the secondary
|
|
||||||
core start address and release the secondary core from holdoff and startup.
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible: Should contain a chip-specific compatible string,
|
|
||||||
Chip-specific strings are of the form "fsl,<chip>-dcfg",
|
|
||||||
The following <chip>s are known to be supported:
|
|
||||||
ls1012a, ls1021a, ls1043a, ls1046a, ls2080a, lx2160a
|
|
||||||
|
|
||||||
- reg : should contain base address and length of DCFG memory-mapped registers
|
|
||||||
|
|
||||||
Example:
|
|
||||||
dcfg: dcfg@1ee0000 {
|
|
||||||
compatible = "fsl,ls1021a-dcfg";
|
|
||||||
reg = <0x0 0x1ee0000 0x0 0x10000>;
|
|
||||||
};
|
|
@ -1,19 +0,0 @@
|
|||||||
Freescale SCFG
|
|
||||||
|
|
||||||
SCFG is the supplemental configuration unit, that provides SoC specific
|
|
||||||
configuration and status registers for the chip. Such as getting PEX port
|
|
||||||
status.
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible: Should contain a chip-specific compatible string,
|
|
||||||
Chip-specific strings are of the form "fsl,<chip>-scfg",
|
|
||||||
The following <chip>s are known to be supported:
|
|
||||||
ls1012a, ls1021a, ls1043a, ls1046a, ls2080a.
|
|
||||||
|
|
||||||
- reg: should contain base address and length of SCFG memory-mapped registers
|
|
||||||
|
|
||||||
Example:
|
|
||||||
scfg: scfg@1570000 {
|
|
||||||
compatible = "fsl,ls1021a-scfg";
|
|
||||||
reg = <0x0 0x1570000 0x0 0x10000>;
|
|
||||||
};
|
|
@ -17,14 +17,15 @@ properties:
|
|||||||
- const: hisilicon,hip04-bootwrapper
|
- const: hisilicon,hip04-bootwrapper
|
||||||
|
|
||||||
boot-method:
|
boot-method:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||||
description: |
|
description: |
|
||||||
Address and size of boot method.
|
Address and size of boot method.
|
||||||
[0]: bootwrapper physical address
|
[0]: bootwrapper physical address
|
||||||
[1]: bootwrapper size
|
[1]: bootwrapper size
|
||||||
[2]: relocation physical address
|
[2]: relocation physical address
|
||||||
[3]: relocation size
|
[3]: relocation size
|
||||||
minItems: 1
|
minItems: 2
|
||||||
maxItems: 2
|
maxItems: 4
|
||||||
|
|
||||||
required:
|
required:
|
||||||
- compatible
|
- compatible
|
||||||
|
@ -1,35 +0,0 @@
|
|||||||
Mediatek apmixedsys controller
|
|
||||||
==============================
|
|
||||||
|
|
||||||
The Mediatek apmixedsys controller provides the PLLs to the system.
|
|
||||||
|
|
||||||
Required Properties:
|
|
||||||
|
|
||||||
- compatible: Should be one of:
|
|
||||||
- "mediatek,mt2701-apmixedsys"
|
|
||||||
- "mediatek,mt2712-apmixedsys", "syscon"
|
|
||||||
- "mediatek,mt6765-apmixedsys", "syscon"
|
|
||||||
- "mediatek,mt6779-apmixedsys", "syscon"
|
|
||||||
- "mediatek,mt6797-apmixedsys"
|
|
||||||
- "mediatek,mt7622-apmixedsys"
|
|
||||||
- "mediatek,mt7623-apmixedsys", "mediatek,mt2701-apmixedsys"
|
|
||||||
- "mediatek,mt7629-apmixedsys"
|
|
||||||
- "mediatek,mt7986-apmixedsys"
|
|
||||||
- "mediatek,mt8135-apmixedsys"
|
|
||||||
- "mediatek,mt8167-apmixedsys", "syscon"
|
|
||||||
- "mediatek,mt8173-apmixedsys"
|
|
||||||
- "mediatek,mt8183-apmixedsys", "syscon"
|
|
||||||
- "mediatek,mt8516-apmixedsys"
|
|
||||||
- #clock-cells: Must be 1
|
|
||||||
|
|
||||||
The apmixedsys controller uses the common clk binding from
|
|
||||||
Documentation/devicetree/bindings/clock/clock-bindings.txt
|
|
||||||
The available clocks are defined in dt-bindings/clock/mt*-clk.h.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
apmixedsys: clock-controller@10209000 {
|
|
||||||
compatible = "mediatek,mt8173-apmixedsys";
|
|
||||||
reg = <0 0x10209000 0 0x1000>;
|
|
||||||
#clock-cells = <1>;
|
|
||||||
};
|
|
@ -1,42 +0,0 @@
|
|||||||
Mediatek infracfg controller
|
|
||||||
============================
|
|
||||||
|
|
||||||
The Mediatek infracfg controller provides various clocks and reset
|
|
||||||
outputs to the system.
|
|
||||||
|
|
||||||
Required Properties:
|
|
||||||
|
|
||||||
- compatible: Should be one of:
|
|
||||||
- "mediatek,mt2701-infracfg", "syscon"
|
|
||||||
- "mediatek,mt2712-infracfg", "syscon"
|
|
||||||
- "mediatek,mt6765-infracfg", "syscon"
|
|
||||||
- "mediatek,mt6779-infracfg_ao", "syscon"
|
|
||||||
- "mediatek,mt6797-infracfg", "syscon"
|
|
||||||
- "mediatek,mt7622-infracfg", "syscon"
|
|
||||||
- "mediatek,mt7623-infracfg", "mediatek,mt2701-infracfg", "syscon"
|
|
||||||
- "mediatek,mt7629-infracfg", "syscon"
|
|
||||||
- "mediatek,mt7986-infracfg", "syscon"
|
|
||||||
- "mediatek,mt8135-infracfg", "syscon"
|
|
||||||
- "mediatek,mt8167-infracfg", "syscon"
|
|
||||||
- "mediatek,mt8173-infracfg", "syscon"
|
|
||||||
- "mediatek,mt8183-infracfg", "syscon"
|
|
||||||
- "mediatek,mt8516-infracfg", "syscon"
|
|
||||||
- #clock-cells: Must be 1
|
|
||||||
- #reset-cells: Must be 1
|
|
||||||
|
|
||||||
The infracfg controller uses the common clk binding from
|
|
||||||
Documentation/devicetree/bindings/clock/clock-bindings.txt
|
|
||||||
The available clocks are defined in dt-bindings/clock/mt*-clk.h.
|
|
||||||
Also it uses the common reset controller binding from
|
|
||||||
Documentation/devicetree/bindings/reset/reset.txt.
|
|
||||||
The available reset outputs are defined in
|
|
||||||
dt-bindings/reset/mt*-resets.h
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
infracfg: power-controller@10001000 {
|
|
||||||
compatible = "mediatek,mt8173-infracfg", "syscon";
|
|
||||||
reg = <0 0x10001000 0 0x1000>;
|
|
||||||
#clock-cells = <1>;
|
|
||||||
#reset-cells = <1>;
|
|
||||||
};
|
|
@ -0,0 +1,81 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: "http://devicetree.org/schemas/arm/mediatek/mediatek,infracfg.yaml#"
|
||||||
|
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||||
|
|
||||||
|
title: MediaTek Infrastructure System Configuration Controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Matthias Brugger <matthias.bgg@gmail.com>
|
||||||
|
|
||||||
|
description:
|
||||||
|
The Mediatek infracfg controller provides various clocks and reset outputs
|
||||||
|
to the system. The clock values can be found in <dt-bindings/clock/mt*-clk.h>,
|
||||||
|
and reset values in <dt-bindings/reset/mt*-reset.h> and
|
||||||
|
<dt-bindings/reset/mt*-resets.h>.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
oneOf:
|
||||||
|
- items:
|
||||||
|
- enum:
|
||||||
|
- mediatek,mt2701-infracfg
|
||||||
|
- mediatek,mt2712-infracfg
|
||||||
|
- mediatek,mt6765-infracfg
|
||||||
|
- mediatek,mt6779-infracfg_ao
|
||||||
|
- mediatek,mt6797-infracfg
|
||||||
|
- mediatek,mt7622-infracfg
|
||||||
|
- mediatek,mt7629-infracfg
|
||||||
|
- mediatek,mt7986-infracfg
|
||||||
|
- mediatek,mt8135-infracfg
|
||||||
|
- mediatek,mt8167-infracfg
|
||||||
|
- mediatek,mt8173-infracfg
|
||||||
|
- mediatek,mt8183-infracfg
|
||||||
|
- mediatek,mt8516-infracfg
|
||||||
|
- const: syscon
|
||||||
|
- items:
|
||||||
|
- const: mediatek,mt7623-infracfg
|
||||||
|
- const: mediatek,mt2701-infracfg
|
||||||
|
- const: syscon
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
'#clock-cells':
|
||||||
|
const: 1
|
||||||
|
|
||||||
|
'#reset-cells':
|
||||||
|
const: 1
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- '#clock-cells'
|
||||||
|
|
||||||
|
if:
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
contains:
|
||||||
|
enum:
|
||||||
|
- mediatek,mt2701-infracfg
|
||||||
|
- mediatek,mt2712-infracfg
|
||||||
|
- mediatek,mt7622-infracfg
|
||||||
|
- mediatek,mt7986-infracfg
|
||||||
|
- mediatek,mt8135-infracfg
|
||||||
|
- mediatek,mt8173-infracfg
|
||||||
|
- mediatek,mt8183-infracfg
|
||||||
|
then:
|
||||||
|
required:
|
||||||
|
- '#reset-cells'
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
infracfg: clock-controller@10001000 {
|
||||||
|
compatible = "mediatek,mt8173-infracfg", "syscon";
|
||||||
|
reg = <0x10001000 0x1000>;
|
||||||
|
#clock-cells = <1>;
|
||||||
|
#reset-cells = <1>;
|
||||||
|
};
|
@ -1,35 +0,0 @@
|
|||||||
Mediatek topckgen controller
|
|
||||||
============================
|
|
||||||
|
|
||||||
The Mediatek topckgen controller provides various clocks to the system.
|
|
||||||
|
|
||||||
Required Properties:
|
|
||||||
|
|
||||||
- compatible: Should be one of:
|
|
||||||
- "mediatek,mt2701-topckgen"
|
|
||||||
- "mediatek,mt2712-topckgen", "syscon"
|
|
||||||
- "mediatek,mt6765-topckgen", "syscon"
|
|
||||||
- "mediatek,mt6779-topckgen", "syscon"
|
|
||||||
- "mediatek,mt6797-topckgen"
|
|
||||||
- "mediatek,mt7622-topckgen"
|
|
||||||
- "mediatek,mt7623-topckgen", "mediatek,mt2701-topckgen"
|
|
||||||
- "mediatek,mt7629-topckgen"
|
|
||||||
- "mediatek,mt7986-topckgen", "syscon"
|
|
||||||
- "mediatek,mt8135-topckgen"
|
|
||||||
- "mediatek,mt8167-topckgen", "syscon"
|
|
||||||
- "mediatek,mt8173-topckgen"
|
|
||||||
- "mediatek,mt8183-topckgen", "syscon"
|
|
||||||
- "mediatek,mt8516-topckgen"
|
|
||||||
- #clock-cells: Must be 1
|
|
||||||
|
|
||||||
The topckgen controller uses the common clk binding from
|
|
||||||
Documentation/devicetree/bindings/clock/clock-bindings.txt
|
|
||||||
The available clocks are defined in dt-bindings/clock/mt*-clk.h.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
topckgen: power-controller@10000000 {
|
|
||||||
compatible = "mediatek,mt8173-topckgen";
|
|
||||||
reg = <0 0x10000000 0 0x1000>;
|
|
||||||
#clock-cells = <1>;
|
|
||||||
};
|
|
@ -1,46 +0,0 @@
|
|||||||
SP810 System Controller
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
|
|
||||||
- compatible: standard compatible string for a Primecell peripheral,
|
|
||||||
see Documentation/devicetree/bindings/arm/primecell.yaml
|
|
||||||
for more details
|
|
||||||
should be: "arm,sp810", "arm,primecell"
|
|
||||||
|
|
||||||
- reg: standard registers property, physical address and size
|
|
||||||
of the control registers
|
|
||||||
|
|
||||||
- clock-names: from the common clock bindings, for more details see
|
|
||||||
Documentation/devicetree/bindings/clock/clock-bindings.txt;
|
|
||||||
should be: "refclk", "timclk", "apb_pclk"
|
|
||||||
|
|
||||||
- clocks: from the common clock bindings, phandle and clock
|
|
||||||
specifier pairs for the entries of clock-names property
|
|
||||||
|
|
||||||
- #clock-cells: from the common clock bindings;
|
|
||||||
should be: <1>
|
|
||||||
|
|
||||||
- clock-output-names: from the common clock bindings;
|
|
||||||
should be: "timerclken0", "timerclken1", "timerclken2", "timerclken3"
|
|
||||||
|
|
||||||
- assigned-clocks: from the common clock binding;
|
|
||||||
should be: clock specifier for each output clock of this
|
|
||||||
provider node
|
|
||||||
|
|
||||||
- assigned-clock-parents: from the common clock binding;
|
|
||||||
should be: phandle of input clock listed in clocks
|
|
||||||
property with the highest frequency
|
|
||||||
|
|
||||||
Example:
|
|
||||||
v2m_sysctl: sysctl@20000 {
|
|
||||||
compatible = "arm,sp810", "arm,primecell";
|
|
||||||
reg = <0x020000 0x1000>;
|
|
||||||
clocks = <&v2m_refclk32khz>, <&v2m_refclk1mhz>, <&smbclk>;
|
|
||||||
clock-names = "refclk", "timclk", "apb_pclk";
|
|
||||||
#clock-cells = <1>;
|
|
||||||
clock-output-names = "timerclken0", "timerclken1", "timerclken2", "timerclken3";
|
|
||||||
assigned-clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&v2m_sysctl 3>, <&v2m_sysctl 3>;
|
|
||||||
assigned-clock-parents = <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>;
|
|
||||||
|
|
||||||
};
|
|
80
Documentation/devicetree/bindings/arm/sp810.yaml
Normal file
80
Documentation/devicetree/bindings/arm/sp810.yaml
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/arm/sp810.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: ARM Versatile Express SP810 System Controller bindings
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Andre Przywara <andre.przywara@arm.com>
|
||||||
|
|
||||||
|
description:
|
||||||
|
The Arm SP810 system controller provides clocks, timers and a watchdog.
|
||||||
|
|
||||||
|
# We need a select here so we don't match all nodes with 'arm,primecell'
|
||||||
|
select:
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
contains:
|
||||||
|
const: arm,sp810
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
items:
|
||||||
|
- const: arm,sp810
|
||||||
|
- const: arm,primecell
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
clock-names:
|
||||||
|
items:
|
||||||
|
- const: refclk
|
||||||
|
- const: timclk
|
||||||
|
- const: apb_pclk
|
||||||
|
|
||||||
|
clocks:
|
||||||
|
items:
|
||||||
|
- description: reference clock
|
||||||
|
- description: timer clock
|
||||||
|
- description: APB register access clock
|
||||||
|
|
||||||
|
"#clock-cells":
|
||||||
|
const: 1
|
||||||
|
|
||||||
|
clock-output-names:
|
||||||
|
maxItems: 4
|
||||||
|
|
||||||
|
assigned-clocks:
|
||||||
|
maxItems: 4
|
||||||
|
|
||||||
|
assigned-clock-parents:
|
||||||
|
maxItems: 4
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- clocks
|
||||||
|
- clock-names
|
||||||
|
- "#clock-cells"
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
sysctl@20000 {
|
||||||
|
compatible = "arm,sp810", "arm,primecell";
|
||||||
|
reg = <0x020000 0x1000>;
|
||||||
|
clocks = <&v2m_refclk32khz>, <&v2m_refclk1mhz>, <&smbclk>;
|
||||||
|
clock-names = "refclk", "timclk", "apb_pclk";
|
||||||
|
#clock-cells = <1>;
|
||||||
|
clock-output-names = "timerclken0", "timerclken1",
|
||||||
|
"timerclken2", "timerclken3";
|
||||||
|
assigned-clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>,
|
||||||
|
<&v2m_sysctl 3>, <&v2m_sysctl 3>;
|
||||||
|
assigned-clock-parents = <&v2m_refclk1mhz>, <&v2m_refclk1mhz>,
|
||||||
|
<&v2m_refclk1mhz>, <&v2m_refclk1mhz>;
|
||||||
|
};
|
@ -1,20 +0,0 @@
|
|||||||
* ARMv8.2 Statistical Profiling Extension (SPE) Performance Monitor Units (PMU)
|
|
||||||
|
|
||||||
ARMv8.2 introduces the optional Statistical Profiling Extension for collecting
|
|
||||||
performance sample data using an in-memory trace buffer.
|
|
||||||
|
|
||||||
** SPE Required properties:
|
|
||||||
|
|
||||||
- compatible : should be one of:
|
|
||||||
"arm,statistical-profiling-extension-v1"
|
|
||||||
|
|
||||||
- interrupts : Exactly 1 PPI must be listed. For heterogeneous systems where
|
|
||||||
SPE is only supported on a subset of the CPUs, please consult
|
|
||||||
the arm,gic-v3 binding for details on describing a PPI partition.
|
|
||||||
|
|
||||||
** Example:
|
|
||||||
|
|
||||||
spe-pmu {
|
|
||||||
compatible = "arm,statistical-profiling-extension-v1";
|
|
||||||
interrupts = <GIC_PPI 05 IRQ_TYPE_LEVEL_HIGH &part1>;
|
|
||||||
};
|
|
285
Documentation/devicetree/bindings/arm/vexpress-config.yaml
Normal file
285
Documentation/devicetree/bindings/arm/vexpress-config.yaml
Normal file
@ -0,0 +1,285 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/arm/vexpress-config.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: ARM Versatile Express configuration bus bindings
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Andre Przywara <andre.przywara@arm.com>
|
||||||
|
|
||||||
|
description:
|
||||||
|
This is a system control register block, acting as a bridge to the
|
||||||
|
platform's configuration bus via "system control" interface, addressing
|
||||||
|
devices with site number, position in the board stack, config controller,
|
||||||
|
function and device numbers - see motherboard's TRM for more details.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: arm,vexpress,config-bus
|
||||||
|
|
||||||
|
arm,vexpress,config-bridge:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/phandle
|
||||||
|
description:
|
||||||
|
Phandle to the sysreg node.
|
||||||
|
|
||||||
|
muxfpga:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: arm,vexpress-muxfpga
|
||||||
|
|
||||||
|
arm,vexpress-sysreg,func:
|
||||||
|
description: FPGA specifier
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||||
|
items:
|
||||||
|
- const: 7
|
||||||
|
- description: device number
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- arm,vexpress-sysreg,func
|
||||||
|
|
||||||
|
shutdown:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: arm,vexpress-shutdown
|
||||||
|
|
||||||
|
arm,vexpress-sysreg,func:
|
||||||
|
description: shutdown identifier
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||||
|
items:
|
||||||
|
- const: 8
|
||||||
|
- description: device number
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- arm,vexpress-sysreg,func
|
||||||
|
|
||||||
|
reboot:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: arm,vexpress-reboot
|
||||||
|
|
||||||
|
arm,vexpress-sysreg,func:
|
||||||
|
description: reboot identifier
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||||
|
items:
|
||||||
|
- const: 9
|
||||||
|
- description: device number
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- arm,vexpress-sysreg,func
|
||||||
|
|
||||||
|
dvimode:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: arm,vexpress-dvimode
|
||||||
|
|
||||||
|
arm,vexpress-sysreg,func:
|
||||||
|
description: DVI mode identifier
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||||
|
items:
|
||||||
|
- const: 11
|
||||||
|
- description: device number
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- arm,vexpress-sysreg,func
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- arm,vexpress,config-bridge
|
||||||
|
|
||||||
|
patternProperties:
|
||||||
|
'clk[0-9]*$':
|
||||||
|
type: object
|
||||||
|
description:
|
||||||
|
clocks
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: arm,vexpress-osc
|
||||||
|
|
||||||
|
arm,vexpress-sysreg,func:
|
||||||
|
description: clock specifier
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||||
|
items:
|
||||||
|
- const: 1
|
||||||
|
- description: clock number
|
||||||
|
|
||||||
|
freq-range:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||||
|
items:
|
||||||
|
- description: minimal clock frequency
|
||||||
|
- description: maximum clock frequency
|
||||||
|
|
||||||
|
"#clock-cells":
|
||||||
|
const: 0
|
||||||
|
|
||||||
|
clock-output-names:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- arm,vexpress-sysreg,func
|
||||||
|
- "#clock-cells"
|
||||||
|
|
||||||
|
"^volt-.+$":
|
||||||
|
$ref: /schemas/regulator/regulator.yaml#
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: arm,vexpress-volt
|
||||||
|
|
||||||
|
arm,vexpress-sysreg,func:
|
||||||
|
description: regulator specifier
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||||
|
items:
|
||||||
|
- const: 2
|
||||||
|
- description: device number
|
||||||
|
|
||||||
|
label:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
unevaluatedProperties: false
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- arm,vexpress-sysreg,func
|
||||||
|
|
||||||
|
"^amp-.+$":
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: arm,vexpress-amp
|
||||||
|
|
||||||
|
arm,vexpress-sysreg,func:
|
||||||
|
description: current sensor identifier
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||||
|
items:
|
||||||
|
- const: 3
|
||||||
|
- description: device number
|
||||||
|
|
||||||
|
label:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- arm,vexpress-sysreg,func
|
||||||
|
|
||||||
|
"^temp-.+$":
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: arm,vexpress-temp
|
||||||
|
|
||||||
|
arm,vexpress-sysreg,func:
|
||||||
|
description: temperature sensor identifier
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||||
|
items:
|
||||||
|
- const: 4
|
||||||
|
- description: device number
|
||||||
|
|
||||||
|
label:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- arm,vexpress-sysreg,func
|
||||||
|
|
||||||
|
"^reset[0-9]*$":
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: arm,vexpress-reset
|
||||||
|
|
||||||
|
arm,vexpress-sysreg,func:
|
||||||
|
description: reset specifier
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||||
|
items:
|
||||||
|
- const: 5
|
||||||
|
- description: reset device number
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- arm,vexpress-sysreg,func
|
||||||
|
|
||||||
|
"^power-.+$":
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: arm,vexpress-power
|
||||||
|
|
||||||
|
arm,vexpress-sysreg,func:
|
||||||
|
description: power sensor identifier
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||||
|
items:
|
||||||
|
- const: 12
|
||||||
|
- description: device number
|
||||||
|
|
||||||
|
label:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- arm,vexpress-sysreg,func
|
||||||
|
|
||||||
|
"^energy(-.+)?$":
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: arm,vexpress-energy
|
||||||
|
|
||||||
|
arm,vexpress-sysreg,func:
|
||||||
|
description: energy sensor identifier
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||||
|
oneOf:
|
||||||
|
- items:
|
||||||
|
- const: 13
|
||||||
|
- description: device number
|
||||||
|
- items:
|
||||||
|
- const: 13
|
||||||
|
- description: device number
|
||||||
|
- const: 13
|
||||||
|
- description: second device number
|
||||||
|
|
||||||
|
label:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- arm,vexpress-sysreg,func
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
mcc {
|
||||||
|
compatible = "arm,vexpress,config-bus";
|
||||||
|
arm,vexpress,config-bridge = <&v2m_sysreg>;
|
||||||
|
|
||||||
|
clk0 {
|
||||||
|
compatible = "arm,vexpress-osc";
|
||||||
|
arm,vexpress-sysreg,func = <1 0>;
|
||||||
|
#clock-cells = <0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
energy {
|
||||||
|
compatible = "arm,vexpress-energy";
|
||||||
|
arm,vexpress-sysreg,func = <13 0>, <13 1>;
|
||||||
|
};
|
||||||
|
};
|
@ -1,103 +0,0 @@
|
|||||||
ARM Versatile Express system registers
|
|
||||||
--------------------------------------
|
|
||||||
|
|
||||||
This is a system control registers block, providing multiple low level
|
|
||||||
platform functions like board detection and identification, software
|
|
||||||
interrupt generation, MMC and NOR Flash control etc.
|
|
||||||
|
|
||||||
Required node properties:
|
|
||||||
- compatible value : = "arm,vexpress,sysreg";
|
|
||||||
- reg : physical base address and the size of the registers window
|
|
||||||
|
|
||||||
Deprecated properties, replaced by GPIO subnodes (see below):
|
|
||||||
- gpio-controller : specifies that the node is a GPIO controller
|
|
||||||
- #gpio-cells : size of the GPIO specifier, should be 2:
|
|
||||||
- first cell is the pseudo-GPIO line number:
|
|
||||||
0 - MMC CARDIN
|
|
||||||
1 - MMC WPROT
|
|
||||||
2 - NOR FLASH WPn
|
|
||||||
- second cell can take standard GPIO flags (currently ignored).
|
|
||||||
|
|
||||||
Control registers providing pseudo-GPIO lines must be represented
|
|
||||||
by subnodes, each of them requiring the following properties:
|
|
||||||
- compatible value : one of
|
|
||||||
"arm,vexpress-sysreg,sys_led"
|
|
||||||
"arm,vexpress-sysreg,sys_mci"
|
|
||||||
"arm,vexpress-sysreg,sys_flash"
|
|
||||||
- gpio-controller : makes the node a GPIO controller
|
|
||||||
- #gpio-cells : size of the GPIO specifier, must be 2:
|
|
||||||
- first cell is the function number:
|
|
||||||
- for sys_led : 0..7 = LED 0..7
|
|
||||||
- for sys_mci : 0 = MMC CARDIN, 1 = MMC WPROT
|
|
||||||
- for sys_flash : 0 = NOR FLASH WPn
|
|
||||||
- second cell can take standard GPIO flags (currently ignored).
|
|
||||||
|
|
||||||
Example:
|
|
||||||
v2m_sysreg: sysreg@10000000 {
|
|
||||||
compatible = "arm,vexpress-sysreg";
|
|
||||||
reg = <0x10000000 0x1000>;
|
|
||||||
|
|
||||||
v2m_led_gpios: sys_led@8 {
|
|
||||||
compatible = "arm,vexpress-sysreg,sys_led";
|
|
||||||
gpio-controller;
|
|
||||||
#gpio-cells = <2>;
|
|
||||||
};
|
|
||||||
|
|
||||||
v2m_mmc_gpios: sys_mci@48 {
|
|
||||||
compatible = "arm,vexpress-sysreg,sys_mci";
|
|
||||||
gpio-controller;
|
|
||||||
#gpio-cells = <2>;
|
|
||||||
};
|
|
||||||
|
|
||||||
v2m_flash_gpios: sys_flash@4c {
|
|
||||||
compatible = "arm,vexpress-sysreg,sys_flash";
|
|
||||||
gpio-controller;
|
|
||||||
#gpio-cells = <2>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
This block also can also act a bridge to the platform's configuration
|
|
||||||
bus via "system control" interface, addressing devices with site number,
|
|
||||||
position in the board stack, config controller, function and device
|
|
||||||
numbers - see motherboard's TRM for more details. All configuration
|
|
||||||
controller accessible via this interface must reference the sysreg
|
|
||||||
node via "arm,vexpress,config-bridge" phandle and define appropriate
|
|
||||||
topology properties - see main vexpress node documentation for more
|
|
||||||
details. Each child of such node describes one function and must
|
|
||||||
define the following properties:
|
|
||||||
- compatible value : must be one of (corresponding to the TRM):
|
|
||||||
"arm,vexpress-amp"
|
|
||||||
"arm,vexpress-dvimode"
|
|
||||||
"arm,vexpress-energy"
|
|
||||||
"arm,vexpress-muxfpga"
|
|
||||||
"arm,vexpress-osc"
|
|
||||||
"arm,vexpress-power"
|
|
||||||
"arm,vexpress-reboot"
|
|
||||||
"arm,vexpress-reset"
|
|
||||||
"arm,vexpress-scc"
|
|
||||||
"arm,vexpress-shutdown"
|
|
||||||
"arm,vexpress-temp"
|
|
||||||
"arm,vexpress-volt"
|
|
||||||
- arm,vexpress-sysreg,func : must contain a set of two cells long groups:
|
|
||||||
- first cell of each group defines the function number
|
|
||||||
(eg. 1 for clock generator, 2 for voltage regulators etc.)
|
|
||||||
- second cell of each group defines device number (eg. osc 0,
|
|
||||||
osc 1 etc.)
|
|
||||||
- some functions (eg. energy meter, with its 64 bit long counter)
|
|
||||||
are using more than one function/device number pair
|
|
||||||
|
|
||||||
Example:
|
|
||||||
mcc {
|
|
||||||
compatible = "arm,vexpress,config-bus";
|
|
||||||
arm,vexpress,config-bridge = <&v2m_sysreg>;
|
|
||||||
|
|
||||||
osc@0 {
|
|
||||||
compatible = "arm,vexpress-osc";
|
|
||||||
arm,vexpress-sysreg,func = <1 0>;
|
|
||||||
};
|
|
||||||
|
|
||||||
energy@0 {
|
|
||||||
compatible = "arm,vexpress-energy";
|
|
||||||
arm,vexpress-sysreg,func = <13 0>, <13 1>;
|
|
||||||
};
|
|
||||||
};
|
|
90
Documentation/devicetree/bindings/arm/vexpress-sysreg.yaml
Normal file
90
Documentation/devicetree/bindings/arm/vexpress-sysreg.yaml
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/arm/vexpress-sysreg.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: ARM Versatile Express system registers bindings
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Andre Przywara <andre.przywara@arm.com>
|
||||||
|
|
||||||
|
description:
|
||||||
|
This is a system control registers block, providing multiple low level
|
||||||
|
platform functions like board detection and identification, software
|
||||||
|
interrupt generation, MMC and NOR Flash control, etc.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: arm,vexpress-sysreg
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
"#address-cells":
|
||||||
|
const: 1
|
||||||
|
|
||||||
|
"#size-cells":
|
||||||
|
const: 1
|
||||||
|
|
||||||
|
ranges: true
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
patternProperties:
|
||||||
|
'^gpio@[0-9a-f]+$':
|
||||||
|
type: object
|
||||||
|
additionalProperties: false
|
||||||
|
description:
|
||||||
|
GPIO children
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
enum:
|
||||||
|
- arm,vexpress-sysreg,sys_led
|
||||||
|
- arm,vexpress-sysreg,sys_mci
|
||||||
|
- arm,vexpress-sysreg,sys_flash
|
||||||
|
|
||||||
|
gpio-controller: true
|
||||||
|
|
||||||
|
"#gpio-cells":
|
||||||
|
const: 2
|
||||||
|
description: |
|
||||||
|
The first cell is the function number:
|
||||||
|
for sys_led : 0..7 = LED 0..7
|
||||||
|
for sys_mci : 0 = MMC CARDIN, 1 = MMC WPROT
|
||||||
|
for sys_flash : 0 = NOR FLASH WPn
|
||||||
|
The second cell can take standard GPIO flags.
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- gpio-controller
|
||||||
|
- "#gpio-cells"
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- "#address-cells"
|
||||||
|
- "#size-cells"
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
sysreg@0 {
|
||||||
|
compatible = "arm,vexpress-sysreg";
|
||||||
|
reg = <0x00000 0x1000>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
ranges = <0 0 0x1000>;
|
||||||
|
|
||||||
|
v2m_led_gpios: gpio@8 {
|
||||||
|
compatible = "arm,vexpress-sysreg,sys_led";
|
||||||
|
reg = <0x008 4>;
|
||||||
|
gpio-controller;
|
||||||
|
#gpio-cells = <2>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
...
|
@ -0,0 +1,61 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: "http://devicetree.org/schemas/clock/mediatek,apmixedsys.yaml#"
|
||||||
|
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||||
|
|
||||||
|
title: MediaTek AP Mixedsys Controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Michael Turquette <mturquette@baylibre.com>
|
||||||
|
- Stephen Boyd <sboyd@kernel.org>
|
||||||
|
|
||||||
|
description:
|
||||||
|
The Mediatek apmixedsys controller provides PLLs to the system.
|
||||||
|
The clock values can be found in <dt-bindings/clock/mt*-clk.h>.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
oneOf:
|
||||||
|
- enum:
|
||||||
|
- mediatek,mt6797-apmixedsys
|
||||||
|
- mediatek,mt7622-apmixedsys
|
||||||
|
- mediatek,mt7986-apmixedsys
|
||||||
|
- mediatek,mt8135-apmixedsys
|
||||||
|
- mediatek,mt8173-apmixedsys
|
||||||
|
- mediatek,mt8516-apmixedsys
|
||||||
|
- items:
|
||||||
|
- const: mediatek,mt7623-apmixedsys
|
||||||
|
- const: mediatek,mt2701-apmixedsys
|
||||||
|
- const: syscon
|
||||||
|
- items:
|
||||||
|
- enum:
|
||||||
|
- mediatek,mt2701-apmixedsys
|
||||||
|
- mediatek,mt2712-apmixedsys
|
||||||
|
- mediatek,mt6765-apmixedsys
|
||||||
|
- mediatek,mt6779-apmixedsys
|
||||||
|
- mediatek,mt7629-apmixedsys
|
||||||
|
- mediatek,mt8167-apmixedsys
|
||||||
|
- mediatek,mt8183-apmixedsys
|
||||||
|
- const: syscon
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
'#clock-cells':
|
||||||
|
const: 1
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- '#clock-cells'
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
apmixedsys: clock-controller@10209000 {
|
||||||
|
compatible = "mediatek,mt8173-apmixedsys";
|
||||||
|
reg = <0x10209000 0x1000>;
|
||||||
|
#clock-cells = <1>;
|
||||||
|
};
|
@ -0,0 +1,61 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: "http://devicetree.org/schemas/clock/mediatek,topckgen.yaml#"
|
||||||
|
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||||
|
|
||||||
|
title: MediaTek Top Clock Generator Controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Michael Turquette <mturquette@baylibre.com>
|
||||||
|
- Stephen Boyd <sboyd@kernel.org>
|
||||||
|
|
||||||
|
description:
|
||||||
|
The Mediatek topckgen controller provides various clocks to the system.
|
||||||
|
The clock values can be found in <dt-bindings/clock/mt*-clk.h>.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
oneOf:
|
||||||
|
- enum:
|
||||||
|
- mediatek,mt6797-topckgen
|
||||||
|
- mediatek,mt7622-topckgen
|
||||||
|
- mediatek,mt8135-topckgen
|
||||||
|
- mediatek,mt8173-topckgen
|
||||||
|
- mediatek,mt8516-topckgen
|
||||||
|
- items:
|
||||||
|
- const: mediatek,mt7623-topckgen
|
||||||
|
- const: mediatek,mt2701-topckgen
|
||||||
|
- const: syscon
|
||||||
|
- items:
|
||||||
|
- enum:
|
||||||
|
- mediatek,mt2701-topckgen
|
||||||
|
- mediatek,mt2712-topckgen
|
||||||
|
- mediatek,mt6765-topckgen
|
||||||
|
- mediatek,mt6779-topckgen
|
||||||
|
- mediatek,mt7629-topckgen
|
||||||
|
- mediatek,mt7986-topckgen
|
||||||
|
- mediatek,mt8167-topckgen
|
||||||
|
- mediatek,mt8183-topckgen
|
||||||
|
- const: syscon
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
'#clock-cells':
|
||||||
|
const: 1
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- '#clock-cells'
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
topckgen: clock-controller@10000000 {
|
||||||
|
compatible = "mediatek,mt8173-topckgen";
|
||||||
|
reg = <0x10000000 0x1000>;
|
||||||
|
#clock-cells = <1>;
|
||||||
|
};
|
@ -61,4 +61,3 @@ examples:
|
|||||||
clocks = <&clock CLK_ACLK200>, <&clock CLK_ACLK400_MCUISP>;
|
clocks = <&clock CLK_ACLK200>, <&clock CLK_ACLK400_MCUISP>;
|
||||||
clock-names = "aclk200", "aclk400_mcuisp";
|
clock-names = "aclk200", "aclk400_mcuisp";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -82,4 +82,3 @@ examples:
|
|||||||
clock-names = "bus", "mod";
|
clock-names = "bus", "mod";
|
||||||
resets = <&ccu RST_BUS_CE>;
|
resets = <&ccu RST_BUS_CE>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -150,4 +150,3 @@ examples:
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,79 +0,0 @@
|
|||||||
ARM HDLCD
|
|
||||||
|
|
||||||
This is a display controller found on several development platforms produced
|
|
||||||
by ARM Ltd and in more modern of its' Fast Models. The HDLCD is an RGB
|
|
||||||
streamer that reads the data from a framebuffer and sends it to a single
|
|
||||||
digital encoder (DVI or HDMI).
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible: "arm,hdlcd"
|
|
||||||
- reg: Physical base address and length of the controller's registers.
|
|
||||||
- interrupts: One interrupt used by the display controller to notify the
|
|
||||||
interrupt controller when any of the interrupt sources programmed in
|
|
||||||
the interrupt mask register have activated.
|
|
||||||
- clocks: A list of phandle + clock-specifier pairs, one for each
|
|
||||||
entry in 'clock-names'.
|
|
||||||
- clock-names: A list of clock names. For HDLCD it should contain:
|
|
||||||
- "pxlclk" for the clock feeding the output PLL of the controller.
|
|
||||||
|
|
||||||
Required sub-nodes:
|
|
||||||
- port: The HDLCD connection to an encoder chip. The connection is modeled
|
|
||||||
using the OF graph bindings specified in
|
|
||||||
Documentation/devicetree/bindings/graph.txt.
|
|
||||||
|
|
||||||
Optional properties:
|
|
||||||
- memory-region: phandle to a node describing memory (see
|
|
||||||
Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt) to be
|
|
||||||
used for the framebuffer; if not present, the framebuffer may be located
|
|
||||||
anywhere in memory.
|
|
||||||
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
/ {
|
|
||||||
...
|
|
||||||
|
|
||||||
hdlcd@2b000000 {
|
|
||||||
compatible = "arm,hdlcd";
|
|
||||||
reg = <0 0x2b000000 0 0x1000>;
|
|
||||||
interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
|
|
||||||
clocks = <&oscclk5>;
|
|
||||||
clock-names = "pxlclk";
|
|
||||||
port {
|
|
||||||
hdlcd_output: endpoint@0 {
|
|
||||||
remote-endpoint = <&hdmi_enc_input>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
/* HDMI encoder on I2C bus */
|
|
||||||
i2c@7ffa0000 {
|
|
||||||
....
|
|
||||||
hdmi-transmitter@70 {
|
|
||||||
compatible = ".....";
|
|
||||||
reg = <0x70>;
|
|
||||||
port@0 {
|
|
||||||
hdmi_enc_input: endpoint {
|
|
||||||
remote-endpoint = <&hdlcd_output>;
|
|
||||||
};
|
|
||||||
|
|
||||||
hdmi_enc_output: endpoint {
|
|
||||||
remote-endpoint = <&hdmi_1_port>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
hdmi1: connector@1 {
|
|
||||||
compatible = "hdmi-connector";
|
|
||||||
type = "a";
|
|
||||||
port {
|
|
||||||
hdmi_1_port: endpoint {
|
|
||||||
remote-endpoint = <&hdmi_enc_output>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
...
|
|
||||||
};
|
|
89
Documentation/devicetree/bindings/display/arm,hdlcd.yaml
Normal file
89
Documentation/devicetree/bindings/display/arm,hdlcd.yaml
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/display/arm,hdlcd.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Arm HDLCD display controller binding
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Liviu Dudau <Liviu.Dudau@arm.com>
|
||||||
|
- Andre Przywara <andre.przywara@arm.com>
|
||||||
|
|
||||||
|
description:
|
||||||
|
The Arm HDLCD is a display controller found on several development platforms
|
||||||
|
produced by ARM Ltd and in more modern of its Fast Models. The HDLCD is an
|
||||||
|
RGB streamer that reads the data from a framebuffer and sends it to a single
|
||||||
|
digital encoder (DVI or HDMI).
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: arm,hdlcd
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
clock-names:
|
||||||
|
const: pxlclk
|
||||||
|
|
||||||
|
clocks:
|
||||||
|
maxItems: 1
|
||||||
|
description: The input reference for the pixel clock.
|
||||||
|
|
||||||
|
memory-region:
|
||||||
|
maxItems: 1
|
||||||
|
description:
|
||||||
|
Phandle to a node describing memory to be used for the framebuffer.
|
||||||
|
If not present, the framebuffer may be located anywhere in memory.
|
||||||
|
|
||||||
|
iommus:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
port:
|
||||||
|
$ref: /schemas/graph.yaml#/properties/port
|
||||||
|
unevaluatedProperties: false
|
||||||
|
description:
|
||||||
|
Output endpoint of the controller, connecting the LCD panel signals.
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- interrupts
|
||||||
|
- clocks
|
||||||
|
- port
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
hdlcd@2b000000 {
|
||||||
|
compatible = "arm,hdlcd";
|
||||||
|
reg = <0x2b000000 0x1000>;
|
||||||
|
interrupts = <0 85 4>;
|
||||||
|
clocks = <&oscclk5>;
|
||||||
|
clock-names = "pxlclk";
|
||||||
|
port {
|
||||||
|
hdlcd_output: endpoint {
|
||||||
|
remote-endpoint = <&hdmi_enc_input>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
/* HDMI encoder on I2C bus */
|
||||||
|
i2c {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
hdmi-transmitter@70 {
|
||||||
|
compatible = "nxp,tda998x";
|
||||||
|
reg = <0x70>;
|
||||||
|
port {
|
||||||
|
hdmi_enc_input: endpoint {
|
||||||
|
remote-endpoint = <&hdlcd_output>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
...
|
@ -1,78 +0,0 @@
|
|||||||
Device Tree bindings for Arm Komeda display driver
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible: Should be "arm,mali-d71"
|
|
||||||
- reg: Physical base address and length of the registers in the system
|
|
||||||
- interrupts: the interrupt line number of the device in the system
|
|
||||||
- clocks: A list of phandle + clock-specifier pairs, one for each entry
|
|
||||||
in 'clock-names'
|
|
||||||
- clock-names: A list of clock names. It should contain:
|
|
||||||
- "aclk": for the main processor clock
|
|
||||||
- #address-cells: Must be 1
|
|
||||||
- #size-cells: Must be 0
|
|
||||||
- iommus: configure the stream id to IOMMU, Must be configured if want to
|
|
||||||
enable iommu in display. for how to configure this node please reference
|
|
||||||
devicetree/bindings/iommu/arm,smmu-v3.txt,
|
|
||||||
devicetree/bindings/iommu/iommu.txt
|
|
||||||
|
|
||||||
Required properties for sub-node: pipeline@nq
|
|
||||||
Each device contains one or two pipeline sub-nodes (at least one), each
|
|
||||||
pipeline node should provide properties:
|
|
||||||
- reg: Zero-indexed identifier for the pipeline
|
|
||||||
- clocks: A list of phandle + clock-specifier pairs, one for each entry
|
|
||||||
in 'clock-names'
|
|
||||||
- clock-names: should contain:
|
|
||||||
- "pxclk": pixel clock
|
|
||||||
|
|
||||||
- port: each pipeline connect to an encoder input port. The connection is
|
|
||||||
modeled using the OF graph bindings specified in
|
|
||||||
Documentation/devicetree/bindings/graph.txt
|
|
||||||
|
|
||||||
Optional properties:
|
|
||||||
- memory-region: phandle to a node describing memory (see
|
|
||||||
Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt)
|
|
||||||
to be used for the framebuffer; if not present, the framebuffer may
|
|
||||||
be located anywhere in memory.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
/ {
|
|
||||||
...
|
|
||||||
|
|
||||||
dp0: display@c00000 {
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
compatible = "arm,mali-d71";
|
|
||||||
reg = <0xc00000 0x20000>;
|
|
||||||
interrupts = <0 168 4>;
|
|
||||||
clocks = <&dpu_aclk>;
|
|
||||||
clock-names = "aclk";
|
|
||||||
iommus = <&smmu 0>, <&smmu 1>, <&smmu 2>, <&smmu 3>,
|
|
||||||
<&smmu 4>, <&smmu 5>, <&smmu 6>, <&smmu 7>,
|
|
||||||
<&smmu 8>, <&smmu 9>;
|
|
||||||
|
|
||||||
dp0_pipe0: pipeline@0 {
|
|
||||||
clocks = <&fpgaosc2>;
|
|
||||||
clock-names = "pxclk";
|
|
||||||
reg = <0>;
|
|
||||||
|
|
||||||
port {
|
|
||||||
dp0_pipe0_out: endpoint {
|
|
||||||
remote-endpoint = <&db_dvi0_in>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
dp0_pipe1: pipeline@1 {
|
|
||||||
clocks = <&fpgaosc2>;
|
|
||||||
clock-names = "pxclk";
|
|
||||||
reg = <1>;
|
|
||||||
|
|
||||||
port {
|
|
||||||
dp0_pipe1_out: endpoint {
|
|
||||||
remote-endpoint = <&db_dvi1_in>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
...
|
|
||||||
};
|
|
130
Documentation/devicetree/bindings/display/arm,komeda.yaml
Normal file
130
Documentation/devicetree/bindings/display/arm,komeda.yaml
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/display/arm,komeda.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Arm Komeda display processor
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Liviu Dudau <Liviu.Dudau@arm.com>
|
||||||
|
- Andre Przywara <andre.przywara@arm.com>
|
||||||
|
|
||||||
|
description:
|
||||||
|
The Arm Mali D71 display processor supports up to two displays with up
|
||||||
|
to a 4K resolution each. Each pipeline can be composed of up to four
|
||||||
|
layers. It is typically connected to a digital display connector like HDMI.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
oneOf:
|
||||||
|
- items:
|
||||||
|
- const: arm,mali-d32
|
||||||
|
- const: arm,mali-d71
|
||||||
|
- const: arm,mali-d71
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
clock-names:
|
||||||
|
const: aclk
|
||||||
|
|
||||||
|
clocks:
|
||||||
|
maxItems: 1
|
||||||
|
description: The main DPU processor clock
|
||||||
|
|
||||||
|
"#address-cells":
|
||||||
|
const: 1
|
||||||
|
|
||||||
|
"#size-cells":
|
||||||
|
const: 0
|
||||||
|
|
||||||
|
memory-region:
|
||||||
|
maxItems: 1
|
||||||
|
description:
|
||||||
|
Phandle to a node describing memory to be used for the framebuffer.
|
||||||
|
If not present, the framebuffer may be located anywhere in memory.
|
||||||
|
|
||||||
|
iommus:
|
||||||
|
description:
|
||||||
|
The stream IDs for each of the used pipelines, each four IDs for the
|
||||||
|
four layers, plus one for the write-back stream.
|
||||||
|
minItems: 5
|
||||||
|
maxItems: 10
|
||||||
|
|
||||||
|
patternProperties:
|
||||||
|
'^pipeline@[01]$':
|
||||||
|
type: object
|
||||||
|
description:
|
||||||
|
clocks
|
||||||
|
|
||||||
|
properties:
|
||||||
|
reg:
|
||||||
|
enum: [ 0, 1 ]
|
||||||
|
|
||||||
|
clock-names:
|
||||||
|
const: pxclk
|
||||||
|
|
||||||
|
clocks:
|
||||||
|
maxItems: 1
|
||||||
|
description: The input reference for the pixel clock.
|
||||||
|
|
||||||
|
port:
|
||||||
|
$ref: /schemas/graph.yaml#/$defs/port-base
|
||||||
|
unevaluatedProperties: false
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
required:
|
||||||
|
- "#address-cells"
|
||||||
|
- "#size-cells"
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- interrupts
|
||||||
|
- clock-names
|
||||||
|
- clocks
|
||||||
|
- pipeline@0
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
display@c00000 {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
compatible = "arm,mali-d71";
|
||||||
|
reg = <0xc00000 0x20000>;
|
||||||
|
interrupts = <168>;
|
||||||
|
clocks = <&dpu_aclk>;
|
||||||
|
clock-names = "aclk";
|
||||||
|
iommus = <&smmu 0>, <&smmu 1>, <&smmu 2>, <&smmu 3>,
|
||||||
|
<&smmu 8>,
|
||||||
|
<&smmu 4>, <&smmu 5>, <&smmu 6>, <&smmu 7>,
|
||||||
|
<&smmu 9>;
|
||||||
|
|
||||||
|
dp0_pipe0: pipeline@0 {
|
||||||
|
clocks = <&fpgaosc2>;
|
||||||
|
clock-names = "pxclk";
|
||||||
|
reg = <0>;
|
||||||
|
|
||||||
|
port {
|
||||||
|
dp0_pipe0_out: endpoint {
|
||||||
|
remote-endpoint = <&db_dvi0_in>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
dp0_pipe1: pipeline@1 {
|
||||||
|
clocks = <&fpgaosc2>;
|
||||||
|
clock-names = "pxclk";
|
||||||
|
reg = <1>;
|
||||||
|
|
||||||
|
port {
|
||||||
|
dp0_pipe1_out: endpoint {
|
||||||
|
remote-endpoint = <&db_dvi1_in>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
...
|
@ -1,68 +0,0 @@
|
|||||||
ARM Mali-DP
|
|
||||||
|
|
||||||
The following bindings apply to a family of Display Processors sold as
|
|
||||||
licensable IP by ARM Ltd. The bindings describe the Mali DP500, DP550 and
|
|
||||||
DP650 processors that offer multiple composition layers, support for
|
|
||||||
rotation and scaling output.
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible: should be one of
|
|
||||||
"arm,mali-dp500"
|
|
||||||
"arm,mali-dp550"
|
|
||||||
"arm,mali-dp650"
|
|
||||||
depending on the particular implementation present in the hardware
|
|
||||||
- reg: Physical base address and size of the block of registers used by
|
|
||||||
the processor.
|
|
||||||
- interrupts: Interrupt list, as defined in ../interrupt-controller/interrupts.txt,
|
|
||||||
interrupt client nodes.
|
|
||||||
- interrupt-names: name of the engine inside the processor that will
|
|
||||||
use the corresponding interrupt. Should be one of "DE" or "SE".
|
|
||||||
- clocks: A list of phandle + clock-specifier pairs, one for each entry
|
|
||||||
in 'clock-names'
|
|
||||||
- clock-names: A list of clock names. It should contain:
|
|
||||||
- "pclk": for the APB interface clock
|
|
||||||
- "aclk": for the AXI interface clock
|
|
||||||
- "mclk": for the main processor clock
|
|
||||||
- "pxlclk": for the pixel clock feeding the output PLL of the processor.
|
|
||||||
- arm,malidp-output-port-lines: Array of u8 values describing the number
|
|
||||||
of output lines per channel (R, G and B).
|
|
||||||
|
|
||||||
Required sub-nodes:
|
|
||||||
- port: The Mali DP connection to an encoder input port. The connection
|
|
||||||
is modelled using the OF graph bindings specified in
|
|
||||||
Documentation/devicetree/bindings/graph.txt
|
|
||||||
|
|
||||||
Optional properties:
|
|
||||||
- memory-region: phandle to a node describing memory (see
|
|
||||||
Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt)
|
|
||||||
to be used for the framebuffer; if not present, the framebuffer may
|
|
||||||
be located anywhere in memory.
|
|
||||||
- arm,malidp-arqos-high-level: integer of u32 value describing the ARQoS
|
|
||||||
levels of DP500's QoS signaling.
|
|
||||||
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
/ {
|
|
||||||
...
|
|
||||||
|
|
||||||
dp0: malidp@6f200000 {
|
|
||||||
compatible = "arm,mali-dp650";
|
|
||||||
reg = <0 0x6f200000 0 0x20000>;
|
|
||||||
memory-region = <&display_reserved>;
|
|
||||||
interrupts = <0 168 IRQ_TYPE_LEVEL_HIGH>,
|
|
||||||
<0 168 IRQ_TYPE_LEVEL_HIGH>;
|
|
||||||
interrupt-names = "DE", "SE";
|
|
||||||
clocks = <&oscclk2>, <&fpgaosc0>, <&fpgaosc1>, <&fpgaosc1>;
|
|
||||||
clock-names = "pxlclk", "mclk", "aclk", "pclk";
|
|
||||||
arm,malidp-output-port-lines = /bits/ 8 <8 8 8>;
|
|
||||||
arm,malidp-arqos-high-level = <0xd000d000>;
|
|
||||||
port {
|
|
||||||
dp0_output: endpoint {
|
|
||||||
remote-endpoint = <&tda998x_2_input>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
...
|
|
||||||
};
|
|
124
Documentation/devicetree/bindings/display/arm,malidp.yaml
Normal file
124
Documentation/devicetree/bindings/display/arm,malidp.yaml
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/display/arm,malidp.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Arm Mali Display Processor (Mali-DP) binding
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Liviu Dudau <Liviu.Dudau@arm.com>
|
||||||
|
- Andre Przywara <andre.przywara@arm.com>
|
||||||
|
|
||||||
|
description:
|
||||||
|
The following bindings apply to a family of Display Processors sold as
|
||||||
|
licensable IP by ARM Ltd. The bindings describe the Mali DP500, DP550 and
|
||||||
|
DP650 processors that offer multiple composition layers, support for
|
||||||
|
rotation and scaling output.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
enum:
|
||||||
|
- arm,mali-dp500
|
||||||
|
- arm,mali-dp550
|
||||||
|
- arm,mali-dp650
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
items:
|
||||||
|
- description:
|
||||||
|
The interrupt used by the Display Engine (DE). Can be shared with
|
||||||
|
the interrupt for the Scaling Engine (SE), but it will have to be
|
||||||
|
listed individually.
|
||||||
|
- description:
|
||||||
|
The interrupt used by the Scaling Engine (SE). Can be shared with
|
||||||
|
the interrupt for the Display Engine (DE), but it will have to be
|
||||||
|
listed individually.
|
||||||
|
|
||||||
|
interrupt-names:
|
||||||
|
items:
|
||||||
|
- const: DE
|
||||||
|
- const: SE
|
||||||
|
|
||||||
|
clock-names:
|
||||||
|
items:
|
||||||
|
- const: pxlclk
|
||||||
|
- const: mclk
|
||||||
|
- const: aclk
|
||||||
|
- const: pclk
|
||||||
|
|
||||||
|
clocks:
|
||||||
|
items:
|
||||||
|
- description: the pixel clock feeding the output PLL of the processor
|
||||||
|
- description: the main processor clock
|
||||||
|
- description: the AXI interface clock
|
||||||
|
- description: the APB interface clock
|
||||||
|
|
||||||
|
memory-region:
|
||||||
|
maxItems: 1
|
||||||
|
description:
|
||||||
|
Phandle to a node describing memory to be used for the framebuffer.
|
||||||
|
If not present, the framebuffer may be located anywhere in memory.
|
||||||
|
|
||||||
|
arm,malidp-output-port-lines:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint8-array
|
||||||
|
description:
|
||||||
|
Number of output lines/bits for each colour channel.
|
||||||
|
items:
|
||||||
|
- description: number of output lines for the red channel (R)
|
||||||
|
- description: number of output lines for the green channel (G)
|
||||||
|
- description: number of output lines for the blue channel (B)
|
||||||
|
|
||||||
|
arm,malidp-arqos-high-level:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description:
|
||||||
|
integer describing the ARQoS levels of DP500's QoS signaling
|
||||||
|
|
||||||
|
arm,malidp-arqos-value:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description:
|
||||||
|
Quality-of-Service value for the display engine FIFOs, to write
|
||||||
|
into the RQOS register of the DP500.
|
||||||
|
See the ARM Mali-DP500 TRM for details on the encoding.
|
||||||
|
If omitted, the RQOS register will not be changed.
|
||||||
|
|
||||||
|
port:
|
||||||
|
$ref: /schemas/graph.yaml#/properties/port
|
||||||
|
unevaluatedProperties: false
|
||||||
|
description:
|
||||||
|
Output endpoint of the controller, connecting the LCD panel signals.
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- interrupts
|
||||||
|
- interrupt-names
|
||||||
|
- clocks
|
||||||
|
- clock-names
|
||||||
|
- port
|
||||||
|
- arm,malidp-output-port-lines
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
dp0: malidp@6f200000 {
|
||||||
|
compatible = "arm,mali-dp650";
|
||||||
|
reg = <0x6f200000 0x20000>;
|
||||||
|
memory-region = <&display_reserved>;
|
||||||
|
interrupts = <168>, <168>;
|
||||||
|
interrupt-names = "DE", "SE";
|
||||||
|
clocks = <&oscclk2>, <&fpgaosc0>, <&fpgaosc1>, <&fpgaosc1>;
|
||||||
|
clock-names = "pxlclk", "mclk", "aclk", "pclk";
|
||||||
|
arm,malidp-output-port-lines = /bits/ 8 <8 8 8>;
|
||||||
|
arm,malidp-arqos-high-level = <0xd000d000>;
|
||||||
|
|
||||||
|
port {
|
||||||
|
dp0_output: endpoint {
|
||||||
|
remote-endpoint = <&tda998x_2_input>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
...
|
@ -1,110 +0,0 @@
|
|||||||
* ARM PrimeCell Color LCD Controller PL110/PL111
|
|
||||||
|
|
||||||
See also Documentation/devicetree/bindings/arm/primecell.yaml
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
|
|
||||||
- compatible: must be one of:
|
|
||||||
"arm,pl110", "arm,primecell"
|
|
||||||
"arm,pl111", "arm,primecell"
|
|
||||||
|
|
||||||
- reg: base address and size of the control registers block
|
|
||||||
|
|
||||||
- interrupt-names: either the single entry "combined" representing a
|
|
||||||
combined interrupt output (CLCDINTR), or the four entries
|
|
||||||
"mbe", "vcomp", "lnbu", "fuf" representing the individual
|
|
||||||
CLCDMBEINTR, CLCDVCOMPINTR, CLCDLNBUINTR, CLCDFUFINTR interrupts
|
|
||||||
|
|
||||||
- interrupts: contains an interrupt specifier for each entry in
|
|
||||||
interrupt-names
|
|
||||||
|
|
||||||
- clock-names: should contain "clcdclk" and "apb_pclk"
|
|
||||||
|
|
||||||
- clocks: contains phandle and clock specifier pairs for the entries
|
|
||||||
in the clock-names property. See
|
|
||||||
Documentation/devicetree/bindings/clock/clock-bindings.txt
|
|
||||||
|
|
||||||
Optional properties:
|
|
||||||
|
|
||||||
- memory-region: phandle to a node describing memory (see
|
|
||||||
Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt)
|
|
||||||
to be used for the framebuffer; if not present, the framebuffer
|
|
||||||
may be located anywhere in the memory
|
|
||||||
|
|
||||||
- max-memory-bandwidth: maximum bandwidth in bytes per second that the
|
|
||||||
cell's memory interface can handle; if not present, the memory
|
|
||||||
interface is fast enough to handle all possible video modes
|
|
||||||
|
|
||||||
Required sub-nodes:
|
|
||||||
|
|
||||||
- port: describes LCD panel signals, following the common binding
|
|
||||||
for video transmitter interfaces; see
|
|
||||||
Documentation/devicetree/bindings/media/video-interfaces.txt
|
|
||||||
|
|
||||||
Deprecated properties:
|
|
||||||
The port's endbpoint subnode had this, now deprecated property
|
|
||||||
in the past. Drivers should be able to survive without it:
|
|
||||||
|
|
||||||
- arm,pl11x,tft-r0g0b0-pads: an array of three 32-bit values,
|
|
||||||
defining the way CLD pads are wired up; first value
|
|
||||||
contains index of the "CLD" external pin (pad) used
|
|
||||||
as R0 (first bit of the red component), second value
|
|
||||||
index of the pad used as G0, third value index of the
|
|
||||||
pad used as B0, see also "LCD panel signal multiplexing
|
|
||||||
details" paragraphs in the PL110/PL111 Technical
|
|
||||||
Reference Manuals; this implicitly defines available
|
|
||||||
color modes, for example:
|
|
||||||
- PL111 TFT 4:4:4 panel:
|
|
||||||
arm,pl11x,tft-r0g0b0-pads = <4 15 20>;
|
|
||||||
- PL110 TFT (1:)5:5:5 panel:
|
|
||||||
arm,pl11x,tft-r0g0b0-pads = <1 7 13>;
|
|
||||||
- PL111 TFT (1:)5:5:5 panel:
|
|
||||||
arm,pl11x,tft-r0g0b0-pads = <3 11 19>;
|
|
||||||
- PL111 TFT 5:6:5 panel:
|
|
||||||
arm,pl11x,tft-r0g0b0-pads = <3 10 19>;
|
|
||||||
- PL110 and PL111 TFT 8:8:8 panel:
|
|
||||||
arm,pl11x,tft-r0g0b0-pads = <0 8 16>;
|
|
||||||
- PL110 and PL111 TFT 8:8:8 panel, R & B components swapped:
|
|
||||||
arm,pl11x,tft-r0g0b0-pads = <16 8 0>;
|
|
||||||
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
clcd@10020000 {
|
|
||||||
compatible = "arm,pl111", "arm,primecell";
|
|
||||||
reg = <0x10020000 0x1000>;
|
|
||||||
interrupt-names = "combined";
|
|
||||||
interrupts = <0 44 4>;
|
|
||||||
clocks = <&oscclk1>, <&oscclk2>;
|
|
||||||
clock-names = "clcdclk", "apb_pclk";
|
|
||||||
max-memory-bandwidth = <94371840>; /* Bps, 1024x768@60 16bpp */
|
|
||||||
|
|
||||||
port {
|
|
||||||
clcd_pads: endpoint {
|
|
||||||
remote-endpoint = <&clcd_panel>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
panel {
|
|
||||||
compatible = "panel-dpi";
|
|
||||||
|
|
||||||
port {
|
|
||||||
clcd_panel: endpoint {
|
|
||||||
remote-endpoint = <&clcd_pads>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
panel-timing {
|
|
||||||
clock-frequency = <25175000>;
|
|
||||||
hactive = <640>;
|
|
||||||
hback-porch = <40>;
|
|
||||||
hfront-porch = <24>;
|
|
||||||
hsync-len = <96>;
|
|
||||||
vactive = <480>;
|
|
||||||
vback-porch = <32>;
|
|
||||||
vfront-porch = <11>;
|
|
||||||
vsync-len = <2>;
|
|
||||||
};
|
|
||||||
};
|
|
183
Documentation/devicetree/bindings/display/arm,pl11x.yaml
Normal file
183
Documentation/devicetree/bindings/display/arm,pl11x.yaml
Normal file
@ -0,0 +1,183 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/display/arm,pl11x.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Arm PrimeCell Color LCD Controller PL110/PL111
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Liviu Dudau <Liviu.Dudau@arm.com>
|
||||||
|
- Andre Przywara <andre.przywara@arm.com>
|
||||||
|
|
||||||
|
description:
|
||||||
|
The Arm Primcell PL010/PL111 is an LCD controller IP, than scans out
|
||||||
|
a framebuffer region in system memory, and creates timed signals for
|
||||||
|
a variety of LCD panels.
|
||||||
|
|
||||||
|
# We need a select here so we don't match all nodes with 'arm,primecell'
|
||||||
|
select:
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
contains:
|
||||||
|
enum:
|
||||||
|
- arm,pl110
|
||||||
|
- arm,pl111
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
items:
|
||||||
|
- enum:
|
||||||
|
- arm,pl110
|
||||||
|
- arm,pl111
|
||||||
|
- const: arm,primecell
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
interrupt-names:
|
||||||
|
oneOf:
|
||||||
|
- const: combined
|
||||||
|
description:
|
||||||
|
The IP provides four individual interrupt lines, but also one
|
||||||
|
combined line. If the integration only connects this line to the
|
||||||
|
interrupt controller, this single interrupt is noted here.
|
||||||
|
- items:
|
||||||
|
- const: mbe # CLCDMBEINTR
|
||||||
|
- const: vcomp # CLCDVCOMPINTR
|
||||||
|
- const: lnbu # CLCDLNBUINTR
|
||||||
|
- const: fuf # CLCDFUFINTR
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
minItems: 1
|
||||||
|
maxItems: 4
|
||||||
|
|
||||||
|
clock-names:
|
||||||
|
items:
|
||||||
|
- const: clcdclk
|
||||||
|
- const: apb_pclk
|
||||||
|
|
||||||
|
clocks:
|
||||||
|
items:
|
||||||
|
- description: The CLCDCLK reference clock for the controller.
|
||||||
|
- description: The HCLK AHB slave clock for the register access.
|
||||||
|
|
||||||
|
memory-region:
|
||||||
|
maxItems: 1
|
||||||
|
description:
|
||||||
|
Phandle to a node describing memory to be used for the framebuffer.
|
||||||
|
If not present, the framebuffer may be located anywhere in memory.
|
||||||
|
|
||||||
|
max-memory-bandwidth:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description:
|
||||||
|
Maximum bandwidth in bytes per second that the cell's memory interface
|
||||||
|
can handle.
|
||||||
|
If not present, the memory interface is fast enough to handle all
|
||||||
|
possible video modes.
|
||||||
|
|
||||||
|
port:
|
||||||
|
$ref: /schemas/graph.yaml#/$defs/port-base
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
description:
|
||||||
|
Output endpoint of the controller, connecting the LCD panel signals.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
endpoint:
|
||||||
|
$ref: /schemas/graph.yaml#/$defs/endpoint-base
|
||||||
|
unevaluatedProperties: false
|
||||||
|
|
||||||
|
properties:
|
||||||
|
arm,pl11x,tft-r0g0b0-pads:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||||
|
items:
|
||||||
|
- description: index of CLD pad used for first red bit (R0)
|
||||||
|
- description: index of CLD pad used for first green bit (G0)
|
||||||
|
- description: index of CLD pad used for first blue bit (G0)
|
||||||
|
deprecated: true
|
||||||
|
description: |
|
||||||
|
DEPRECATED. An array of three 32-bit values, defining the way
|
||||||
|
CLD[23:0] pads are wired up.
|
||||||
|
The first value contains the index of the "CLD" external pin (pad)
|
||||||
|
used as R0 (first bit of the red component), the second value for
|
||||||
|
green, the third value for blue.
|
||||||
|
See also "LCD panel signal multiplexing details" paragraphs in the
|
||||||
|
PL110/PL111 Technical Reference Manuals.
|
||||||
|
This implicitly defines available color modes, for example:
|
||||||
|
- PL111 TFT 4:4:4 panel:
|
||||||
|
arm,pl11x,tft-r0g0b0-pads = <4 15 20>;
|
||||||
|
- PL110 TFT (1:)5:5:5 panel:
|
||||||
|
arm,pl11x,tft-r0g0b0-pads = <1 7 13>;
|
||||||
|
- PL111 TFT (1:)5:5:5 panel:
|
||||||
|
arm,pl11x,tft-r0g0b0-pads = <3 11 19>;
|
||||||
|
- PL111 TFT 5:6:5 panel:
|
||||||
|
arm,pl11x,tft-r0g0b0-pads = <3 10 19>;
|
||||||
|
- PL110 and PL111 TFT 8:8:8 panel:
|
||||||
|
arm,pl11x,tft-r0g0b0-pads = <0 8 16>;
|
||||||
|
- PL110 and PL111 TFT 8:8:8 panel, R & B components swapped:
|
||||||
|
arm,pl11x,tft-r0g0b0-pads = <16 8 0>;
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- clock-names
|
||||||
|
- clocks
|
||||||
|
- port
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- if:
|
||||||
|
properties:
|
||||||
|
interrupts:
|
||||||
|
minItems: 2
|
||||||
|
required:
|
||||||
|
- interrupts
|
||||||
|
then:
|
||||||
|
required:
|
||||||
|
- interrupt-names
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
clcd@10020000 {
|
||||||
|
compatible = "arm,pl111", "arm,primecell";
|
||||||
|
reg = <0x10020000 0x1000>;
|
||||||
|
interrupt-names = "combined";
|
||||||
|
interrupts = <44>;
|
||||||
|
clocks = <&oscclk1>, <&oscclk2>;
|
||||||
|
clock-names = "clcdclk", "apb_pclk";
|
||||||
|
max-memory-bandwidth = <94371840>; /* Bps, 1024x768@60 16bpp */
|
||||||
|
|
||||||
|
port {
|
||||||
|
clcd_pads: endpoint {
|
||||||
|
remote-endpoint = <&clcd_panel>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
panel {
|
||||||
|
compatible = "arm,rtsm-display", "panel-dpi";
|
||||||
|
power-supply = <&vcc_supply>;
|
||||||
|
|
||||||
|
port {
|
||||||
|
clcd_panel: endpoint {
|
||||||
|
remote-endpoint = <&clcd_pads>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
panel-timing {
|
||||||
|
clock-frequency = <25175000>;
|
||||||
|
hactive = <640>;
|
||||||
|
hback-porch = <40>;
|
||||||
|
hfront-porch = <24>;
|
||||||
|
hsync-len = <96>;
|
||||||
|
vactive = <480>;
|
||||||
|
vback-porch = <32>;
|
||||||
|
vfront-porch = <11>;
|
||||||
|
vsync-len = <2>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
...
|
@ -78,4 +78,3 @@ examples:
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -119,4 +119,3 @@ examples:
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -58,6 +58,7 @@ properties:
|
|||||||
|
|
||||||
properties:
|
properties:
|
||||||
data-lines:
|
data-lines:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
enum: [ 16, 18, 24 ]
|
enum: [ 16, 18, 24 ]
|
||||||
|
|
||||||
port@1:
|
port@1:
|
||||||
|
@ -105,4 +105,3 @@ examples:
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -102,4 +102,3 @@ examples:
|
|||||||
clock-names = "merge";
|
clock-names = "merge";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -75,4 +75,3 @@ examples:
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
...
|
...
|
||||||
|
|
||||||
|
@ -50,4 +50,3 @@ examples:
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
...
|
...
|
||||||
|
|
||||||
|
@ -146,6 +146,7 @@ properties:
|
|||||||
Horizontal sync pulse.
|
Horizontal sync pulse.
|
||||||
0 selects active low, 1 selects active high.
|
0 selects active low, 1 selects active high.
|
||||||
If omitted then it is not used by the hardware
|
If omitted then it is not used by the hardware
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
enum: [0, 1]
|
enum: [0, 1]
|
||||||
|
|
||||||
vsync-active:
|
vsync-active:
|
||||||
@ -153,6 +154,7 @@ properties:
|
|||||||
Vertical sync pulse.
|
Vertical sync pulse.
|
||||||
0 selects active low, 1 selects active high.
|
0 selects active low, 1 selects active high.
|
||||||
If omitted then it is not used by the hardware
|
If omitted then it is not used by the hardware
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
enum: [0, 1]
|
enum: [0, 1]
|
||||||
|
|
||||||
de-active:
|
de-active:
|
||||||
@ -160,6 +162,7 @@ properties:
|
|||||||
Data enable.
|
Data enable.
|
||||||
0 selects active low, 1 selects active high.
|
0 selects active low, 1 selects active high.
|
||||||
If omitted then it is not used by the hardware
|
If omitted then it is not used by the hardware
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
enum: [0, 1]
|
enum: [0, 1]
|
||||||
|
|
||||||
pixelclk-active:
|
pixelclk-active:
|
||||||
@ -169,6 +172,7 @@ properties:
|
|||||||
sample data on rising edge.
|
sample data on rising edge.
|
||||||
Use 1 to drive pixel data on rising edge and
|
Use 1 to drive pixel data on rising edge and
|
||||||
sample data on falling edge
|
sample data on falling edge
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
enum: [0, 1]
|
enum: [0, 1]
|
||||||
|
|
||||||
syncclk-active:
|
syncclk-active:
|
||||||
@ -179,6 +183,7 @@ properties:
|
|||||||
sample sync on rising edge of pixel clock.
|
sample sync on rising edge of pixel clock.
|
||||||
Use 1 to drive sync on rising edge and
|
Use 1 to drive sync on rising edge and
|
||||||
sample sync on falling edge of pixel clock
|
sample sync on falling edge of pixel clock
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
enum: [0, 1]
|
enum: [0, 1]
|
||||||
|
|
||||||
interlaced:
|
interlaced:
|
||||||
|
@ -24,6 +24,7 @@ properties:
|
|||||||
|
|
||||||
dsi-lanes:
|
dsi-lanes:
|
||||||
description: Number of DSI lanes to be used must be <3> or <4>
|
description: Number of DSI lanes to be used must be <3> or <4>
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
enum: [3, 4]
|
enum: [3, 4]
|
||||||
|
|
||||||
v3p3-supply:
|
v3p3-supply:
|
||||||
|
@ -36,6 +36,7 @@ properties:
|
|||||||
|
|
||||||
init-delay:
|
init-delay:
|
||||||
description: delay after initialization sequence [ms]
|
description: delay after initialization sequence [ms]
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
|
||||||
panel-width-mm:
|
panel-width-mm:
|
||||||
description: physical panel width [mm]
|
description: physical panel width [mm]
|
||||||
|
@ -63,4 +63,3 @@ examples:
|
|||||||
compatible = "sprd,display-subsystem";
|
compatible = "sprd,display-subsystem";
|
||||||
ports = <&dpu_out>;
|
ports = <&dpu_out>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -75,4 +75,3 @@ examples:
|
|||||||
};
|
};
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|
||||||
|
@ -51,4 +51,3 @@ examples:
|
|||||||
};
|
};
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|
||||||
|
@ -104,4 +104,3 @@ examples:
|
|||||||
};
|
};
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|
||||||
|
@ -1 +0,0 @@
|
|||||||
This file has been moved to at24.yaml.
|
|
@ -120,7 +120,9 @@ properties:
|
|||||||
- const: giantec,gt24c32a
|
- const: giantec,gt24c32a
|
||||||
- const: atmel,24c32
|
- const: atmel,24c32
|
||||||
- items:
|
- items:
|
||||||
- const: renesas,r1ex24128
|
- enum:
|
||||||
|
- renesas,r1ex24128
|
||||||
|
- samsung,s524ad0xd1
|
||||||
- const: atmel,24c128
|
- const: atmel,24c128
|
||||||
|
|
||||||
label:
|
label:
|
||||||
|
@ -249,13 +249,13 @@ examples:
|
|||||||
# be overridden or an appropriate parent bus node should be shown (such as on
|
# be overridden or an appropriate parent bus node should be shown (such as on
|
||||||
# i2c buses).
|
# i2c buses).
|
||||||
#
|
#
|
||||||
# Any includes used have to be explicitly included.
|
# Any includes used have to be explicitly included. Use 4-space indentation.
|
||||||
- |
|
- |
|
||||||
node@1000 {
|
node@1000 {
|
||||||
compatible = "vendor,soc4-ip", "vendor,soc1-ip";
|
compatible = "vendor,soc4-ip", "vendor,soc1-ip";
|
||||||
reg = <0x1000 0x80>,
|
reg = <0x1000 0x80>,
|
||||||
<0x3000 0x80>;
|
<0x3000 0x80>;
|
||||||
reg-names = "core", "aux";
|
reg-names = "core", "aux";
|
||||||
interrupts = <10>;
|
interrupts = <10>;
|
||||||
interrupt-controller;
|
interrupt-controller;
|
||||||
};
|
};
|
||||||
|
69
Documentation/devicetree/bindings/gnss/brcm,bcm4751.yaml
Normal file
69
Documentation/devicetree/bindings/gnss/brcm,bcm4751.yaml
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/gnss/brcm,bcm4751.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Broadcom BCM4751 family GNSS Receiver Device Tree Bindings
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Johan Hovold <johan@kernel.org>
|
||||||
|
- Linus Walleij <linus.walleij@linaro.org>
|
||||||
|
|
||||||
|
description:
|
||||||
|
Broadcom GPS chips can be used over the UART or I2C bus. The UART
|
||||||
|
bus requires CTS/RTS support. The number of the capsule is more
|
||||||
|
elaborate than the compatibles BCM4751 may be printed
|
||||||
|
BCM4751IFBG for example.
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- $ref: gnss-common.yaml#
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
enum:
|
||||||
|
- brcm,bcm4751
|
||||||
|
- brcm,bcm4752
|
||||||
|
- brcm,bcm4753
|
||||||
|
|
||||||
|
reg:
|
||||||
|
description:
|
||||||
|
The I2C Address, not required on UART buses.
|
||||||
|
|
||||||
|
vdd-auxin-supply:
|
||||||
|
description:
|
||||||
|
Main voltage supply, pin name VDD_AUXIN, typically connected
|
||||||
|
directly to a battery such as LiIon 3.8V battery or a 2.6V supply.
|
||||||
|
|
||||||
|
vddio-supply:
|
||||||
|
description:
|
||||||
|
IO voltage supply, pin name VDDIO, typically 1.8V
|
||||||
|
|
||||||
|
reset-gpios:
|
||||||
|
maxItems: 1
|
||||||
|
description: An optional active low reset line, should be flagged with
|
||||||
|
GPIO_ACTIVE_LOW.
|
||||||
|
|
||||||
|
enable-gpios:
|
||||||
|
description: Enable GPIO line, connected to pins named REGPU or NSTANDBY.
|
||||||
|
If the line is active low such as NSTANDBY, it should be tagged
|
||||||
|
GPIO_ACTIVE_LOW.
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- enable-gpios
|
||||||
|
|
||||||
|
unevaluatedProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
serial {
|
||||||
|
gnss {
|
||||||
|
compatible = "brcm,bcm4751";
|
||||||
|
vdd-auxin-supply = <&vbat>;
|
||||||
|
reset-gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
|
||||||
|
enable-gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
|
||||||
|
current-speed = <38400>;
|
||||||
|
};
|
||||||
|
};
|
@ -1,35 +0,0 @@
|
|||||||
Mediatek-based GNSS Receiver DT binding
|
|
||||||
|
|
||||||
Mediatek chipsets are used in GNSS-receiver modules produced by several
|
|
||||||
vendors and can use a UART interface.
|
|
||||||
|
|
||||||
Please see Documentation/devicetree/bindings/gnss/gnss.txt for generic
|
|
||||||
properties.
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
|
|
||||||
- compatible : Must be
|
|
||||||
|
|
||||||
"globaltop,pa6h"
|
|
||||||
|
|
||||||
- vcc-supply : Main voltage regulator (pin name: VCC)
|
|
||||||
|
|
||||||
Optional properties:
|
|
||||||
|
|
||||||
- current-speed : Default UART baud rate
|
|
||||||
- gnss-fix-gpios : GPIO used to determine device position fix state
|
|
||||||
(pin name: FIX, 3D_FIX)
|
|
||||||
- reset-gpios : GPIO used to reset the device (pin name: RESET, NRESET)
|
|
||||||
- timepulse-gpios : Time pulse GPIO (pin name: PPS1, 1PPS)
|
|
||||||
- vbackup-supply : Backup voltage regulator (pin name: VBAT, VBACKUP)
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
serial@1234 {
|
|
||||||
compatible = "ns16550a";
|
|
||||||
|
|
||||||
gnss {
|
|
||||||
compatible = "globaltop,pa6h";
|
|
||||||
vcc-supply = <&vcc_3v3>;
|
|
||||||
};
|
|
||||||
};
|
|
59
Documentation/devicetree/bindings/gnss/mediatek.yaml
Normal file
59
Documentation/devicetree/bindings/gnss/mediatek.yaml
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/gnss/mediatek.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Mediatek GNSS Receiver Device Tree Bindings
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Johan Hovold <johan@kernel.org>
|
||||||
|
|
||||||
|
description:
|
||||||
|
Mediatek chipsets are used in GNSS-receiver modules produced by several
|
||||||
|
vendors and can use a UART interface.
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- $ref: gnss-common.yaml#
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: globaltop,pa6h
|
||||||
|
|
||||||
|
vcc-supply:
|
||||||
|
description:
|
||||||
|
Main voltage regulator, pin name VCC.
|
||||||
|
|
||||||
|
reset-gpios:
|
||||||
|
maxItems: 1
|
||||||
|
description: An optional reset line, with names such as RESET or NRESET.
|
||||||
|
If the line is active low it should be flagged with GPIO_ACTIVE_LOW.
|
||||||
|
|
||||||
|
timepulse-gpios:
|
||||||
|
description: Comes with pin names such as PPS1 or 1PPS.
|
||||||
|
|
||||||
|
gnss-fix-gpios:
|
||||||
|
maxItems: 1
|
||||||
|
description: GPIO used to determine device position fix state, pin names
|
||||||
|
FIX or 3D_FIX.
|
||||||
|
|
||||||
|
vbackup-supply:
|
||||||
|
description:
|
||||||
|
Regulator providing backup voltage, pin names such as VBAT or VBACKUP.
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- vcc-supply
|
||||||
|
|
||||||
|
unevaluatedProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
serial {
|
||||||
|
gnss {
|
||||||
|
compatible = "globaltop,pa6h";
|
||||||
|
vcc-supply = <&vcc_3v3>;
|
||||||
|
reset-gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
};
|
@ -26,6 +26,7 @@ properties:
|
|||||||
const: 2
|
const: 2
|
||||||
|
|
||||||
registers-number:
|
registers-number:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
description: Number of daisy-chained shift registers
|
description: Number of daisy-chained shift registers
|
||||||
|
|
||||||
enable-gpios:
|
enable-gpios:
|
||||||
|
@ -53,4 +53,3 @@ examples:
|
|||||||
clocks = <&clock 278>;
|
clocks = <&clock 278>;
|
||||||
clock-names = "rotator";
|
clock-names = "rotator";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -103,4 +103,3 @@ examples:
|
|||||||
adi,pin14-function = "tach4";
|
adi,pin14-function = "tach4";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -36,4 +36,3 @@ examples:
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
...
|
...
|
||||||
|
|
||||||
|
@ -1,53 +0,0 @@
|
|||||||
* MediaTek's I2C controller
|
|
||||||
|
|
||||||
The MediaTek's I2C controller is used to interface with I2C devices.
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible: value should be either of the following.
|
|
||||||
"mediatek,mt2701-i2c", "mediatek,mt6577-i2c": for MediaTek MT2701
|
|
||||||
"mediatek,mt2712-i2c": for MediaTek MT2712
|
|
||||||
"mediatek,mt6577-i2c": for MediaTek MT6577
|
|
||||||
"mediatek,mt6589-i2c": for MediaTek MT6589
|
|
||||||
"mediatek,mt6797-i2c", "mediatek,mt6577-i2c": for MediaTek MT6797
|
|
||||||
"mediatek,mt7622-i2c": for MediaTek MT7622
|
|
||||||
"mediatek,mt7623-i2c", "mediatek,mt6577-i2c": for MediaTek MT7623
|
|
||||||
"mediatek,mt7629-i2c", "mediatek,mt2712-i2c": for MediaTek MT7629
|
|
||||||
"mediatek,mt8168-i2c": for MediaTek MT8168
|
|
||||||
"mediatek,mt8173-i2c": for MediaTek MT8173
|
|
||||||
"mediatek,mt8183-i2c": for MediaTek MT8183
|
|
||||||
"mediatek,mt8186-i2c": for MediaTek MT8186
|
|
||||||
"mediatek,mt8192-i2c": for MediaTek MT8192
|
|
||||||
"mediatek,mt8195-i2c", "mediatek,mt8192-i2c": for MediaTek MT8195
|
|
||||||
"mediatek,mt8516-i2c", "mediatek,mt2712-i2c": for MediaTek MT8516
|
|
||||||
- reg: physical base address of the controller and dma base, length of memory
|
|
||||||
mapped region.
|
|
||||||
- interrupts: interrupt number to the cpu.
|
|
||||||
- clock-div: the fixed value for frequency divider of clock source in i2c
|
|
||||||
module. Each IC may be different.
|
|
||||||
- clocks: clock name from clock manager
|
|
||||||
- clock-names: Must include "main" and "dma", "arb" is for multi-master that
|
|
||||||
one bus has more than two i2c controllers, if enable have-pmic need include
|
|
||||||
"pmic" extra.
|
|
||||||
|
|
||||||
Optional properties:
|
|
||||||
- clock-frequency: Frequency in Hz of the bus when transfer, the default value
|
|
||||||
is 100000.
|
|
||||||
- mediatek,have-pmic: platform can control i2c form special pmic side.
|
|
||||||
Only mt6589 and mt8135 support this feature.
|
|
||||||
- mediatek,use-push-pull: IO config use push-pull mode.
|
|
||||||
- vbus-supply: phandle to the regulator that provides power to SCL/SDA.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
i2c0: i2c@1100d000 {
|
|
||||||
compatible = "mediatek,mt6577-i2c";
|
|
||||||
reg = <0x1100d000 0x70>,
|
|
||||||
<0x11000300 0x80>;
|
|
||||||
interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_LOW>;
|
|
||||||
clock-frequency = <400000>;
|
|
||||||
mediatek,have-pmic;
|
|
||||||
clock-div = <16>;
|
|
||||||
clocks = <&i2c0_ck>, <&ap_dma_ck>;
|
|
||||||
clock-names = "main", "dma";
|
|
||||||
};
|
|
||||||
|
|
118
Documentation/devicetree/bindings/i2c/i2c-mt65xx.yaml
Normal file
118
Documentation/devicetree/bindings/i2c/i2c-mt65xx.yaml
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/i2c/i2c-mt65xx.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: MediaTek I2C controller
|
||||||
|
|
||||||
|
description:
|
||||||
|
This driver interfaces with the native I2C controller present in
|
||||||
|
various MediaTek SoCs.
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- $ref: /schemas/i2c/i2c-controller.yaml#
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Qii Wang <qii.wang@mediatek.com>
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
oneOf:
|
||||||
|
- const: mediatek,mt2712-i2c
|
||||||
|
- const: mediatek,mt6577-i2c
|
||||||
|
- const: mediatek,mt6589-i2c
|
||||||
|
- const: mediatek,mt7622-i2c
|
||||||
|
- const: mediatek,mt8168-i2c
|
||||||
|
- const: mediatek,mt8173-i2c
|
||||||
|
- const: mediatek,mt8183-i2c
|
||||||
|
- const: mediatek,mt8186-i2c
|
||||||
|
- const: mediatek,mt8192-i2c
|
||||||
|
- items:
|
||||||
|
- enum:
|
||||||
|
- mediatek,mt7629-i2c
|
||||||
|
- mediatek,mt8516-i2c
|
||||||
|
- const: mediatek,mt2712-i2c
|
||||||
|
- items:
|
||||||
|
- enum:
|
||||||
|
- mediatek,mt2701-i2c
|
||||||
|
- mediatek,mt6797-i2c
|
||||||
|
- mediatek,mt7623-i2c
|
||||||
|
- const: mediatek,mt6577-i2c
|
||||||
|
- items:
|
||||||
|
- enum:
|
||||||
|
- mediatek,mt8195-i2c
|
||||||
|
- const: mediatek,mt8192-i2c
|
||||||
|
|
||||||
|
reg:
|
||||||
|
items:
|
||||||
|
- description: Physical base address
|
||||||
|
- description: DMA base address
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
clocks:
|
||||||
|
minItems: 2
|
||||||
|
items:
|
||||||
|
- description: Main clock for I2C bus
|
||||||
|
- description: Clock for I2C via DMA
|
||||||
|
- description: Bus arbitrator clock
|
||||||
|
- description: Clock for I2C from PMIC
|
||||||
|
|
||||||
|
clock-names:
|
||||||
|
minItems: 2
|
||||||
|
items:
|
||||||
|
- const: main
|
||||||
|
- const: dma
|
||||||
|
- const: arb
|
||||||
|
- const: pmic
|
||||||
|
|
||||||
|
clock-div:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description: Frequency divider of clock source in I2C module
|
||||||
|
|
||||||
|
clock-frequency:
|
||||||
|
default: 100000
|
||||||
|
description:
|
||||||
|
SCL frequency to use (in Hz). If omitted, 100kHz is used.
|
||||||
|
|
||||||
|
mediatek,have-pmic:
|
||||||
|
description: Platform controls I2C from PMIC side
|
||||||
|
type: boolean
|
||||||
|
|
||||||
|
mediatek,use-push-pull:
|
||||||
|
description: Use push-pull mode I/O config
|
||||||
|
type: boolean
|
||||||
|
|
||||||
|
vbus-supply:
|
||||||
|
description: Phandle to the regulator providing power to SCL/SDA
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- clocks
|
||||||
|
- clock-names
|
||||||
|
- clock-div
|
||||||
|
- interrupts
|
||||||
|
|
||||||
|
unevaluatedProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
|
|
||||||
|
i2c0: i2c@1100d000 {
|
||||||
|
compatible = "mediatek,mt6577-i2c";
|
||||||
|
reg = <0x1100d000 0x70>, <0x11000300 0x80>;
|
||||||
|
interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_LOW>;
|
||||||
|
clocks = <&i2c0_ck>, <&ap_dma_ck>;
|
||||||
|
clock-names = "main", "dma";
|
||||||
|
clock-div = <16>;
|
||||||
|
clock-frequency = <400000>;
|
||||||
|
mediatek,have-pmic;
|
||||||
|
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
};
|
@ -28,7 +28,6 @@ description: |+
|
|||||||
'------------' '-----' '-----' '-----'
|
'------------' '-----' '-----' '-----'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
allOf:
|
allOf:
|
||||||
- $ref: /schemas/i2c/i2c-mux.yaml#
|
- $ref: /schemas/i2c/i2c-mux.yaml#
|
||||||
|
|
||||||
|
100
Documentation/devicetree/bindings/i2c/qcom,i2c-geni-qcom.yaml
Normal file
100
Documentation/devicetree/bindings/i2c/qcom,i2c-geni-qcom.yaml
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: "http://devicetree.org/schemas/i2c/qcom,i2c-geni-qcom.yaml#"
|
||||||
|
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||||
|
|
||||||
|
title: Qualcomm Geni based QUP I2C Controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Andy Gross <agross@kernel.org>
|
||||||
|
- Bjorn Andersson <bjorn.andersson@linaro.org>
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- $ref: /schemas/i2c/i2c-controller.yaml#
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: qcom,geni-i2c
|
||||||
|
|
||||||
|
clocks:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
clock-names:
|
||||||
|
const: se
|
||||||
|
|
||||||
|
clock-frequency:
|
||||||
|
default: 100000
|
||||||
|
|
||||||
|
dmas:
|
||||||
|
maxItems: 2
|
||||||
|
|
||||||
|
dma-names:
|
||||||
|
items:
|
||||||
|
- const: tx
|
||||||
|
- const: rx
|
||||||
|
|
||||||
|
interconnects:
|
||||||
|
maxItems: 3
|
||||||
|
|
||||||
|
interconnect-names:
|
||||||
|
items:
|
||||||
|
- const: qup-core
|
||||||
|
- const: qup-config
|
||||||
|
- const: qup-memory
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
pinctrl-0: true
|
||||||
|
pinctrl-1: true
|
||||||
|
|
||||||
|
pinctrl-names:
|
||||||
|
minItems: 1
|
||||||
|
items:
|
||||||
|
- const: default
|
||||||
|
- const: sleep
|
||||||
|
|
||||||
|
power-domains:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
required-opps:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- interrupts
|
||||||
|
- clocks
|
||||||
|
- clock-names
|
||||||
|
- reg
|
||||||
|
|
||||||
|
unevaluatedProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||||
|
#include <dt-bindings/clock/qcom,gcc-sc7180.h>
|
||||||
|
#include <dt-bindings/interconnect/qcom,sc7180.h>
|
||||||
|
#include <dt-bindings/power/qcom-rpmpd.h>
|
||||||
|
|
||||||
|
i2c@88000 {
|
||||||
|
compatible = "qcom,geni-i2c";
|
||||||
|
reg = <0x00880000 0x4000>;
|
||||||
|
clock-names = "se";
|
||||||
|
clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&qup_i2c0_default>;
|
||||||
|
interrupts = <GIC_SPI 601 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
interconnects = <&qup_virt MASTER_QUP_CORE_0 0 &qup_virt SLAVE_QUP_CORE_0 0>,
|
||||||
|
<&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_QUP_0 0>,
|
||||||
|
<&aggre1_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>;
|
||||||
|
interconnect-names = "qup-core", "qup-config", "qup-memory";
|
||||||
|
power-domains = <&rpmhpd SC7180_CX>;
|
||||||
|
required-opps = <&rpmhpd_opp_low_svs>;
|
||||||
|
};
|
||||||
|
...
|
@ -1,40 +0,0 @@
|
|||||||
Qualcomm Universal Peripheral (QUP) I2C controller
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible: Should be:
|
|
||||||
* "qcom,i2c-qup-v1.1.1" for 8660, 8960 and 8064.
|
|
||||||
* "qcom,i2c-qup-v2.1.1" for 8974 v1.
|
|
||||||
* "qcom,i2c-qup-v2.2.1" for 8974 v2 and later.
|
|
||||||
- reg: Should contain QUP register address and length.
|
|
||||||
- interrupts: Should contain I2C interrupt.
|
|
||||||
|
|
||||||
- clocks: A list of phandles + clock-specifiers, one for each entry in
|
|
||||||
clock-names.
|
|
||||||
- clock-names: Should contain:
|
|
||||||
* "core" for the core clock
|
|
||||||
* "iface" for the AHB clock
|
|
||||||
|
|
||||||
- #address-cells: Should be <1> Address cells for i2c device address
|
|
||||||
- #size-cells: Should be <0> as i2c addresses have no size component
|
|
||||||
|
|
||||||
Optional properties:
|
|
||||||
- clock-frequency: Should specify the desired i2c bus clock frequency in Hz,
|
|
||||||
defaults to 100kHz if omitted.
|
|
||||||
|
|
||||||
Child nodes should conform to i2c bus binding.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
i2c@f9924000 {
|
|
||||||
compatible = "qcom,i2c-qup-v2.2.1";
|
|
||||||
reg = <0xf9924000 0x1000>;
|
|
||||||
interrupts = <0 96 0>;
|
|
||||||
|
|
||||||
clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
|
|
||||||
clock-names = "core", "iface";
|
|
||||||
|
|
||||||
clock-frequency = <355000>;
|
|
||||||
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
};
|
|
89
Documentation/devicetree/bindings/i2c/qcom,i2c-qup.yaml
Normal file
89
Documentation/devicetree/bindings/i2c/qcom,i2c-qup.yaml
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/i2c/qcom,i2c-qup.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Qualcomm Universal Peripheral (QUP) I2C controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Andy Gross <agross@kernel.org>
|
||||||
|
- Bjorn Andersson <bjorn.andersson@linaro.org>
|
||||||
|
- Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- $ref: /schemas/i2c/i2c-controller.yaml#
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
enum:
|
||||||
|
- qcom,i2c-qup-v1.1.1 # for 8660, 8960 and 8064
|
||||||
|
- qcom,i2c-qup-v2.1.1 # for 8974 v1
|
||||||
|
- qcom,i2c-qup-v2.2.1 # for 8974 v2 and later
|
||||||
|
|
||||||
|
clocks:
|
||||||
|
maxItems: 2
|
||||||
|
|
||||||
|
clock-names:
|
||||||
|
items:
|
||||||
|
- const: core
|
||||||
|
- const: iface
|
||||||
|
|
||||||
|
clock-frequency:
|
||||||
|
default: 100000
|
||||||
|
|
||||||
|
dmas:
|
||||||
|
maxItems: 2
|
||||||
|
|
||||||
|
dma-names:
|
||||||
|
items:
|
||||||
|
- const: tx
|
||||||
|
- const: rx
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
pinctrl-0: true
|
||||||
|
pinctrl-1: true
|
||||||
|
|
||||||
|
pinctrl-names:
|
||||||
|
minItems: 1
|
||||||
|
items:
|
||||||
|
- const: default
|
||||||
|
- const: sleep
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- clock-names
|
||||||
|
- clocks
|
||||||
|
- interrupts
|
||||||
|
- reg
|
||||||
|
|
||||||
|
unevaluatedProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/clock/qcom,gcc-msm8998.h>
|
||||||
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||||
|
|
||||||
|
i2c@c175000 {
|
||||||
|
compatible = "qcom,i2c-qup-v2.2.1";
|
||||||
|
reg = <0x0c175000 0x600>;
|
||||||
|
interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
|
||||||
|
clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>,
|
||||||
|
<&gcc GCC_BLSP1_AHB_CLK>;
|
||||||
|
clock-names = "core", "iface";
|
||||||
|
dmas = <&blsp1_dma 6>, <&blsp1_dma 7>;
|
||||||
|
dma-names = "tx", "rx";
|
||||||
|
pinctrl-names = "default", "sleep";
|
||||||
|
pinctrl-0 = <&blsp1_i2c1_default>;
|
||||||
|
pinctrl-1 = <&blsp1_i2c1_sleep>;
|
||||||
|
clock-frequency = <400000>;
|
||||||
|
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
};
|
@ -19,6 +19,7 @@ properties:
|
|||||||
- enum:
|
- enum:
|
||||||
- renesas,riic-r7s72100 # RZ/A1H
|
- renesas,riic-r7s72100 # RZ/A1H
|
||||||
- renesas,riic-r7s9210 # RZ/A2M
|
- renesas,riic-r7s9210 # RZ/A2M
|
||||||
|
- renesas,riic-r9a07g043 # RZ/G2UL
|
||||||
- renesas,riic-r9a07g044 # RZ/G2{L,LC}
|
- renesas,riic-r9a07g044 # RZ/G2{L,LC}
|
||||||
- renesas,riic-r9a07g054 # RZ/V2L
|
- renesas,riic-r9a07g054 # RZ/V2L
|
||||||
- const: renesas,riic-rz # RZ/A or RZ/G2L
|
- const: renesas,riic-rz # RZ/A or RZ/G2L
|
||||||
@ -75,6 +76,7 @@ if:
|
|||||||
compatible:
|
compatible:
|
||||||
contains:
|
contains:
|
||||||
enum:
|
enum:
|
||||||
|
- renesas,riic-r9a07g043
|
||||||
- renesas,riic-r9a07g044
|
- renesas,riic-r9a07g044
|
||||||
- renesas,riic-r9a07g054
|
- renesas,riic-r9a07g054
|
||||||
then:
|
then:
|
||||||
|
@ -123,7 +123,7 @@ examples:
|
|||||||
samsung,i2c-slave-addr = <0x66>;
|
samsung,i2c-slave-addr = <0x66>;
|
||||||
|
|
||||||
eeprom@50 {
|
eeprom@50 {
|
||||||
compatible = "samsung,s524ad0xd1";
|
compatible = "samsung,s524ad0xd1", "atmel,24c128";
|
||||||
reg = <0x50>;
|
reg = <0x50>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -44,4 +44,3 @@ examples:
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
...
|
...
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ examples:
|
|||||||
spi {
|
spi {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
|
|
||||||
dac@0 {
|
dac@0 {
|
||||||
compatible = "lltc,ltc1660";
|
compatible = "lltc,ltc1660";
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
|
@ -31,6 +31,7 @@ properties:
|
|||||||
type: boolean
|
type: boolean
|
||||||
|
|
||||||
function-row-physmap:
|
function-row-physmap:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||||
minItems: 1
|
minItems: 1
|
||||||
maxItems: 15
|
maxItems: 15
|
||||||
description: |
|
description: |
|
||||||
|
@ -1,27 +0,0 @@
|
|||||||
Ilitek ILI210x/ILI2117/ILI2120/ILI251x touchscreen controller
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible:
|
|
||||||
ilitek,ili210x for ILI210x
|
|
||||||
ilitek,ili2117 for ILI2117
|
|
||||||
ilitek,ili2120 for ILI2120
|
|
||||||
ilitek,ili251x for ILI251x
|
|
||||||
|
|
||||||
- reg: The I2C address of the device
|
|
||||||
|
|
||||||
- interrupts: The sink for the touchscreen's IRQ output
|
|
||||||
See ../interrupt-controller/interrupts.txt
|
|
||||||
|
|
||||||
Optional properties for main touchpad device:
|
|
||||||
|
|
||||||
- reset-gpios: GPIO specifier for the touchscreen's reset pin (active low)
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
touchscreen@41 {
|
|
||||||
compatible = "ilitek,ili251x";
|
|
||||||
reg = <0x41>;
|
|
||||||
interrupt-parent = <&gpio4>;
|
|
||||||
interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
|
|
||||||
reset-gpios = <&gpio5 21 GPIO_ACTIVE_LOW>;
|
|
||||||
};
|
|
@ -15,6 +15,9 @@ allOf:
|
|||||||
properties:
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
enum:
|
enum:
|
||||||
|
- ilitek,ili210x
|
||||||
|
- ilitek,ili2117
|
||||||
|
- ilitek,ili2120
|
||||||
- ilitek,ili2130
|
- ilitek,ili2130
|
||||||
- ilitek,ili2131
|
- ilitek,ili2131
|
||||||
- ilitek,ili2132
|
- ilitek,ili2132
|
||||||
@ -22,11 +25,12 @@ properties:
|
|||||||
- ilitek,ili2322
|
- ilitek,ili2322
|
||||||
- ilitek,ili2323
|
- ilitek,ili2323
|
||||||
- ilitek,ili2326
|
- ilitek,ili2326
|
||||||
|
- ilitek,ili251x
|
||||||
- ilitek,ili2520
|
- ilitek,ili2520
|
||||||
- ilitek,ili2521
|
- ilitek,ili2521
|
||||||
|
|
||||||
reg:
|
reg:
|
||||||
const: 0x41
|
maxItems: 1
|
||||||
|
|
||||||
interrupts:
|
interrupts:
|
||||||
maxItems: 1
|
maxItems: 1
|
||||||
@ -50,7 +54,6 @@ required:
|
|||||||
- compatible
|
- compatible
|
||||||
- reg
|
- reg
|
||||||
- interrupts
|
- interrupts
|
||||||
- reset-gpios
|
|
||||||
|
|
||||||
examples:
|
examples:
|
||||||
- |
|
- |
|
||||||
|
@ -1,53 +0,0 @@
|
|||||||
* Freescale Layerscape external IRQs
|
|
||||||
|
|
||||||
Some Layerscape SOCs (LS1021A, LS1043A, LS1046A
|
|
||||||
LS1088A, LS208xA, LX216xA) support inverting
|
|
||||||
the polarity of certain external interrupt lines.
|
|
||||||
|
|
||||||
The device node must be a child of the node representing the
|
|
||||||
Supplemental Configuration Unit (SCFG).
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible: should be "fsl,<soc-name>-extirq", e.g. "fsl,ls1021a-extirq".
|
|
||||||
"fsl,ls1043a-extirq": for LS1043A, LS1046A.
|
|
||||||
"fsl,ls1088a-extirq": for LS1088A, LS208xA, LX216xA.
|
|
||||||
- #interrupt-cells: Must be 2. The first element is the index of the
|
|
||||||
external interrupt line. The second element is the trigger type.
|
|
||||||
- #address-cells: Must be 0.
|
|
||||||
- interrupt-controller: Identifies the node as an interrupt controller
|
|
||||||
- reg: Specifies the Interrupt Polarity Control Register (INTPCR) in
|
|
||||||
the SCFG or the External Interrupt Control Register (IRQCR) in
|
|
||||||
the ISC.
|
|
||||||
- interrupt-map: Specifies the mapping from external interrupts to GIC
|
|
||||||
interrupts.
|
|
||||||
- interrupt-map-mask: Must be <0xffffffff 0>.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
scfg: scfg@1570000 {
|
|
||||||
compatible = "fsl,ls1021a-scfg", "syscon";
|
|
||||||
reg = <0x0 0x1570000 0x0 0x10000>;
|
|
||||||
big-endian;
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
ranges = <0x0 0x0 0x1570000 0x10000>;
|
|
||||||
|
|
||||||
extirq: interrupt-controller@1ac {
|
|
||||||
compatible = "fsl,ls1021a-extirq";
|
|
||||||
#interrupt-cells = <2>;
|
|
||||||
#address-cells = <0>;
|
|
||||||
interrupt-controller;
|
|
||||||
reg = <0x1ac 4>;
|
|
||||||
interrupt-map =
|
|
||||||
<0 0 &gic GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
|
|
||||||
<1 0 &gic GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>,
|
|
||||||
<2 0 &gic GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>,
|
|
||||||
<3 0 &gic GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>,
|
|
||||||
<4 0 &gic GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
|
|
||||||
<5 0 &gic GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
|
|
||||||
interrupt-map-mask = <0xffffffff 0x0>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
interrupts-extended = <&gic GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
|
|
||||||
<&extirq 1 IRQ_TYPE_LEVEL_LOW>;
|
|
@ -0,0 +1,118 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/interrupt-controller/fsl,ls-extirq.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Freescale Layerscape External Interrupt Controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Shawn Guo <shawnguo@kernel.org>
|
||||||
|
- Li Yang <leoyang.li@nxp.com>
|
||||||
|
|
||||||
|
description: |
|
||||||
|
Some Layerscape SOCs (LS1021A, LS1043A, LS1046A LS1088A, LS208xA,
|
||||||
|
LX216xA) support inverting the polarity of certain external interrupt
|
||||||
|
lines.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
oneOf:
|
||||||
|
- enum:
|
||||||
|
- fsl,ls1021a-extirq
|
||||||
|
- fsl,ls1043a-extirq
|
||||||
|
- fsl,ls1088a-extirq
|
||||||
|
- items:
|
||||||
|
- enum:
|
||||||
|
- fsl,ls1046a-extirq
|
||||||
|
- const: fsl,ls1043a-extirq
|
||||||
|
- items:
|
||||||
|
- enum:
|
||||||
|
- fsl,ls2080a-extirq
|
||||||
|
- fsl,lx2160a-extirq
|
||||||
|
- const: fsl,ls1088a-extirq
|
||||||
|
|
||||||
|
'#interrupt-cells':
|
||||||
|
const: 2
|
||||||
|
|
||||||
|
'#address-cells':
|
||||||
|
const: 0
|
||||||
|
|
||||||
|
interrupt-controller: true
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
description:
|
||||||
|
Specifies the Interrupt Polarity Control Register (INTPCR) in the
|
||||||
|
SCFG or the External Interrupt Control Register (IRQCR) in the ISC.
|
||||||
|
|
||||||
|
interrupt-map:
|
||||||
|
description: Specifies the mapping from external interrupts to GIC interrupts.
|
||||||
|
|
||||||
|
interrupt-map-mask: true
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- '#interrupt-cells'
|
||||||
|
- '#address-cells'
|
||||||
|
- interrupt-controller
|
||||||
|
- reg
|
||||||
|
- interrupt-map
|
||||||
|
- interrupt-map-mask
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- if:
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
contains:
|
||||||
|
enum:
|
||||||
|
- fsl,ls1021a-extirq
|
||||||
|
then:
|
||||||
|
properties:
|
||||||
|
interrupt-map:
|
||||||
|
minItems: 6
|
||||||
|
maxItems: 6
|
||||||
|
interrupt-map-mask:
|
||||||
|
items:
|
||||||
|
- const: 0x7
|
||||||
|
- const: 0
|
||||||
|
- if:
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
contains:
|
||||||
|
enum:
|
||||||
|
- fsl,ls1043a-extirq
|
||||||
|
- fsl,ls1046a-extirq
|
||||||
|
- fsl,ls1088a-extirq
|
||||||
|
- fsl,ls2080a-extirq
|
||||||
|
- fsl,lx2160a-extirq
|
||||||
|
then:
|
||||||
|
properties:
|
||||||
|
interrupt-map:
|
||||||
|
minItems: 12
|
||||||
|
maxItems: 12
|
||||||
|
interrupt-map-mask:
|
||||||
|
items:
|
||||||
|
- const: 0xf
|
||||||
|
- const: 0
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||||
|
interrupt-controller@1ac {
|
||||||
|
compatible = "fsl,ls1021a-extirq";
|
||||||
|
#interrupt-cells = <2>;
|
||||||
|
#address-cells = <0>;
|
||||||
|
interrupt-controller;
|
||||||
|
reg = <0x1ac 4>;
|
||||||
|
interrupt-map =
|
||||||
|
<0 0 &gic GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<1 0 &gic GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<2 0 &gic GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<3 0 &gic GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<4 0 &gic GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<5 0 &gic GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
interrupt-map-mask = <0x7 0x0>;
|
||||||
|
};
|
@ -21,8 +21,9 @@ Properties:
|
|||||||
- "qcom,sc7180-pdc": For SC7180
|
- "qcom,sc7180-pdc": For SC7180
|
||||||
- "qcom,sc7280-pdc": For SC7280
|
- "qcom,sc7280-pdc": For SC7280
|
||||||
- "qcom,sdm845-pdc": For SDM845
|
- "qcom,sdm845-pdc": For SDM845
|
||||||
- "qcom,sdm8250-pdc": For SM8250
|
- "qcom,sm6350-pdc": For SM6350
|
||||||
- "qcom,sdm8350-pdc": For SM8350
|
- "qcom,sm8250-pdc": For SM8250
|
||||||
|
- "qcom,sm8350-pdc": For SM8350
|
||||||
|
|
||||||
- reg:
|
- reg:
|
||||||
Usage: required
|
Usage: required
|
||||||
|
@ -37,12 +37,18 @@ properties:
|
|||||||
hardware supports just a single, combined interrupt line.
|
hardware supports just a single, combined interrupt line.
|
||||||
If provided, then the combined interrupt will be used in preference to
|
If provided, then the combined interrupt will be used in preference to
|
||||||
any others.
|
any others.
|
||||||
- minItems: 2
|
- minItems: 1
|
||||||
items:
|
items:
|
||||||
- const: eventq # Event Queue not empty
|
- enum:
|
||||||
- const: gerror # Global Error activated
|
- eventq # Event Queue not empty
|
||||||
- const: priq # PRI Queue not empty
|
- gerror # Global Error activated
|
||||||
- const: cmdq-sync # CMD_SYNC complete
|
- const: gerror
|
||||||
|
- enum:
|
||||||
|
- cmdq-sync # CMD_SYNC complete
|
||||||
|
- priq # PRI Queue not empty
|
||||||
|
- enum:
|
||||||
|
- cmdq-sync
|
||||||
|
- priq
|
||||||
|
|
||||||
'#iommu-cells':
|
'#iommu-cells':
|
||||||
const: 1
|
const: 1
|
||||||
|
@ -107,4 +107,3 @@ examples:
|
|||||||
power-domains = <&pd_gsc>;
|
power-domains = <&pd_gsc>;
|
||||||
#iommu-cells = <0>;
|
#iommu-cells = <0>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@ properties:
|
|||||||
description: |
|
description: |
|
||||||
kHz; switching frequency.
|
kHz; switching frequency.
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
enum: [ 600, 640, 685, 738, 800, 872, 960, 1066, 1200, 1371, 1600, 1920,
|
enum: [ 600, 640, 685, 738, 800, 872, 960, 1066, 1200, 1371, 1600, 1920,
|
||||||
2400, 3200, 4800, 9600 ]
|
2400, 3200, 4800, 9600 ]
|
||||||
|
|
||||||
qcom,ovp:
|
qcom,ovp:
|
||||||
|
@ -11,7 +11,7 @@ maintainers:
|
|||||||
|
|
||||||
description: |
|
description: |
|
||||||
This module is part of the MT6360 MFD device.
|
This module is part of the MT6360 MFD device.
|
||||||
see Documentation/devicetree/bindings/mfd/mt6360.yaml
|
see Documentation/devicetree/bindings/mfd/mediatek,mt6360.yaml
|
||||||
Add MT6360 LED driver include 2-channel Flash LED with torch/strobe mode,
|
Add MT6360 LED driver include 2-channel Flash LED with torch/strobe mode,
|
||||||
and 4-channel RGB LED support Register/Flash/Breath Mode
|
and 4-channel RGB LED support Register/Flash/Breath Mode
|
||||||
|
|
||||||
|
@ -51,4 +51,3 @@ examples:
|
|||||||
interrupts = <208>, <209>, <210>;
|
interrupts = <208>, <209>, <210>;
|
||||||
#mbox-cells = <1>;
|
#mbox-cells = <1>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -27,6 +27,7 @@ properties:
|
|||||||
- qcom,sm6350-ipcc
|
- qcom,sm6350-ipcc
|
||||||
- qcom,sm8250-ipcc
|
- qcom,sm8250-ipcc
|
||||||
- qcom,sm8350-ipcc
|
- qcom,sm8350-ipcc
|
||||||
|
- qcom,sm8450-ipcc
|
||||||
- qcom,sc7280-ipcc
|
- qcom,sc7280-ipcc
|
||||||
- const: qcom,ipcc
|
- const: qcom,ipcc
|
||||||
|
|
||||||
|
@ -1,127 +0,0 @@
|
|||||||
Xilinx IPI Mailbox Controller
|
|
||||||
========================================
|
|
||||||
|
|
||||||
The Xilinx IPI(Inter Processor Interrupt) mailbox controller is to manage
|
|
||||||
messaging between two Xilinx Zynq UltraScale+ MPSoC IPI agents. Each IPI
|
|
||||||
agent owns registers used for notification and buffers for message.
|
|
||||||
|
|
||||||
+-------------------------------------+
|
|
||||||
| Xilinx ZynqMP IPI Controller |
|
|
||||||
+-------------------------------------+
|
|
||||||
+--------------------------------------------------+
|
|
||||||
ATF | |
|
|
||||||
| |
|
|
||||||
| |
|
|
||||||
+--------------------------+ |
|
|
||||||
| |
|
|
||||||
| |
|
|
||||||
+--------------------------------------------------+
|
|
||||||
+------------------------------------------+
|
|
||||||
| +----------------+ +----------------+ |
|
|
||||||
Hardware | | IPI Agent | | IPI Buffers | |
|
|
||||||
| | Registers | | | |
|
|
||||||
| | | | | |
|
|
||||||
| +----------------+ +----------------+ |
|
|
||||||
| |
|
|
||||||
| Xilinx IPI Agent Block |
|
|
||||||
+------------------------------------------+
|
|
||||||
|
|
||||||
|
|
||||||
Controller Device Node:
|
|
||||||
===========================
|
|
||||||
Required properties:
|
|
||||||
--------------------
|
|
||||||
IPI agent node:
|
|
||||||
- compatible: Shall be: "xlnx,zynqmp-ipi-mailbox"
|
|
||||||
- interrupt-parent: Phandle for the interrupt controller
|
|
||||||
- interrupts: Interrupt information corresponding to the
|
|
||||||
interrupt-names property.
|
|
||||||
- xlnx,ipi-id: local Xilinx IPI agent ID
|
|
||||||
- #address-cells: number of address cells of internal IPI mailbox nodes
|
|
||||||
- #size-cells: number of size cells of internal IPI mailbox nodes
|
|
||||||
|
|
||||||
Internal IPI mailbox node:
|
|
||||||
- reg: IPI buffers address ranges
|
|
||||||
- reg-names: Names of the reg resources. It should have:
|
|
||||||
* local_request_region
|
|
||||||
- IPI request msg buffer written by local and read
|
|
||||||
by remote
|
|
||||||
* local_response_region
|
|
||||||
- IPI response msg buffer written by local and read
|
|
||||||
by remote
|
|
||||||
* remote_request_region
|
|
||||||
- IPI request msg buffer written by remote and read
|
|
||||||
by local
|
|
||||||
* remote_response_region
|
|
||||||
- IPI response msg buffer written by remote and read
|
|
||||||
by local
|
|
||||||
- #mbox-cells: Shall be 1. It contains:
|
|
||||||
* tx(0) or rx(1) channel
|
|
||||||
- xlnx,ipi-id: remote Xilinx IPI agent ID of which the mailbox is
|
|
||||||
connected to.
|
|
||||||
|
|
||||||
Optional properties:
|
|
||||||
--------------------
|
|
||||||
- method: The method of accessing the IPI agent registers.
|
|
||||||
Permitted values are: "smc" and "hvc". Default is
|
|
||||||
"smc".
|
|
||||||
|
|
||||||
Client Device Node:
|
|
||||||
===========================
|
|
||||||
Required properties:
|
|
||||||
--------------------
|
|
||||||
- mboxes: Standard property to specify a mailbox
|
|
||||||
(See ./mailbox.txt)
|
|
||||||
- mbox-names: List of identifier strings for each mailbox
|
|
||||||
channel.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
===========================
|
|
||||||
zynqmp_ipi {
|
|
||||||
compatible = "xlnx,zynqmp-ipi-mailbox";
|
|
||||||
interrupt-parent = <&gic>;
|
|
||||||
interrupts = <0 29 4>;
|
|
||||||
xlnx,ipi-id = <0>;
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
ranges;
|
|
||||||
|
|
||||||
/* APU<->RPU0 IPI mailbox controller */
|
|
||||||
ipi_mailbox_rpu0: mailbox@ff990400 {
|
|
||||||
reg = <0xff990400 0x20>,
|
|
||||||
<0xff990420 0x20>,
|
|
||||||
<0xff990080 0x20>,
|
|
||||||
<0xff9900a0 0x20>;
|
|
||||||
reg-names = "local_request_region",
|
|
||||||
"local_response_region",
|
|
||||||
"remote_request_region",
|
|
||||||
"remote_response_region";
|
|
||||||
#mbox-cells = <1>;
|
|
||||||
xlnx,ipi-id = <1>;
|
|
||||||
};
|
|
||||||
/* APU<->RPU1 IPI mailbox controller */
|
|
||||||
ipi_mailbox_rpu1: mailbox@ff990440 {
|
|
||||||
reg = <0xff990440 0x20>,
|
|
||||||
<0xff990460 0x20>,
|
|
||||||
<0xff990280 0x20>,
|
|
||||||
<0xff9902a0 0x20>;
|
|
||||||
reg-names = "local_request_region",
|
|
||||||
"local_response_region",
|
|
||||||
"remote_request_region",
|
|
||||||
"remote_response_region";
|
|
||||||
#mbox-cells = <1>;
|
|
||||||
xlnx,ipi-id = <2>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
rpu0 {
|
|
||||||
...
|
|
||||||
mboxes = <&ipi_mailbox_rpu0 0>,
|
|
||||||
<&ipi_mailbox_rpu0 1>;
|
|
||||||
mbox-names = "tx", "rx";
|
|
||||||
};
|
|
||||||
rpu1 {
|
|
||||||
...
|
|
||||||
mboxes = <&ipi_mailbox_rpu1 0>,
|
|
||||||
<&ipi_mailbox_rpu1 1>;
|
|
||||||
mbox-names = "tx", "rx";
|
|
||||||
};
|
|
@ -0,0 +1,140 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: "http://devicetree.org/schemas/mailbox/xlnx,zynqmp-ipi-mailbox.yaml#"
|
||||||
|
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||||
|
|
||||||
|
title: Xilinx IPI(Inter Processor Interrupt) mailbox controller
|
||||||
|
|
||||||
|
description: |
|
||||||
|
The Xilinx IPI(Inter Processor Interrupt) mailbox controller is to manage
|
||||||
|
messaging between two Xilinx Zynq UltraScale+ MPSoC IPI agents. Each IPI
|
||||||
|
agent owns registers used for notification and buffers for message.
|
||||||
|
|
||||||
|
+-------------------------------------+
|
||||||
|
| Xilinx ZynqMP IPI Controller |
|
||||||
|
+-------------------------------------+
|
||||||
|
+--------------------------------------------------+
|
||||||
|
TF-A | |
|
||||||
|
| |
|
||||||
|
| |
|
||||||
|
+--------------------------+ |
|
||||||
|
| |
|
||||||
|
| |
|
||||||
|
+--------------------------------------------------+
|
||||||
|
+------------------------------------------+
|
||||||
|
| +----------------+ +----------------+ |
|
||||||
|
Hardware | | IPI Agent | | IPI Buffers | |
|
||||||
|
| | Registers | | | |
|
||||||
|
| | | | | |
|
||||||
|
| +----------------+ +----------------+ |
|
||||||
|
| |
|
||||||
|
| Xilinx IPI Agent Block |
|
||||||
|
+------------------------------------------+
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Shubhrajyoti Datta <shubhrajyoti.datta@xilinx.com>
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: xlnx,zynqmp-ipi-mailbox
|
||||||
|
|
||||||
|
method:
|
||||||
|
description: |
|
||||||
|
The method of calling the PM-API firmware layer.
|
||||||
|
Permitted values are.
|
||||||
|
- "smc" : SMC #0, following the SMCCC
|
||||||
|
- "hvc" : HVC #0, following the SMCCC
|
||||||
|
|
||||||
|
$ref: /schemas/types.yaml#/definitions/string
|
||||||
|
enum:
|
||||||
|
- smc
|
||||||
|
- hvc
|
||||||
|
default: smc
|
||||||
|
|
||||||
|
'#address-cells':
|
||||||
|
const: 2
|
||||||
|
|
||||||
|
'#size-cells':
|
||||||
|
const: 2
|
||||||
|
|
||||||
|
xlnx,ipi-id:
|
||||||
|
description: |
|
||||||
|
Remote Xilinx IPI agent ID of which the mailbox is connected to.
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
ranges: true
|
||||||
|
|
||||||
|
patternProperties:
|
||||||
|
'^mailbox@[0-9a-f]+$':
|
||||||
|
description: Internal ipi mailbox node
|
||||||
|
type: object # DT nodes are json objects
|
||||||
|
properties:
|
||||||
|
xlnx,ipi-id:
|
||||||
|
description:
|
||||||
|
Remote Xilinx IPI agent ID of which the mailbox is connected to.
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
|
||||||
|
'#mbox-cells':
|
||||||
|
const: 1
|
||||||
|
description:
|
||||||
|
It contains tx(0) or rx(1) channel IPI id number.
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 4
|
||||||
|
|
||||||
|
reg-names:
|
||||||
|
items:
|
||||||
|
- const: local_request_region
|
||||||
|
- const: local_response_region
|
||||||
|
- const: remote_request_region
|
||||||
|
- const: remote_response_region
|
||||||
|
|
||||||
|
required:
|
||||||
|
- reg
|
||||||
|
- reg-names
|
||||||
|
- "#mbox-cells"
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- interrupts
|
||||||
|
- '#address-cells'
|
||||||
|
- '#size-cells'
|
||||||
|
- xlnx,ipi-id
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include<dt-bindings/interrupt-controller/arm-gic.h>
|
||||||
|
|
||||||
|
amba {
|
||||||
|
#address-cells = <0x2>;
|
||||||
|
#size-cells = <0x2>;
|
||||||
|
zynqmp-mailbox {
|
||||||
|
compatible = "xlnx,zynqmp-ipi-mailbox";
|
||||||
|
interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
xlnx,ipi-id = <0>;
|
||||||
|
#address-cells = <2>;
|
||||||
|
#size-cells = <2>;
|
||||||
|
ranges;
|
||||||
|
|
||||||
|
mailbox: mailbox@ff9905c0 {
|
||||||
|
reg = <0x0 0xff9905c0 0x0 0x20>,
|
||||||
|
<0x0 0xff9905e0 0x0 0x20>,
|
||||||
|
<0x0 0xff990e80 0x0 0x20>,
|
||||||
|
<0x0 0xff990ea0 0x0 0x20>;
|
||||||
|
reg-names = "local_request_region",
|
||||||
|
"local_response_region",
|
||||||
|
"remote_request_region",
|
||||||
|
"remote_response_region";
|
||||||
|
#mbox-cells = <1>;
|
||||||
|
xlnx,ipi-id = <4>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
...
|
@ -60,7 +60,8 @@ properties:
|
|||||||
enables hot-plug detection.
|
enables hot-plug detection.
|
||||||
|
|
||||||
default-input:
|
default-input:
|
||||||
maxItems: 1
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
enum: [ 0, 1 ]
|
||||||
description:
|
description:
|
||||||
Select which input is selected after reset.
|
Select which input is selected after reset.
|
||||||
|
|
||||||
|
@ -126,4 +126,3 @@ examples:
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
256
Documentation/devicetree/bindings/mfd/mediatek,mt6360.yaml
Normal file
256
Documentation/devicetree/bindings/mfd/mediatek,mt6360.yaml
Normal file
@ -0,0 +1,256 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/mfd/mediatek,mt6360.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: MT6360 PMIC from MediaTek Integrated
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Gene Chen <gene_chen@richtek.com>
|
||||||
|
|
||||||
|
description: |
|
||||||
|
MT6360 is a PMIC device with the following sub modules.
|
||||||
|
It is interfaced to host controller using I2C interface.
|
||||||
|
|
||||||
|
This document describes the binding for PMIC device and its sub module.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: mediatek,mt6360
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
wakeup-source: true
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
interrupt-names:
|
||||||
|
const: IRQB
|
||||||
|
|
||||||
|
interrupt-controller: true
|
||||||
|
|
||||||
|
"#interrupt-cells":
|
||||||
|
const: 1
|
||||||
|
description:
|
||||||
|
The first cell is the IRQ number.
|
||||||
|
|
||||||
|
regulators:
|
||||||
|
$ref: /schemas/regulator/mt6360-regulator.yaml#
|
||||||
|
|
||||||
|
charger:
|
||||||
|
$ref: /schemas/power/supply/mt6360_charger.yaml#
|
||||||
|
|
||||||
|
tcpc:
|
||||||
|
$ref: /schemas/usb/mediatek,mt6360-tcpc.yaml#
|
||||||
|
|
||||||
|
led-controller:
|
||||||
|
$ref: /schemas/leds/leds-mt6360.yaml#
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- interrupts
|
||||||
|
- interrupt-controller
|
||||||
|
- "#interrupt-cells"
|
||||||
|
|
||||||
|
additionalProperties:
|
||||||
|
type: object
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
|
#include <dt-bindings/regulator/mediatek,mt6360-regulator.h>
|
||||||
|
#include <dt-bindings/leds/common.h>
|
||||||
|
#include <dt-bindings/usb/pd.h>
|
||||||
|
i2c {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
pmic@34 {
|
||||||
|
compatible = "mediatek,mt6360";
|
||||||
|
reg = <0x34>;
|
||||||
|
wakeup-source;
|
||||||
|
interrupts-extended = <&gpio26 0 IRQ_TYPE_LEVEL_LOW>;
|
||||||
|
interrupt-names = "IRQB";
|
||||||
|
interrupt-controller;
|
||||||
|
#interrupt-cells = <1>;
|
||||||
|
|
||||||
|
mt6360_charger: charger {
|
||||||
|
compatible = "mediatek,mt6360-chg";
|
||||||
|
richtek,vinovp-microvolt = <14500000>;
|
||||||
|
|
||||||
|
otg_vbus_regulator: usb-otg-vbus-regulator {
|
||||||
|
regulator-compatible = "usb-otg-vbus";
|
||||||
|
regulator-name = "usb-otg-vbus";
|
||||||
|
regulator-min-microvolt = <4425000>;
|
||||||
|
regulator-max-microvolt = <5825000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
led-controller {
|
||||||
|
compatible = "mediatek,mt6360-led";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
multi-led@0 {
|
||||||
|
reg = <0>;
|
||||||
|
function = LED_FUNCTION_INDICATOR;
|
||||||
|
color = <LED_COLOR_ID_RGB>;
|
||||||
|
led-max-microamp = <24000>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
led@0 {
|
||||||
|
reg = <0>;
|
||||||
|
color = <LED_COLOR_ID_RED>;
|
||||||
|
};
|
||||||
|
led@1 {
|
||||||
|
reg = <1>;
|
||||||
|
color = <LED_COLOR_ID_GREEN>;
|
||||||
|
};
|
||||||
|
led@2 {
|
||||||
|
reg = <2>;
|
||||||
|
color = <LED_COLOR_ID_BLUE>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
led@3 {
|
||||||
|
reg = <3>;
|
||||||
|
function = LED_FUNCTION_INDICATOR;
|
||||||
|
color = <LED_COLOR_ID_WHITE>;
|
||||||
|
led-max-microamp = <150000>;
|
||||||
|
};
|
||||||
|
led@4 {
|
||||||
|
reg = <4>;
|
||||||
|
function = LED_FUNCTION_FLASH;
|
||||||
|
color = <LED_COLOR_ID_WHITE>;
|
||||||
|
function-enumerator = <1>;
|
||||||
|
led-max-microamp = <200000>;
|
||||||
|
flash-max-microamp = <500000>;
|
||||||
|
flash-max-timeout-us = <1024000>;
|
||||||
|
};
|
||||||
|
led@5 {
|
||||||
|
reg = <5>;
|
||||||
|
function = LED_FUNCTION_FLASH;
|
||||||
|
color = <LED_COLOR_ID_WHITE>;
|
||||||
|
function-enumerator = <2>;
|
||||||
|
led-max-microamp = <200000>;
|
||||||
|
flash-max-microamp = <500000>;
|
||||||
|
flash-max-timeout-us = <1024000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
regulators {
|
||||||
|
compatible = "mediatek,mt6360-regulator";
|
||||||
|
LDO_VIN3-supply = <&BUCK2>;
|
||||||
|
buck1 {
|
||||||
|
regulator-compatible = "BUCK1";
|
||||||
|
regulator-name = "mt6360,buck1";
|
||||||
|
regulator-min-microvolt = <300000>;
|
||||||
|
regulator-max-microvolt = <1300000>;
|
||||||
|
regulator-allowed-modes = <MT6360_OPMODE_NORMAL
|
||||||
|
MT6360_OPMODE_LP
|
||||||
|
MT6360_OPMODE_ULP>;
|
||||||
|
};
|
||||||
|
BUCK2: buck2 {
|
||||||
|
regulator-compatible = "BUCK2";
|
||||||
|
regulator-name = "mt6360,buck2";
|
||||||
|
regulator-min-microvolt = <300000>;
|
||||||
|
regulator-max-microvolt = <1300000>;
|
||||||
|
regulator-allowed-modes = <MT6360_OPMODE_NORMAL
|
||||||
|
MT6360_OPMODE_LP
|
||||||
|
MT6360_OPMODE_ULP>;
|
||||||
|
};
|
||||||
|
ldo6 {
|
||||||
|
regulator-compatible = "LDO6";
|
||||||
|
regulator-name = "mt6360,ldo6";
|
||||||
|
regulator-min-microvolt = <500000>;
|
||||||
|
regulator-max-microvolt = <2100000>;
|
||||||
|
regulator-allowed-modes = <MT6360_OPMODE_NORMAL
|
||||||
|
MT6360_OPMODE_LP>;
|
||||||
|
};
|
||||||
|
ldo7 {
|
||||||
|
regulator-compatible = "LDO7";
|
||||||
|
regulator-name = "mt6360,ldo7";
|
||||||
|
regulator-min-microvolt = <500000>;
|
||||||
|
regulator-max-microvolt = <2100000>;
|
||||||
|
regulator-allowed-modes = <MT6360_OPMODE_NORMAL
|
||||||
|
MT6360_OPMODE_LP>;
|
||||||
|
};
|
||||||
|
ldo1 {
|
||||||
|
regulator-compatible = "LDO1";
|
||||||
|
regulator-name = "mt6360,ldo1";
|
||||||
|
regulator-min-microvolt = <1200000>;
|
||||||
|
regulator-max-microvolt = <3600000>;
|
||||||
|
regulator-allowed-modes = <MT6360_OPMODE_NORMAL
|
||||||
|
MT6360_OPMODE_LP>;
|
||||||
|
};
|
||||||
|
ldo2 {
|
||||||
|
regulator-compatible = "LDO2";
|
||||||
|
regulator-name = "mt6360,ldo2";
|
||||||
|
regulator-min-microvolt = <1200000>;
|
||||||
|
regulator-max-microvolt = <3600000>;
|
||||||
|
regulator-allowed-modes = <MT6360_OPMODE_NORMAL
|
||||||
|
MT6360_OPMODE_LP>;
|
||||||
|
};
|
||||||
|
ldo3 {
|
||||||
|
regulator-compatible = "LDO3";
|
||||||
|
regulator-name = "mt6360,ldo3";
|
||||||
|
regulator-min-microvolt = <1200000>;
|
||||||
|
regulator-max-microvolt = <3600000>;
|
||||||
|
regulator-allowed-modes = <MT6360_OPMODE_NORMAL
|
||||||
|
MT6360_OPMODE_LP>;
|
||||||
|
};
|
||||||
|
ldo5 {
|
||||||
|
regulator-compatible = "LDO5";
|
||||||
|
regulator-name = "mt6360,ldo5";
|
||||||
|
regulator-min-microvolt = <2700000>;
|
||||||
|
regulator-max-microvolt = <3600000>;
|
||||||
|
regulator-allowed-modes = <MT6360_OPMODE_NORMAL
|
||||||
|
MT6360_OPMODE_LP>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
tcpc {
|
||||||
|
compatible = "mediatek,mt6360-tcpc";
|
||||||
|
interrupts-extended = <&gpio26 3 IRQ_TYPE_LEVEL_LOW>;
|
||||||
|
interrupt-names = "PD_IRQB";
|
||||||
|
|
||||||
|
connector {
|
||||||
|
compatible = "usb-c-connector";
|
||||||
|
label = "USB-C";
|
||||||
|
data-role = "dual";
|
||||||
|
power-role = "dual";
|
||||||
|
try-power-role = "sink";
|
||||||
|
source-pdos = <PDO_FIXED(5000, 1000, PDO_FIXED_DUAL_ROLE | PDO_FIXED_DATA_SWAP)>;
|
||||||
|
sink-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_DUAL_ROLE | PDO_FIXED_DATA_SWAP)>;
|
||||||
|
op-sink-microwatt = <10000000>;
|
||||||
|
|
||||||
|
ports {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
port@0 {
|
||||||
|
reg = <0>;
|
||||||
|
endpoint {
|
||||||
|
remote-endpoint = <&usb_hs>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
port@1 {
|
||||||
|
reg = <1>;
|
||||||
|
endpoint {
|
||||||
|
remote-endpoint = <&usb_ss>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
port@2 {
|
||||||
|
reg = <2>;
|
||||||
|
endpoint {
|
||||||
|
remote-endpoint = <&dp_aux>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
@ -59,7 +59,7 @@ Required properties for peripheral child nodes:
|
|||||||
Optional properties for peripheral child nodes:
|
Optional properties for peripheral child nodes:
|
||||||
- interrupts: Interrupts are specified as a 4-tuple. For more information
|
- interrupts: Interrupts are specified as a 4-tuple. For more information
|
||||||
see:
|
see:
|
||||||
Documentation/devicetree/bindings/spmi/qcom,spmi-pmic-arb.txt
|
Documentation/devicetree/bindings/spmi/qcom,spmi-pmic-arb.yaml
|
||||||
- interrupt-names: Corresponding interrupt name to the interrupts property
|
- interrupt-names: Corresponding interrupt name to the interrupts property
|
||||||
|
|
||||||
Each child node of SPMI slave id represents a function of the PMIC. In the
|
Each child node of SPMI slave id represents a function of the PMIC. In the
|
||||||
|
@ -1 +0,0 @@
|
|||||||
This file has been moved to mtd.yaml.
|
|
@ -17,7 +17,7 @@ spi-nor-controller@10000000 {
|
|||||||
reg = <0x10000000 0x1000>, <0x14000000 0x1000000>;
|
reg = <0x10000000 0x1000>, <0x14000000 0x1000000>;
|
||||||
reg-names = "control", "memory";
|
reg-names = "control", "memory";
|
||||||
clocks = <&clock HI3519_FMC_CLK>;
|
clocks = <&clock HI3519_FMC_CLK>;
|
||||||
spi-nor@0 {
|
flash@0 {
|
||||||
compatible = "jedec,spi-nor";
|
compatible = "jedec,spi-nor";
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
};
|
};
|
||||||
|
@ -25,8 +25,12 @@ properties:
|
|||||||
const: 1
|
const: 1
|
||||||
|
|
||||||
mux-reg-masks:
|
mux-reg-masks:
|
||||||
description: an array of register offset and pre-shifted bitfield mask
|
$ref: /schemas/types.yaml#/definitions/uint32-matrix
|
||||||
pairs, each describing a single mux control.
|
items:
|
||||||
|
items:
|
||||||
|
- description: register offset
|
||||||
|
- description: pre-shifted bitfield mask
|
||||||
|
description: Each entry pair describes a single mux control.
|
||||||
|
|
||||||
idle-states: true
|
idle-states: true
|
||||||
|
|
||||||
|
68
Documentation/devicetree/bindings/net/asix,ax88178.yaml
Normal file
68
Documentation/devicetree/bindings/net/asix,ax88178.yaml
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/net/asix,ax88178.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: The device tree bindings for the USB Ethernet controllers
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Oleksij Rempel <o.rempel@pengutronix.de>
|
||||||
|
|
||||||
|
description: |
|
||||||
|
Device tree properties for hard wired USB Ethernet devices.
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- $ref: ethernet-controller.yaml#
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
items:
|
||||||
|
- enum:
|
||||||
|
- usbb95,1720 # ASIX AX88172
|
||||||
|
- usbb95,172a # ASIX AX88172A
|
||||||
|
- usbb95,1780 # ASIX AX88178
|
||||||
|
- usbb95,7720 # ASIX AX88772
|
||||||
|
- usbb95,772a # ASIX AX88772A
|
||||||
|
- usbb95,772b # ASIX AX88772B
|
||||||
|
- usbb95,7e2b # ASIX AX88772B
|
||||||
|
|
||||||
|
reg: true
|
||||||
|
local-mac-address: true
|
||||||
|
mac-address: true
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
usb {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
ethernet@1 {
|
||||||
|
compatible = "usbb95,7e2b";
|
||||||
|
reg = <1>;
|
||||||
|
local-mac-address = [00 00 00 00 00 00];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
- |
|
||||||
|
usb {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
usb1@1 {
|
||||||
|
compatible = "usb1234,5678";
|
||||||
|
reg = <1>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
ethernet@1 {
|
||||||
|
compatible = "usbb95,772b";
|
||||||
|
reg = <1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
@ -122,6 +122,7 @@ patternProperties:
|
|||||||
reset-gpios: true
|
reset-gpios: true
|
||||||
|
|
||||||
magic-packet:
|
magic-packet:
|
||||||
|
type: boolean
|
||||||
description:
|
description:
|
||||||
Indicates that the hardware supports waking up via magic packet.
|
Indicates that the hardware supports waking up via magic packet.
|
||||||
|
|
||||||
|
@ -37,6 +37,7 @@ properties:
|
|||||||
const: stmmaceth
|
const: stmmaceth
|
||||||
|
|
||||||
mode-reg:
|
mode-reg:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/phandle
|
||||||
description: An extra syscon register that control ethernet interface and timing delay
|
description: An extra syscon register that control ethernet interface and timing delay
|
||||||
|
|
||||||
rx-clk-delay-ps:
|
rx-clk-delay-ps:
|
||||||
|
63
Documentation/devicetree/bindings/net/microchip,lan95xx.yaml
Normal file
63
Documentation/devicetree/bindings/net/microchip,lan95xx.yaml
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/net/microchip,lan95xx.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: The device tree bindings for the USB Ethernet controllers
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Oleksij Rempel <o.rempel@pengutronix.de>
|
||||||
|
|
||||||
|
description: |
|
||||||
|
Device tree properties for hard wired SMSC95xx compatible USB Ethernet
|
||||||
|
controller.
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- $ref: ethernet-controller.yaml#
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
items:
|
||||||
|
- enum:
|
||||||
|
- usb424,9500 # SMSC9500 USB Ethernet Device
|
||||||
|
- usb424,9505 # SMSC9505 USB Ethernet Device
|
||||||
|
- usb424,9530 # SMSC LAN9530 USB Ethernet Device
|
||||||
|
- usb424,9730 # SMSC LAN9730 USB Ethernet Device
|
||||||
|
- usb424,9900 # SMSC9500 USB Ethernet Device (SAL10)
|
||||||
|
- usb424,9901 # SMSC9505 USB Ethernet Device (SAL10)
|
||||||
|
- usb424,9902 # SMSC9500A USB Ethernet Device (SAL10)
|
||||||
|
- usb424,9903 # SMSC9505A USB Ethernet Device (SAL10)
|
||||||
|
- usb424,9904 # SMSC9512/9514 USB Hub & Ethernet Device (SAL10)
|
||||||
|
- usb424,9905 # SMSC9500A USB Ethernet Device (HAL)
|
||||||
|
- usb424,9906 # SMSC9505A USB Ethernet Device (HAL)
|
||||||
|
- usb424,9907 # SMSC9500 USB Ethernet Device (Alternate ID)
|
||||||
|
- usb424,9908 # SMSC9500A USB Ethernet Device (Alternate ID)
|
||||||
|
- usb424,9909 # SMSC9512/9514 USB Hub & Ethernet Devic. ID)
|
||||||
|
- usb424,9e00 # SMSC9500A USB Ethernet Device
|
||||||
|
- usb424,9e01 # SMSC9505A USB Ethernet Device
|
||||||
|
- usb424,9e08 # SMSC LAN89530 USB Ethernet Device
|
||||||
|
- usb424,ec00 # SMSC9512/9514 USB Hub & Ethernet Device
|
||||||
|
|
||||||
|
reg: true
|
||||||
|
local-mac-address: true
|
||||||
|
mac-address: true
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
usb {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
ethernet@1 {
|
||||||
|
compatible = "usb424,9e00";
|
||||||
|
reg = <1>;
|
||||||
|
local-mac-address = [00 00 00 00 00 00];
|
||||||
|
};
|
||||||
|
};
|
@ -182,6 +182,12 @@ examples:
|
|||||||
|
|
||||||
smp2p-mpss {
|
smp2p-mpss {
|
||||||
compatible = "qcom,smp2p";
|
compatible = "qcom,smp2p";
|
||||||
|
interrupts = <GIC_SPI 576 IRQ_TYPE_EDGE_RISING>;
|
||||||
|
mboxes = <&apss_shared 6>;
|
||||||
|
qcom,smem = <94>, <432>;
|
||||||
|
qcom,local-pid = <0>;
|
||||||
|
qcom,remote-pid = <5>;
|
||||||
|
|
||||||
ipa_smp2p_out: ipa-ap-to-modem {
|
ipa_smp2p_out: ipa-ap-to-modem {
|
||||||
qcom,entry-name = "ipa";
|
qcom,entry-name = "ipa";
|
||||||
#qcom,smem-state-cells = <1>;
|
#qcom,smem-state-cells = <1>;
|
||||||
@ -193,6 +199,7 @@ examples:
|
|||||||
#interrupt-cells = <2>;
|
#interrupt-cells = <2>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
ipa@1e40000 {
|
ipa@1e40000 {
|
||||||
compatible = "qcom,sdm845-ipa";
|
compatible = "qcom,sdm845-ipa";
|
||||||
|
|
||||||
|
61
Documentation/devicetree/bindings/net/smsc,lan91c111.yaml
Normal file
61
Documentation/devicetree/bindings/net/smsc,lan91c111.yaml
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/net/smsc,lan91c111.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Smart Mixed-Signal Connectivity (SMSC) LAN91C9x/91C1xx Controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Nicolas Pitre <nico@fluxnic.net>
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- $ref: ethernet-controller.yaml#
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: smsc,lan91c111
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
reg-shift: true
|
||||||
|
|
||||||
|
reg-io-width:
|
||||||
|
enum: [ 1, 2, 4 ]
|
||||||
|
default: 4
|
||||||
|
|
||||||
|
reset-gpios:
|
||||||
|
description: GPIO connected to control RESET pin
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
power-gpios:
|
||||||
|
description: GPIO connect to control PWRDWN pin
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
pxa-u16-align4:
|
||||||
|
description: put in place the workaround the force all u16 writes to be
|
||||||
|
32 bits aligned
|
||||||
|
type: boolean
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- interrupts
|
||||||
|
|
||||||
|
unevaluatedProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||||
|
|
||||||
|
ethernet@4010000 {
|
||||||
|
compatible = "smsc,lan91c111";
|
||||||
|
reg = <0x40100000 0x10000>;
|
||||||
|
phy-mode = "mii";
|
||||||
|
interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
reg-io-width = <2>;
|
||||||
|
};
|
@ -1,17 +0,0 @@
|
|||||||
SMSC LAN91c111 Ethernet mac
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible = "smsc,lan91c111";
|
|
||||||
- reg : physical address and size of registers
|
|
||||||
- interrupts : interrupt connection
|
|
||||||
|
|
||||||
Optional properties:
|
|
||||||
- phy-device : see ethernet.txt file in the same directory
|
|
||||||
- reg-io-width : Mask of sizes (in bytes) of the IO accesses that
|
|
||||||
are supported on the device. Valid value for SMSC LAN91c111 are
|
|
||||||
1, 2 or 4. If it's omitted or invalid, the size would be 2 meaning
|
|
||||||
16-bit access only.
|
|
||||||
- power-gpios: GPIO to control the PWRDWN pin
|
|
||||||
- reset-gpios: GPIO to control the RESET pin
|
|
||||||
- pxa-u16-align4 : Boolean, put in place the workaround the force all
|
|
||||||
u16 writes to be 32 bits aligned
|
|
@ -34,6 +34,7 @@ properties:
|
|||||||
maxItems: 1
|
maxItems: 1
|
||||||
|
|
||||||
bus_freq:
|
bus_freq:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
maximum: 2500000
|
maximum: 2500000
|
||||||
description: MDIO Bus frequency
|
description: MDIO Bus frequency
|
||||||
|
|
||||||
|
@ -142,4 +142,3 @@ examples:
|
|||||||
assigned-clock-parents = <&k3_clks 118 11>;
|
assigned-clock-parents = <&k3_clks 118 11>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -384,7 +384,7 @@ examples:
|
|||||||
pcie0 {
|
pcie0 {
|
||||||
#size-cells = <2>;
|
#size-cells = <2>;
|
||||||
#address-cells = <3>;
|
#address-cells = <3>;
|
||||||
|
|
||||||
wifi_0: wifi@0 {
|
wifi_0: wifi@0 {
|
||||||
reg = <0 0 0 0 0>;
|
reg = <0 0 0 0 0>;
|
||||||
memory-region = <&qcn9074_0>;
|
memory-region = <&qcn9074_0>;
|
||||||
|
@ -54,9 +54,11 @@ properties:
|
|||||||
|
|
||||||
|
|
||||||
ref-clock-frequency:
|
ref-clock-frequency:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
description: Reference clock frequency.
|
description: Reference clock frequency.
|
||||||
|
|
||||||
tcxo-clock-frequency:
|
tcxo-clock-frequency:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
description: TCXO clock frequency.
|
description: TCXO clock frequency.
|
||||||
|
|
||||||
clock-xtal:
|
clock-xtal:
|
||||||
|
@ -15,6 +15,10 @@ properties:
|
|||||||
- fsl,imx6q-snvs-lpgpr
|
- fsl,imx6q-snvs-lpgpr
|
||||||
- fsl,imx6ul-snvs-lpgpr
|
- fsl,imx6ul-snvs-lpgpr
|
||||||
- fsl,imx7d-snvs-lpgpr
|
- fsl,imx7d-snvs-lpgpr
|
||||||
|
- fsl,imx8mm-snvs-lpgpr
|
||||||
|
- fsl,imx8mn-snvs-lpgpr
|
||||||
|
- fsl,imx8mp-snvs-lpgpr
|
||||||
|
- fsl,imx8mq-snvs-lpgpr
|
||||||
|
|
||||||
required:
|
required:
|
||||||
- compatible
|
- compatible
|
||||||
|
@ -55,13 +55,15 @@ properties:
|
|||||||
Translation Unit) registers.
|
Translation Unit) registers.
|
||||||
|
|
||||||
num-ib-windows:
|
num-ib-windows:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
maximum: 256
|
||||||
description: number of inbound address translation windows
|
description: number of inbound address translation windows
|
||||||
maxItems: 1
|
|
||||||
deprecated: true
|
deprecated: true
|
||||||
|
|
||||||
num-ob-windows:
|
num-ob-windows:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
maximum: 256
|
||||||
description: number of outbound address translation windows
|
description: number of outbound address translation windows
|
||||||
maxItems: 1
|
|
||||||
deprecated: true
|
deprecated: true
|
||||||
|
|
||||||
required:
|
required:
|
||||||
|
@ -68,6 +68,8 @@ properties:
|
|||||||
Translation Unit) registers.
|
Translation Unit) registers.
|
||||||
|
|
||||||
num-viewport:
|
num-viewport:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
maximum: 256
|
||||||
description: |
|
description: |
|
||||||
number of view ports configured in hardware. If a platform
|
number of view ports configured in hardware. If a platform
|
||||||
does not specify it, the driver autodetects it.
|
does not specify it, the driver autodetects it.
|
||||||
|
@ -0,0 +1,96 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/pci/socionext,uniphier-pcie.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Socionext UniPhier PCIe host controller
|
||||||
|
|
||||||
|
description: |
|
||||||
|
UniPhier PCIe host controller is based on the Synopsys DesignWare
|
||||||
|
PCI core. It shares common features with the PCIe DesignWare core and
|
||||||
|
inherits common properties defined in
|
||||||
|
Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml.
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- $ref: /schemas/pci/snps,dw-pcie.yaml#
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
enum:
|
||||||
|
- socionext,uniphier-pcie
|
||||||
|
|
||||||
|
reg:
|
||||||
|
minItems: 3
|
||||||
|
maxItems: 4
|
||||||
|
|
||||||
|
reg-names:
|
||||||
|
minItems: 3
|
||||||
|
items:
|
||||||
|
- const: dbi
|
||||||
|
- const: link
|
||||||
|
- const: config
|
||||||
|
- const: atu
|
||||||
|
|
||||||
|
clocks:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
resets:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
num-viewport: true
|
||||||
|
|
||||||
|
num-lanes: true
|
||||||
|
|
||||||
|
phys:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
phy-names:
|
||||||
|
const: pcie-phy
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- reg-names
|
||||||
|
- clocks
|
||||||
|
- resets
|
||||||
|
|
||||||
|
unevaluatedProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
pcie: pcie@66000000 {
|
||||||
|
compatible = "socionext,uniphier-pcie";
|
||||||
|
reg-names = "dbi", "link", "config";
|
||||||
|
reg = <0x66000000 0x1000>, <0x66010000 0x10000>, <0x2fff0000 0x10000>;
|
||||||
|
#address-cells = <3>;
|
||||||
|
#size-cells = <2>;
|
||||||
|
clocks = <&sys_clk 24>;
|
||||||
|
resets = <&sys_rst 24>;
|
||||||
|
num-lanes = <1>;
|
||||||
|
num-viewport = <1>;
|
||||||
|
bus-range = <0x0 0xff>;
|
||||||
|
device_type = "pci";
|
||||||
|
ranges = <0x81000000 0 0x00000000 0x2ffe0000 0 0x00010000>,
|
||||||
|
<0x82000000 0 0x00000000 0x20000000 0 0x0ffe0000>;
|
||||||
|
phy-names = "pcie-phy";
|
||||||
|
phys = <&pcie_phy>;
|
||||||
|
#interrupt-cells = <1>;
|
||||||
|
interrupt-names = "dma", "msi";
|
||||||
|
interrupts = <0 224 4>, <0 225 4>;
|
||||||
|
interrupt-map-mask = <0 0 0 7>;
|
||||||
|
interrupt-map = <0 0 0 1 &pcie_intc 0>,
|
||||||
|
<0 0 0 2 &pcie_intc 1>,
|
||||||
|
<0 0 0 3 &pcie_intc 2>,
|
||||||
|
<0 0 0 4 &pcie_intc 3>;
|
||||||
|
|
||||||
|
pcie_intc: legacy-interrupt-controller {
|
||||||
|
interrupt-controller;
|
||||||
|
#interrupt-cells = <1>;
|
||||||
|
interrupt-parent = <&gic>;
|
||||||
|
interrupts = <0 226 4>;
|
||||||
|
};
|
||||||
|
};
|
@ -1,82 +0,0 @@
|
|||||||
Socionext UniPhier PCIe host controller bindings
|
|
||||||
|
|
||||||
This describes the devicetree bindings for PCIe host controller implemented
|
|
||||||
on Socionext UniPhier SoCs.
|
|
||||||
|
|
||||||
UniPhier PCIe host controller is based on the Synopsys DesignWare PCI core.
|
|
||||||
It shares common functions with the PCIe DesignWare core driver and inherits
|
|
||||||
common properties defined in
|
|
||||||
Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml.
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible: Should be "socionext,uniphier-pcie".
|
|
||||||
- reg: Specifies offset and length of the register set for the device.
|
|
||||||
According to the reg-names, appropriate register sets are required.
|
|
||||||
- reg-names: Must include the following entries:
|
|
||||||
"dbi" - controller configuration registers
|
|
||||||
"link" - SoC-specific glue layer registers
|
|
||||||
"config" - PCIe configuration space
|
|
||||||
"atu" - iATU registers for DWC version 4.80 or later
|
|
||||||
- clocks: A phandle to the clock gate for PCIe glue layer including
|
|
||||||
the host controller.
|
|
||||||
- resets: A phandle to the reset line for PCIe glue layer including
|
|
||||||
the host controller.
|
|
||||||
- interrupts: A list of interrupt specifiers. According to the
|
|
||||||
interrupt-names, appropriate interrupts are required.
|
|
||||||
- interrupt-names: Must include the following entries:
|
|
||||||
"dma" - DMA interrupt
|
|
||||||
"msi" - MSI interrupt
|
|
||||||
|
|
||||||
Optional properties:
|
|
||||||
- phys: A phandle to generic PCIe PHY. According to the phy-names, appropriate
|
|
||||||
phys are required.
|
|
||||||
- phy-names: Must be "pcie-phy".
|
|
||||||
|
|
||||||
Required sub-node:
|
|
||||||
- legacy-interrupt-controller: Specifies interrupt controller for legacy PCI
|
|
||||||
interrupts.
|
|
||||||
|
|
||||||
Required properties for legacy-interrupt-controller:
|
|
||||||
- interrupt-controller: identifies the node as an interrupt controller.
|
|
||||||
- #interrupt-cells: specifies the number of cells needed to encode an
|
|
||||||
interrupt source. The value must be 1.
|
|
||||||
- interrupt-parent: Phandle to the parent interrupt controller.
|
|
||||||
- interrupts: An interrupt specifier for legacy interrupt.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
pcie: pcie@66000000 {
|
|
||||||
compatible = "socionext,uniphier-pcie", "snps,dw-pcie";
|
|
||||||
status = "disabled";
|
|
||||||
reg-names = "dbi", "link", "config";
|
|
||||||
reg = <0x66000000 0x1000>, <0x66010000 0x10000>,
|
|
||||||
<0x2fff0000 0x10000>;
|
|
||||||
#address-cells = <3>;
|
|
||||||
#size-cells = <2>;
|
|
||||||
clocks = <&sys_clk 24>;
|
|
||||||
resets = <&sys_rst 24>;
|
|
||||||
num-lanes = <1>;
|
|
||||||
num-viewport = <1>;
|
|
||||||
bus-range = <0x0 0xff>;
|
|
||||||
device_type = "pci";
|
|
||||||
ranges =
|
|
||||||
/* downstream I/O */
|
|
||||||
<0x81000000 0 0x00000000 0x2ffe0000 0 0x00010000
|
|
||||||
/* non-prefetchable memory */
|
|
||||||
0x82000000 0 0x00000000 0x20000000 0 0x0ffe0000>;
|
|
||||||
#interrupt-cells = <1>;
|
|
||||||
interrupt-names = "dma", "msi";
|
|
||||||
interrupts = <0 224 4>, <0 225 4>;
|
|
||||||
interrupt-map-mask = <0 0 0 7>;
|
|
||||||
interrupt-map = <0 0 0 1 &pcie_intc 0>, /* INTA */
|
|
||||||
<0 0 0 2 &pcie_intc 1>, /* INTB */
|
|
||||||
<0 0 0 3 &pcie_intc 2>, /* INTC */
|
|
||||||
<0 0 0 4 &pcie_intc 3>; /* INTD */
|
|
||||||
|
|
||||||
pcie_intc: legacy-interrupt-controller {
|
|
||||||
interrupt-controller;
|
|
||||||
#interrupt-cells = <1>;
|
|
||||||
interrupt-parent = <&gic>;
|
|
||||||
interrupts = <0 226 4>;
|
|
||||||
};
|
|
||||||
};
|
|
40
Documentation/devicetree/bindings/perf/spe-pmu.yaml
Normal file
40
Documentation/devicetree/bindings/perf/spe-pmu.yaml
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/perf/spe-pmu.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: ARMv8.2 Statistical Profiling Extension (SPE) Performance Monitor Units (PMU)
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Will Deacon <will@kernel.org>
|
||||||
|
|
||||||
|
description:
|
||||||
|
ARMv8.2 introduces the optional Statistical Profiling Extension for collecting
|
||||||
|
performance sample data using an in-memory trace buffer.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: arm,statistical-profiling-extension-v1
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
maxItems: 1
|
||||||
|
description: |
|
||||||
|
The PPI to signal SPE events. For heterogeneous systems where SPE is only
|
||||||
|
supported on a subset of the CPUs, please consult the arm,gic-v3 binding
|
||||||
|
for details on describing a PPI partition.
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- interrupts
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||||
|
|
||||||
|
spe-pmu {
|
||||||
|
compatible = "arm,statistical-profiling-extension-v1";
|
||||||
|
interrupts = <GIC_PPI 5 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
};
|
@ -120,6 +120,7 @@ patternProperties:
|
|||||||
input-schmitt-disable: true
|
input-schmitt-disable: true
|
||||||
|
|
||||||
input-polarity-invert:
|
input-polarity-invert:
|
||||||
|
type: boolean
|
||||||
description:
|
description:
|
||||||
Enable or disable pin input polarity inversion.
|
Enable or disable pin input polarity inversion.
|
||||||
|
|
||||||
@ -132,6 +133,7 @@ patternProperties:
|
|||||||
output-low: true
|
output-low: true
|
||||||
|
|
||||||
output-polarity-invert:
|
output-polarity-invert:
|
||||||
|
type: boolean
|
||||||
description:
|
description:
|
||||||
Enable or disable pin output polarity inversion.
|
Enable or disable pin output polarity inversion.
|
||||||
|
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user