Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'devicetree-for-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux

Pull devicetree updates from Rob Herring:

- Refactor arch kdump DT related code to a common implementation

- Add fw_devlink tracking for 'phy-handle', 'leds', 'backlight',
'resets', and 'pwm' properties

- Various clean-ups to DT FDT code

- Fix a runtime error for !CONFIG_SYSFS

- Convert Synopsys DW PCI and derivative binding docs to schemas. Add
Toshiba Visconti PCIe binding.

- Convert a bunch of memory controller bindings to schemas

- Covert eeprom-93xx46, Samsung Exynos TRNG, Samsung Exynos IRQ
combiner, arm-charlcd, img-ascii-lcd, UniPhier eFuse, Xilinx Zynq
MPSoC FPGA, Xilinx Zynq MPSoC reset, Mediatek mmsys, Gemini boards,
brcm,iproc-i2c, faraday,ftpci100, and ks8851 net to DT schema.

- Extend nvmem bindings to handle bit offsets in unit-addresses

- Add DT schemas for HiKey 970 PCIe PHY

- Remove unused ZTE, energymicro,efm32-timer, and Exynos SATA bindings

- Enable dtc pci_device_reg warning by default

- Fixes for handling 'unevaluatedProperties' in preparation to enable
pending support in the tooling for jsonschema 2020-12 draft

* tag 'devicetree-for-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (78 commits)
dt-bindings: display: remove zte,vou.txt binding doc
dt-bindings: hwmon: merge max1619 into trivial devices
dt-bindings: mtd-physmap: Add 'arm,vexpress-flash' compatible
dt-bindings: PCI: imx6: convert the imx pcie controller to dtschema
dt-bindings: Use 'enum' instead of 'oneOf' plus 'const' entries
dt-bindings: Add vendor prefix for Topic Embedded Systems
of: fdt: Rename reserve_elfcorehdr() to fdt_reserve_elfcorehdr()
arm64: kdump: Remove custom linux,usable-memory-range handling
arm64: kdump: Remove custom linux,elfcorehdr handling
riscv: Remove non-standard linux,elfcorehdr handling
of: fdt: Use IS_ENABLED(CONFIG_BLK_DEV_INITRD) instead of #ifdef
of: fdt: Add generic support for handling usable memory range property
of: fdt: Add generic support for handling elf core headers property
crash_dump: Make elfcorehdr address/size symbols always visible
dt-bindings: memory: convert Samsung Exynos DMC to dtschema
dt-bindings: devfreq: event: convert Samsung Exynos PPMU to dtschema
dt-bindings: devfreq: event: convert Samsung Exynos NoCP to dtschema
kbuild: Enable dtc 'pci_device_reg' warning by default
dt-bindings: soc: remove obsolete zte zx header
dt-bindings: clock: remove obsolete zte zx header
...

+2766 -2024
+1 -1
Documentation/devicetree/bindings/Makefile
··· 28 28 29 29 quiet_cmd_yamllint = LINT $(src) 30 30 cmd_yamllint = ($(find_cmd) | \ 31 - xargs $(DT_SCHEMA_LINT) -f parsable -c $(srctree)/$(src)/.yamllint) || true 31 + xargs $(DT_SCHEMA_LINT) -f parsable -c $(srctree)/$(src)/.yamllint >&2) || true 32 32 33 33 quiet_cmd_chk_bindings = CHKDT $@ 34 34 cmd_chk_bindings = ($(find_cmd) | \
-108
Documentation/devicetree/bindings/arm/gemini.txt
··· 1 - Cortina systems Gemini platforms 2 - 3 - The Gemini SoC is the project name for an ARMv4 FA525-based SoC originally 4 - produced by Storlink Semiconductor around 2005. The company was renamed 5 - later renamed Storm Semiconductor. The chip product name is Storlink SL3516. 6 - It was derived from earlier products from Storm named SL3316 (Centroid) and 7 - SL3512 (Bulverde). 8 - 9 - Storm Semiconductor was acquired by Cortina Systems in 2008 and the SoC was 10 - produced and used for NAS and similar usecases. In 2014 Cortina Systems was 11 - in turn acquired by Inphi, who seem to have discontinued this product family. 12 - 13 - Many of the IP blocks used in the SoC comes from Faraday Technology. 14 - 15 - Required properties (in root node): 16 - compatible = "cortina,gemini"; 17 - 18 - Required nodes: 19 - 20 - - soc: the SoC should be represented by a simple bus encompassing all the 21 - onchip devices, this is referred to as the soc bus node. 22 - 23 - - syscon: the soc bus node must have a system controller node pointing to the 24 - global control registers, with the compatible string 25 - "cortina,gemini-syscon", "syscon"; 26 - 27 - Required properties on the syscon: 28 - - reg: syscon register location and size. 29 - - #clock-cells: should be set to <1> - the system controller is also a 30 - clock provider. 31 - - #reset-cells: should be set to <1> - the system controller is also a 32 - reset line provider. 33 - 34 - The clock sources have shorthand defines in the include file: 35 - <dt-bindings/clock/cortina,gemini-clock.h> 36 - 37 - The reset lines have shorthand defines in the include file: 38 - <dt-bindings/reset/cortina,gemini-reset.h> 39 - 40 - - timer: the soc bus node must have a timer node pointing to the SoC timer 41 - block, with the compatible string "cortina,gemini-timer" 42 - See: clocksource/cortina,gemini-timer.txt 43 - 44 - - interrupt-controller: the sob bus node must have an interrupt controller 45 - node pointing to the SoC interrupt controller block, with the compatible 46 - string "cortina,gemini-interrupt-controller" 47 - See interrupt-controller/cortina,gemini-interrupt-controller.txt 48 - 49 - Example: 50 - 51 - / { 52 - model = "Foo Gemini Machine"; 53 - compatible = "cortina,gemini"; 54 - #address-cells = <1>; 55 - #size-cells = <1>; 56 - 57 - memory { 58 - device_type = "memory"; 59 - reg = <0x00000000 0x8000000>; 60 - }; 61 - 62 - soc { 63 - #address-cells = <1>; 64 - #size-cells = <1>; 65 - ranges; 66 - compatible = "simple-bus"; 67 - interrupt-parent = <&intcon>; 68 - 69 - syscon: syscon@40000000 { 70 - compatible = "cortina,gemini-syscon", "syscon"; 71 - reg = <0x40000000 0x1000>; 72 - #clock-cells = <1>; 73 - #reset-cells = <1>; 74 - }; 75 - 76 - uart0: serial@42000000 { 77 - compatible = "ns16550a"; 78 - reg = <0x42000000 0x100>; 79 - resets = <&syscon GEMINI_RESET_UART>; 80 - clocks = <&syscon GEMINI_CLK_UART>; 81 - interrupts = <18 IRQ_TYPE_LEVEL_HIGH>; 82 - reg-shift = <2>; 83 - }; 84 - 85 - timer@43000000 { 86 - compatible = "cortina,gemini-timer"; 87 - reg = <0x43000000 0x1000>; 88 - interrupt-parent = <&intcon>; 89 - interrupts = <14 IRQ_TYPE_EDGE_FALLING>, /* Timer 1 */ 90 - <15 IRQ_TYPE_EDGE_FALLING>, /* Timer 2 */ 91 - <16 IRQ_TYPE_EDGE_FALLING>; /* Timer 3 */ 92 - resets = <&syscon GEMINI_RESET_TIMER>; 93 - /* APB clock or RTC clock */ 94 - clocks = <&syscon GEMINI_CLK_APB>, 95 - <&syscon GEMINI_CLK_RTC>; 96 - clock-names = "PCLK", "EXTCLK"; 97 - syscon = <&syscon>; 98 - }; 99 - 100 - intcon: interrupt-controller@48000000 { 101 - compatible = "cortina,gemini-interrupt-controller"; 102 - reg = <0x48000000 0x1000>; 103 - resets = <&syscon GEMINI_RESET_INTCON0>; 104 - interrupt-controller; 105 - #interrupt-cells = <2>; 106 - }; 107 - }; 108 - };
+95
Documentation/devicetree/bindings/arm/gemini.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/arm/gemini.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Cortina systems Gemini platforms 8 + 9 + description: | 10 + The Gemini SoC is the project name for an ARMv4 FA525-based SoC originally 11 + produced by Storlink Semiconductor around 2005. The company was renamed 12 + later renamed Storm Semiconductor. The chip product name is Storlink SL3516. 13 + It was derived from earlier products from Storm named SL3316 (Centroid) and 14 + SL3512 (Bulverde). 15 + 16 + Storm Semiconductor was acquired by Cortina Systems in 2008 and the SoC was 17 + produced and used for NAS and similar usecases. In 2014 Cortina Systems was 18 + in turn acquired by Inphi, who seem to have discontinued this product family. 19 + 20 + Many of the IP blocks used in the SoC comes from Faraday Technology. 21 + 22 + maintainers: 23 + - Linus Walleij <linus.walleij@linaro.org> 24 + 25 + properties: 26 + $nodename: 27 + const: '/' 28 + compatible: 29 + oneOf: 30 + 31 + - description: Storlink Semiconductor Gemini324 EV-Board also known 32 + as Storm Semiconductor SL93512R_BRD 33 + items: 34 + - const: storlink,gemini324 35 + - const: storm,sl93512r 36 + - const: cortina,gemini 37 + 38 + - description: D-Link DIR-685 Xtreme N Storage Router 39 + items: 40 + - const: dlink,dir-685 41 + - const: cortina,gemini 42 + 43 + - description: D-Link DNS-313 1-Bay Network Storage Enclosure 44 + items: 45 + - const: dlink,dns-313 46 + - const: cortina,gemini 47 + 48 + - description: Edimax NS-2502 49 + items: 50 + - const: edimax,ns-2502 51 + - const: cortina,gemini 52 + 53 + - description: ITian Square One SQ201 54 + items: 55 + - const: itian,sq201 56 + - const: cortina,gemini 57 + 58 + - description: Raidsonic NAS IB-4220-B 59 + items: 60 + - const: raidsonic,ib-4220-b 61 + - const: cortina,gemini 62 + 63 + - description: SSI 1328 64 + items: 65 + - const: ssi,1328 66 + - const: cortina,gemini 67 + 68 + - description: Teltonika RUT1xx Mobile Router 69 + items: 70 + - const: teltonika,rut1xx 71 + - const: cortina,gemini 72 + 73 + - description: Wiligear Wiliboard WBD-111 74 + items: 75 + - const: wiligear,wiliboard-wbd111 76 + - const: cortina,gemini 77 + 78 + - description: Wiligear Wiliboard WBD-222 79 + items: 80 + - const: wiligear,wiliboard-wbd222 81 + - const: cortina,gemini 82 + 83 + - description: Wiligear Wiliboard WBD-111 - old incorrect binding 84 + items: 85 + - const: wiliboard,wbd111 86 + - const: cortina,gemini 87 + deprecated: true 88 + 89 + - description: Wiligear Wiliboard WBD-222 - old incorrect binding 90 + items: 91 + - const: wiliboard,wbd222 92 + - const: cortina,gemini 93 + deprecated: true 94 + 95 + additionalProperties: true
-31
Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.txt
··· 1 - Mediatek mmsys controller 2 - ============================ 3 - 4 - The Mediatek mmsys system controller provides clock control, routing control, 5 - and miscellaneous control in mmsys partition. 6 - 7 - Required Properties: 8 - 9 - - compatible: Should be one of: 10 - - "mediatek,mt2701-mmsys", "syscon" 11 - - "mediatek,mt2712-mmsys", "syscon" 12 - - "mediatek,mt6765-mmsys", "syscon" 13 - - "mediatek,mt6779-mmsys", "syscon" 14 - - "mediatek,mt6797-mmsys", "syscon" 15 - - "mediatek,mt7623-mmsys", "mediatek,mt2701-mmsys", "syscon" 16 - - "mediatek,mt8167-mmsys", "syscon" 17 - - "mediatek,mt8173-mmsys", "syscon" 18 - - "mediatek,mt8183-mmsys", "syscon" 19 - - #clock-cells: Must be 1 20 - 21 - For the clock control, the mmsys controller uses the common clk binding from 22 - Documentation/devicetree/bindings/clock/clock-bindings.txt 23 - The available clocks are defined in dt-bindings/clock/mt*-clk.h. 24 - 25 - Example: 26 - 27 - mmsys: syscon@14000000 { 28 - compatible = "mediatek,mt8173-mmsys", "syscon"; 29 - reg = <0 0x14000000 0 0x1000>; 30 - #clock-cells = <1>; 31 - };
+58
Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: "http://devicetree.org/schemas/arm/mediatek/mediatek,mmsys.yaml#" 5 + $schema: "http://devicetree.org/meta-schemas/core.yaml#" 6 + 7 + title: MediaTek mmsys controller 8 + 9 + maintainers: 10 + - Matthias Brugger <matthias.bgg@gmail.com> 11 + 12 + description: 13 + The MediaTek mmsys system controller provides clock control, routing control, 14 + and miscellaneous control in mmsys partition. 15 + 16 + properties: 17 + $nodename: 18 + pattern: "^syscon@[0-9a-f]+$" 19 + 20 + compatible: 21 + oneOf: 22 + - items: 23 + - enum: 24 + - mediatek,mt2701-mmsys 25 + - mediatek,mt2712-mmsys 26 + - mediatek,mt6765-mmsys 27 + - mediatek,mt6779-mmsys 28 + - mediatek,mt6797-mmsys 29 + - mediatek,mt8167-mmsys 30 + - mediatek,mt8173-mmsys 31 + - mediatek,mt8183-mmsys 32 + - mediatek,mt8365-mmsys 33 + - const: syscon 34 + - items: 35 + - const: mediatek,mt7623-mmsys 36 + - const: mediatek,mt2701-mmsys 37 + - const: syscon 38 + 39 + reg: 40 + maxItems: 1 41 + 42 + "#clock-cells": 43 + const: 1 44 + 45 + required: 46 + - compatible 47 + - reg 48 + - "#clock-cells" 49 + 50 + additionalProperties: false 51 + 52 + examples: 53 + - | 54 + mmsys: syscon@14000000 { 55 + compatible = "mediatek,mt8173-mmsys", "syscon"; 56 + reg = <0x14000000 0x1000>; 57 + #clock-cells = <1>; 58 + };
-30
Documentation/devicetree/bindings/ata/exynos-sata.txt
··· 1 - * Samsung AHCI SATA Controller 2 - 3 - SATA nodes are defined to describe on-chip Serial ATA controllers. 4 - Each SATA controller should have its own node. 5 - 6 - Required properties: 7 - - compatible : compatible list, contains "samsung,exynos5-sata" 8 - - interrupts : <interrupt mapping for SATA IRQ> 9 - - reg : <registers mapping> 10 - - samsung,sata-freq : <frequency in MHz> 11 - - phys : Must contain exactly one entry as specified 12 - in phy-bindings.txt 13 - - phy-names : Must be "sata-phy" 14 - 15 - Optional properties: 16 - - clocks : Must contain an entry for each entry in clock-names. 17 - - clock-names : Shall be "sata" for the external SATA bus clock, 18 - and "sclk_sata" for the internal controller clock. 19 - 20 - Example: 21 - sata@122f0000 { 22 - compatible = "snps,dwc-ahci"; 23 - samsung,sata-freq = <66>; 24 - reg = <0x122f0000 0x1ff>; 25 - interrupts = <0 115 0>; 26 - clocks = <&clock 277>, <&clock 143>; 27 - clock-names = "sata", "sclk_sata"; 28 - phys = <&sata_phy>; 29 - phy-names = "sata-phy"; 30 - };
+44
Documentation/devicetree/bindings/auxdisplay/arm,versatile-lcd.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/auxdisplay/arm,versatile-lcd.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: ARM Versatile Character LCD 8 + 9 + maintainers: 10 + - Linus Walleij <linus.walleij@linaro.org> 11 + - Rob Herring <robh@kernel.org> 12 + 13 + description: 14 + This binding defines the character LCD interface found on ARM Versatile AB 15 + and PB reference platforms. 16 + 17 + properties: 18 + compatible: 19 + const: arm,versatile-lcd 20 + 21 + reg: 22 + maxItems: 1 23 + 24 + clocks: 25 + maxItems: 1 26 + 27 + clock-names: 28 + maxItems: 1 29 + 30 + interrupts: 31 + maxItems: 1 32 + 33 + required: 34 + - compatible 35 + - reg 36 + 37 + additionalProperties: false 38 + 39 + examples: 40 + - | 41 + lcd@10008000 { 42 + compatible = "arm,versatile-lcd"; 43 + reg = <0x10008000 0x1000>; 44 + };
-18
Documentation/devicetree/bindings/auxdisplay/arm-charlcd.txt
··· 1 - ARM Versatile Character LCD 2 - ----------------------------------------------------- 3 - This binding defines the character LCD interface found on ARM Versatile AB 4 - and PB reference platforms. 5 - 6 - Required properties: 7 - - compatible : "arm,versatile-clcd" 8 - - reg : Location and size of character LCD registers 9 - 10 - Optional properties: 11 - - interrupts - single interrupt for character LCD. The character LCD can 12 - operate in polled mode without an interrupt. 13 - 14 - Example: 15 - lcd@10008000 { 16 - compatible = "arm,versatile-lcd"; 17 - reg = <0x10008000 0x1000>; 18 - };
+55
Documentation/devicetree/bindings/auxdisplay/img,ascii-lcd.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/auxdisplay/img,ascii-lcd.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: ASCII LCD displays on Imagination Technologies boards 8 + 9 + maintainers: 10 + - Paul Burton <paulburton@kernel.org> 11 + 12 + properties: 13 + compatible: 14 + enum: 15 + - img,boston-lcd 16 + - mti,malta-lcd 17 + - mti,sead3-lcd 18 + 19 + reg: 20 + maxItems: 1 21 + 22 + offset: 23 + $ref: /schemas/types.yaml#/definitions/uint32 24 + description: 25 + Offset in bytes to the LCD registers within the system controller 26 + 27 + required: 28 + - compatible 29 + 30 + oneOf: 31 + - required: 32 + - reg 33 + - required: 34 + - offset 35 + 36 + if: 37 + properties: 38 + compatible: 39 + contains: 40 + const: img,boston-lcd 41 + then: 42 + required: 43 + - reg 44 + else: 45 + required: 46 + - offset 47 + 48 + additionalProperties: false 49 + 50 + examples: 51 + - | 52 + lcd: lcd@17fff000 { 53 + compatible = "img,boston-lcd"; 54 + reg = <0x17fff000 0x8>; 55 + };
-17
Documentation/devicetree/bindings/auxdisplay/img-ascii-lcd.txt
··· 1 - Binding for ASCII LCD displays on Imagination Technologies boards 2 - 3 - Required properties: 4 - - compatible : should be one of: 5 - "img,boston-lcd" 6 - "mti,malta-lcd" 7 - "mti,sead3-lcd" 8 - 9 - Required properties for "img,boston-lcd": 10 - - reg : memory region locating the device registers 11 - 12 - Required properties for "mti,malta-lcd" or "mti,sead3-lcd": 13 - - regmap: phandle of the system controller containing the LCD registers 14 - - offset: offset in bytes to the LCD registers within the system controller 15 - 16 - The layout of the registers & properties of the display are determined 17 - from the compatible string, making this binding somewhat trivial.
+6 -6
Documentation/devicetree/bindings/chosen.txt
··· 79 79 linux,usable-memory-range 80 80 ------------------------- 81 81 82 - This property (arm64 only) holds a base address and size, describing a 83 - limited region in which memory may be considered available for use by 84 - the kernel. Memory outside of this range is not available for use. 82 + This property holds a base address and size, describing a limited region in 83 + which memory may be considered available for use by the kernel. Memory outside 84 + of this range is not available for use. 85 85 86 86 This property describes a limitation: memory within this range is only 87 87 valid when also described through another mechanism that the kernel ··· 106 106 linux,elfcorehdr 107 107 ---------------- 108 108 109 - This property (currently used only on arm64) holds the memory range, 110 - the address and the size, of the elf core header which mainly describes 111 - the panicked kernel's memory layout as PT_LOAD segments of elf format. 109 + This property holds the memory range, the address and the size, of the elf 110 + core header which mainly describes the panicked kernel's memory layout as 111 + PT_LOAD segments of elf format. 112 112 e.g. 113 113 114 114 / {
-26
Documentation/devicetree/bindings/devfreq/event/exynos-nocp.txt
··· 1 - 2 - * Samsung Exynos NoC (Network on Chip) Probe device 3 - 4 - The Samsung Exynos542x SoC has NoC (Network on Chip) Probe for NoC bus. 5 - NoC provides the primitive values to get the performance data. The packets 6 - that the Network on Chip (NoC) probes detects are transported over 7 - the network infrastructure to observer units. You can configure probes to 8 - capture packets with header or data on the data request response network, 9 - or as traffic debug or statistic collectors. Exynos542x bus has multiple 10 - NoC probes to provide bandwidth information about behavior of the SoC 11 - that you can use while analyzing system performance. 12 - 13 - Required properties: 14 - - compatible: Should be "samsung,exynos5420-nocp" 15 - - reg: physical base address of each NoC Probe and length of memory mapped region. 16 - 17 - Optional properties: 18 - - clock-names : the name of clock used by the NoC Probe, "nocp" 19 - - clocks : phandles for clock specified in "clock-names" property 20 - 21 - Example : NoC Probe nodes in Device Tree are listed below. 22 - 23 - nocp_mem0_0: nocp@10ca1000 { 24 - compatible = "samsung,exynos5420-nocp"; 25 - reg = <0x10CA1000 0x200>; 26 - };
-169
Documentation/devicetree/bindings/devfreq/event/exynos-ppmu.txt
··· 1 - 2 - * Samsung Exynos PPMU (Platform Performance Monitoring Unit) device 3 - 4 - The Samsung Exynos SoC has PPMU (Platform Performance Monitoring Unit) for 5 - each IP. PPMU provides the primitive values to get performance data. These 6 - PPMU events provide information of the SoC's behaviors so that you may 7 - use to analyze system performance, to make behaviors visible and to count 8 - usages of each IP (DMC, CPU, RIGHTBUS, LEFTBUS, CAM interface, LCD, G3D, MFC). 9 - The Exynos PPMU driver uses the devfreq-event class to provide event data 10 - to various devfreq devices. The devfreq devices would use the event data when 11 - derterming the current state of each IP. 12 - 13 - Required properties for PPMU device: 14 - - compatible: Should be "samsung,exynos-ppmu" or "samsung,exynos-ppmu-v2. 15 - - reg: physical base address of each PPMU and length of memory mapped region. 16 - 17 - Optional properties for PPMU device: 18 - - clock-names : the name of clock used by the PPMU, "ppmu" 19 - - clocks : phandles for clock specified in "clock-names" property 20 - 21 - Required properties for 'events' child node of PPMU device: 22 - - event-name : the unique event name among PPMU device 23 - Optional properties for 'events' child node of PPMU device: 24 - - event-data-type : Define the type of data which shell be counted 25 - by the counter. You can check include/dt-bindings/pmu/exynos_ppmu.h for 26 - all possible type, i.e. count read requests, count write data in bytes, 27 - etc. This field is optional and when it is missing, the driver code 28 - will use default data type. 29 - 30 - Example1 : PPMUv1 nodes in exynos3250.dtsi are listed below. 31 - 32 - ppmu_dmc0: ppmu_dmc0@106a0000 { 33 - compatible = "samsung,exynos-ppmu"; 34 - reg = <0x106a0000 0x2000>; 35 - status = "disabled"; 36 - }; 37 - 38 - ppmu_dmc1: ppmu_dmc1@106b0000 { 39 - compatible = "samsung,exynos-ppmu"; 40 - reg = <0x106b0000 0x2000>; 41 - status = "disabled"; 42 - }; 43 - 44 - ppmu_cpu: ppmu_cpu@106c0000 { 45 - compatible = "samsung,exynos-ppmu"; 46 - reg = <0x106c0000 0x2000>; 47 - status = "disabled"; 48 - }; 49 - 50 - ppmu_rightbus: ppmu_rightbus@112a0000 { 51 - compatible = "samsung,exynos-ppmu"; 52 - reg = <0x112a0000 0x2000>; 53 - clocks = <&cmu CLK_PPMURIGHT>; 54 - clock-names = "ppmu"; 55 - status = "disabled"; 56 - }; 57 - 58 - ppmu_leftbus: ppmu_leftbus0@116a0000 { 59 - compatible = "samsung,exynos-ppmu"; 60 - reg = <0x116a0000 0x2000>; 61 - clocks = <&cmu CLK_PPMULEFT>; 62 - clock-names = "ppmu"; 63 - status = "disabled"; 64 - }; 65 - 66 - Example2 : Events of each PPMU node in exynos3250-rinato.dts are listed below. 67 - 68 - &ppmu_dmc0 { 69 - status = "okay"; 70 - 71 - events { 72 - ppmu_dmc0_3: ppmu-event3-dmc0 { 73 - event-name = "ppmu-event3-dmc0"; 74 - }; 75 - 76 - ppmu_dmc0_2: ppmu-event2-dmc0 { 77 - event-name = "ppmu-event2-dmc0"; 78 - }; 79 - 80 - ppmu_dmc0_1: ppmu-event1-dmc0 { 81 - event-name = "ppmu-event1-dmc0"; 82 - }; 83 - 84 - ppmu_dmc0_0: ppmu-event0-dmc0 { 85 - event-name = "ppmu-event0-dmc0"; 86 - }; 87 - }; 88 - }; 89 - 90 - &ppmu_dmc1 { 91 - status = "okay"; 92 - 93 - events { 94 - ppmu_dmc1_3: ppmu-event3-dmc1 { 95 - event-name = "ppmu-event3-dmc1"; 96 - }; 97 - }; 98 - }; 99 - 100 - &ppmu_leftbus { 101 - status = "okay"; 102 - 103 - events { 104 - ppmu_leftbus_3: ppmu-event3-leftbus { 105 - event-name = "ppmu-event3-leftbus"; 106 - }; 107 - }; 108 - }; 109 - 110 - &ppmu_rightbus { 111 - status = "okay"; 112 - 113 - events { 114 - ppmu_rightbus_3: ppmu-event3-rightbus { 115 - event-name = "ppmu-event3-rightbus"; 116 - }; 117 - }; 118 - }; 119 - 120 - Example3 : PPMUv2 nodes in exynos5433.dtsi are listed below. 121 - 122 - ppmu_d0_cpu: ppmu_d0_cpu@10480000 { 123 - compatible = "samsung,exynos-ppmu-v2"; 124 - reg = <0x10480000 0x2000>; 125 - status = "disabled"; 126 - }; 127 - 128 - ppmu_d0_general: ppmu_d0_general@10490000 { 129 - compatible = "samsung,exynos-ppmu-v2"; 130 - reg = <0x10490000 0x2000>; 131 - status = "disabled"; 132 - }; 133 - 134 - ppmu_d0_rt: ppmu_d0_rt@104a0000 { 135 - compatible = "samsung,exynos-ppmu-v2"; 136 - reg = <0x104a0000 0x2000>; 137 - status = "disabled"; 138 - }; 139 - 140 - ppmu_d1_cpu: ppmu_d1_cpu@104b0000 { 141 - compatible = "samsung,exynos-ppmu-v2"; 142 - reg = <0x104b0000 0x2000>; 143 - status = "disabled"; 144 - }; 145 - 146 - ppmu_d1_general: ppmu_d1_general@104c0000 { 147 - compatible = "samsung,exynos-ppmu-v2"; 148 - reg = <0x104c0000 0x2000>; 149 - status = "disabled"; 150 - }; 151 - 152 - ppmu_d1_rt: ppmu_d1_rt@104d0000 { 153 - compatible = "samsung,exynos-ppmu-v2"; 154 - reg = <0x104d0000 0x2000>; 155 - status = "disabled"; 156 - }; 157 - 158 - Example4 : 'event-data-type' in exynos4412-ppmu-common.dtsi are listed below. 159 - 160 - &ppmu_dmc0 { 161 - status = "okay"; 162 - events { 163 - ppmu_dmc0_3: ppmu-event3-dmc0 { 164 - event-name = "ppmu-event3-dmc0"; 165 - event-data-type = <(PPMU_RO_DATA_CNT | 166 - PPMU_WO_DATA_CNT)>; 167 - }; 168 - }; 169 - };
+48
Documentation/devicetree/bindings/devfreq/event/samsung,exynos-nocp.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/devfreq/event/samsung,exynos-nocp.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Samsung Exynos NoC (Network on Chip) Probe 8 + 9 + maintainers: 10 + - Chanwoo Choi <cw00.choi@samsung.com> 11 + - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> 12 + 13 + description: | 14 + The Samsung Exynos542x SoC has a NoC (Network on Chip) Probe for NoC bus. 15 + NoC provides the primitive values to get the performance data. The packets 16 + that the Network on Chip (NoC) probes detects are transported over the 17 + network infrastructure to observer units. You can configure probes to capture 18 + packets with header or data on the data request response network, or as 19 + traffic debug or statistic collectors. Exynos542x bus has multiple NoC probes 20 + to provide bandwidth information about behavior of the SoC that you can use 21 + while analyzing system performance. 22 + 23 + properties: 24 + compatible: 25 + const: samsung,exynos5420-nocp 26 + 27 + clock-names: 28 + items: 29 + - const: nocp 30 + 31 + clocks: 32 + maxItems: 1 33 + 34 + reg: 35 + maxItems: 1 36 + 37 + required: 38 + - compatible 39 + - reg 40 + 41 + additionalProperties: false 42 + 43 + examples: 44 + - | 45 + nocp_mem0_0: nocp@10ca1000 { 46 + compatible = "samsung,exynos5420-nocp"; 47 + reg = <0x10ca1000 0x200>; 48 + };
+169
Documentation/devicetree/bindings/devfreq/event/samsung,exynos-ppmu.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/devfreq/event/samsung,exynos-ppmu.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Samsung Exynos SoC PPMU (Platform Performance Monitoring Unit) 8 + 9 + maintainers: 10 + - Chanwoo Choi <cw00.choi@samsung.com> 11 + - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> 12 + 13 + description: | 14 + The Samsung Exynos SoC has PPMU (Platform Performance Monitoring Unit) for 15 + each IP. PPMU provides the primitive values to get performance data. These 16 + PPMU events provide information of the SoC's behaviors so that you may use to 17 + analyze system performance, to make behaviors visible and to count usages of 18 + each IP (DMC, CPU, RIGHTBUS, LEFTBUS, CAM interface, LCD, G3D, MFC). The 19 + Exynos PPMU driver uses the devfreq-event class to provide event data to 20 + various devfreq devices. The devfreq devices would use the event data when 21 + derterming the current state of each IP. 22 + 23 + properties: 24 + compatible: 25 + enum: 26 + - samsung,exynos-ppmu 27 + - samsung,exynos-ppmu-v2 28 + 29 + clock-names: 30 + items: 31 + - const: ppmu 32 + 33 + clocks: 34 + maxItems: 1 35 + 36 + reg: 37 + maxItems: 1 38 + 39 + events: 40 + type: object 41 + 42 + patternProperties: 43 + '^ppmu-event[0-9]+(-[a-z0-9]+){,2}$': 44 + type: object 45 + properties: 46 + event-name: 47 + description: | 48 + The unique event name among PPMU device 49 + $ref: /schemas/types.yaml#/definitions/string 50 + 51 + event-data-type: 52 + description: | 53 + Define the type of data which shell be counted by the counter. 54 + You can check include/dt-bindings/pmu/exynos_ppmu.h for all 55 + possible type, i.e. count read requests, count write data in 56 + bytes, etc. This field is optional and when it is missing, the 57 + driver code will use default data type. 58 + $ref: /schemas/types.yaml#/definitions/uint32 59 + 60 + required: 61 + - event-name 62 + 63 + additionalProperties: false 64 + 65 + additionalProperties: false 66 + 67 + required: 68 + - compatible 69 + - reg 70 + 71 + additionalProperties: false 72 + 73 + examples: 74 + - | 75 + // PPMUv1 nodes for Exynos3250 (although the board DTS defines events) 76 + #include <dt-bindings/clock/exynos3250.h> 77 + 78 + ppmu_dmc0: ppmu@106a0000 { 79 + compatible = "samsung,exynos-ppmu"; 80 + reg = <0x106a0000 0x2000>; 81 + 82 + events { 83 + ppmu_dmc0_3: ppmu-event3-dmc0 { 84 + event-name = "ppmu-event3-dmc0"; 85 + }; 86 + 87 + ppmu_dmc0_2: ppmu-event2-dmc0 { 88 + event-name = "ppmu-event2-dmc0"; 89 + }; 90 + 91 + ppmu_dmc0_1: ppmu-event1-dmc0 { 92 + event-name = "ppmu-event1-dmc0"; 93 + }; 94 + 95 + ppmu_dmc0_0: ppmu-event0-dmc0 { 96 + event-name = "ppmu-event0-dmc0"; 97 + }; 98 + }; 99 + }; 100 + 101 + ppmu_rightbus: ppmu@112a0000 { 102 + compatible = "samsung,exynos-ppmu"; 103 + reg = <0x112a0000 0x2000>; 104 + clocks = <&cmu CLK_PPMURIGHT>; 105 + clock-names = "ppmu"; 106 + 107 + events { 108 + ppmu_rightbus_3: ppmu-event3-rightbus { 109 + event-name = "ppmu-event3-rightbus"; 110 + }; 111 + }; 112 + }; 113 + 114 + - | 115 + // PPMUv2 nodes in Exynos5433 116 + ppmu_d0_cpu: ppmu@10480000 { 117 + compatible = "samsung,exynos-ppmu-v2"; 118 + reg = <0x10480000 0x2000>; 119 + }; 120 + 121 + ppmu_d0_general: ppmu@10490000 { 122 + compatible = "samsung,exynos-ppmu-v2"; 123 + reg = <0x10490000 0x2000>; 124 + 125 + events { 126 + ppmu_event0_d0_general: ppmu-event0-d0-general { 127 + event-name = "ppmu-event0-d0-general"; 128 + }; 129 + }; 130 + }; 131 + 132 + ppmu_d0_rt: ppmu@104a0000 { 133 + compatible = "samsung,exynos-ppmu-v2"; 134 + reg = <0x104a0000 0x2000>; 135 + }; 136 + 137 + ppmu_d1_cpu: ppmu@104b0000 { 138 + compatible = "samsung,exynos-ppmu-v2"; 139 + reg = <0x104b0000 0x2000>; 140 + }; 141 + 142 + ppmu_d1_general: ppmu@104c0000 { 143 + compatible = "samsung,exynos-ppmu-v2"; 144 + reg = <0x104c0000 0x2000>; 145 + }; 146 + 147 + ppmu_d1_rt: ppmu@104d0000 { 148 + compatible = "samsung,exynos-ppmu-v2"; 149 + reg = <0x104d0000 0x2000>; 150 + }; 151 + 152 + - | 153 + // PPMUv1 nodes with event-data-type for Exynos4412 154 + #include <dt-bindings/pmu/exynos_ppmu.h> 155 + 156 + ppmu@106a0000 { 157 + compatible = "samsung,exynos-ppmu"; 158 + reg = <0x106a0000 0x2000>; 159 + clocks = <&clock 400>; 160 + clock-names = "ppmu"; 161 + 162 + events { 163 + ppmu-event3-dmc0 { 164 + event-name = "ppmu-event3-dmc0"; 165 + event-data-type = <(PPMU_RO_DATA_CNT | 166 + PPMU_WO_DATA_CNT)>; 167 + }; 168 + }; 169 + };
-2
Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-dw-hdmi.yaml
··· 174 174 phy-names = "phy"; 175 175 pinctrl-names = "default"; 176 176 pinctrl-0 = <&hdmi_pins>; 177 - status = "disabled"; 178 177 179 178 ports { 180 179 #address-cells = <1>; ··· 232 233 phy-names = "phy"; 233 234 pinctrl-names = "default"; 234 235 pinctrl-0 = <&hdmi_pins>; 235 - status = "disabled"; 236 236 237 237 ports { 238 238 #address-cells = <1>;
+4 -2
Documentation/devicetree/bindings/display/bridge/ti,sn65dsi83.yaml
··· 37 37 38 38 properties: 39 39 port@0: 40 - $ref: /schemas/graph.yaml#/properties/port 40 + $ref: /schemas/graph.yaml#/$defs/port-base 41 + unevaluatedProperties: false 41 42 description: Video port for MIPI DSI Channel-A input 42 43 43 44 properties: ··· 58 57 - const: 4 59 58 60 59 port@1: 61 - $ref: /schemas/graph.yaml#/properties/port 60 + $ref: /schemas/graph.yaml#/$defs/port-base 61 + unevaluatedProperties: false 62 62 description: Video port for MIPI DSI Channel-B input 63 63 64 64 properties:
+1
Documentation/devicetree/bindings/display/fsl,lcdif.yaml
··· 27 27 - fsl,imx6ul-lcdif 28 28 - fsl,imx7d-lcdif 29 29 - fsl,imx8mm-lcdif 30 + - fsl,imx8mn-lcdif 30 31 - fsl,imx8mq-lcdif 31 32 - const: fsl,imx6sx-lcdif 32 33
+4 -2
Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml
··· 89 89 90 90 properties: 91 91 port@0: 92 - $ref: "/schemas/graph.yaml#/properties/port" 92 + $ref: "/schemas/graph.yaml#/$defs/port-base" 93 + unevaluatedProperties: false 93 94 description: | 94 95 Input endpoints of the controller. 95 96 properties: ··· 105 104 enum: [ 0, 1, 2, 3 ] 106 105 107 106 port@1: 108 - $ref: "/schemas/graph.yaml#/properties/port" 107 + $ref: "/schemas/graph.yaml#/$defs/port-base" 108 + unevaluatedProperties: false 109 109 description: | 110 110 Output endpoints of the controller. 111 111 properties:
+3 -3
Documentation/devicetree/bindings/display/msm/dsi-phy-10nm.yaml
··· 14 14 15 15 properties: 16 16 compatible: 17 - oneOf: 18 - - const: qcom,dsi-phy-10nm 19 - - const: qcom,dsi-phy-10nm-8998 17 + enum: 18 + - qcom,dsi-phy-10nm 19 + - qcom,dsi-phy-10nm-8998 20 20 21 21 reg: 22 22 items:
+3 -3
Documentation/devicetree/bindings/display/msm/dsi-phy-14nm.yaml
··· 14 14 15 15 properties: 16 16 compatible: 17 - oneOf: 18 - - const: qcom,dsi-phy-14nm 19 - - const: qcom,dsi-phy-14nm-660 17 + enum: 18 + - qcom,dsi-phy-14nm 19 + - qcom,dsi-phy-14nm-660 20 20 21 21 reg: 22 22 items:
+1 -2
Documentation/devicetree/bindings/display/msm/dsi-phy-20nm.yaml
··· 14 14 15 15 properties: 16 16 compatible: 17 - oneOf: 18 - - const: qcom,dsi-phy-20nm 17 + const: qcom,dsi-phy-20nm 19 18 20 19 reg: 21 20 items:
+4 -4
Documentation/devicetree/bindings/display/msm/dsi-phy-28nm.yaml
··· 14 14 15 15 properties: 16 16 compatible: 17 - oneOf: 18 - - const: qcom,dsi-phy-28nm-hpm 19 - - const: qcom,dsi-phy-28nm-lp 20 - - const: qcom,dsi-phy-28nm-8960 17 + enum: 18 + - qcom,dsi-phy-28nm-hpm 19 + - qcom,dsi-phy-28nm-lp 20 + - qcom,dsi-phy-28nm-8960 21 21 22 22 reg: 23 23 items:
-1
Documentation/devicetree/bindings/display/panel/boe,tv101wum-nl6.yaml
··· 70 70 avee-supply = <&ppvarp_lcd>; 71 71 pp1800-supply = <&pp1800_lcd>; 72 72 backlight = <&backlight_lcd0>; 73 - status = "okay"; 74 73 port { 75 74 panel_in: endpoint { 76 75 remote-endpoint = <&dsi_out>;
-120
Documentation/devicetree/bindings/display/zte,vou.txt
··· 1 - ZTE VOU Display Controller 2 - 3 - This is a display controller found on ZTE ZX296718 SoC. It includes multiple 4 - Graphic Layer (GL) and Video Layer (VL), two Mixers/Channels, and a few blocks 5 - handling scaling, color space conversion etc. VOU also integrates the support 6 - for typical output devices, like HDMI, TV Encoder, VGA, and RGB LCD. 7 - 8 - * Master VOU node 9 - 10 - It must be the parent node of all the sub-device nodes. 11 - 12 - Required properties: 13 - - compatible: should be "zte,zx296718-vou" 14 - - #address-cells: should be <1> 15 - - #size-cells: should be <1> 16 - - ranges: list of address translations between VOU and sub-devices 17 - 18 - * VOU DPC device 19 - 20 - Required properties: 21 - - compatible: should be "zte,zx296718-dpc" 22 - - reg: Physical base address and length of DPC register regions, one for each 23 - entry in 'reg-names' 24 - - reg-names: The names of register regions. The following regions are required: 25 - "osd" 26 - "timing_ctrl" 27 - "dtrc" 28 - "vou_ctrl" 29 - "otfppu" 30 - - interrupts: VOU DPC interrupt number to CPU 31 - - clocks: A list of phandle + clock-specifier pairs, one for each entry 32 - in 'clock-names' 33 - - clock-names: A list of clock names. The following clocks are required: 34 - "aclk" 35 - "ppu_wclk" 36 - "main_wclk" 37 - "aux_wclk" 38 - 39 - * HDMI output device 40 - 41 - Required properties: 42 - - compatible: should be "zte,zx296718-hdmi" 43 - - reg: Physical base address and length of the HDMI device IO region 44 - - interrupts : HDMI interrupt number to CPU 45 - - clocks: A list of phandle + clock-specifier pairs, one for each entry 46 - in 'clock-names' 47 - - clock-names: A list of clock names. The following clocks are required: 48 - "osc_cec" 49 - "osc_clk" 50 - "xclk" 51 - 52 - * TV Encoder output device 53 - 54 - Required properties: 55 - - compatible: should be "zte,zx296718-tvenc" 56 - - reg: Physical base address and length of the TVENC device IO region 57 - - zte,tvenc-power-control: the phandle to SYSCTRL block followed by two 58 - integer cells. The first cell is the offset of SYSCTRL register used 59 - to control TV Encoder DAC power, and the second cell is the bit mask. 60 - 61 - * VGA output device 62 - 63 - Required properties: 64 - - compatible: should be "zte,zx296718-vga" 65 - - reg: Physical base address and length of the VGA device IO region 66 - - interrupts : VGA interrupt number to CPU 67 - - clocks: Phandle with clock-specifier pointing to VGA I2C clock. 68 - - clock-names: Must be "i2c_wclk". 69 - - zte,vga-power-control: the phandle to SYSCTRL block followed by two 70 - integer cells. The first cell is the offset of SYSCTRL register used 71 - to control VGA DAC power, and the second cell is the bit mask. 72 - 73 - Example: 74 - 75 - vou: vou@1440000 { 76 - compatible = "zte,zx296718-vou"; 77 - #address-cells = <1>; 78 - #size-cells = <1>; 79 - ranges = <0 0x1440000 0x10000>; 80 - 81 - dpc: dpc@0 { 82 - compatible = "zte,zx296718-dpc"; 83 - reg = <0x0000 0x1000>, <0x1000 0x1000>, 84 - <0x5000 0x1000>, <0x6000 0x1000>, 85 - <0xa000 0x1000>; 86 - reg-names = "osd", "timing_ctrl", 87 - "dtrc", "vou_ctrl", 88 - "otfppu"; 89 - interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; 90 - clocks = <&topcrm VOU_ACLK>, <&topcrm VOU_PPU_WCLK>, 91 - <&topcrm VOU_MAIN_WCLK>, <&topcrm VOU_AUX_WCLK>; 92 - clock-names = "aclk", "ppu_wclk", 93 - "main_wclk", "aux_wclk"; 94 - }; 95 - 96 - vga: vga@8000 { 97 - compatible = "zte,zx296718-vga"; 98 - reg = <0x8000 0x1000>; 99 - interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 100 - clocks = <&topcrm VGA_I2C_WCLK>; 101 - clock-names = "i2c_wclk"; 102 - zte,vga-power-control = <&sysctrl 0x170 0xe0>; 103 - }; 104 - 105 - hdmi: hdmi@c000 { 106 - compatible = "zte,zx296718-hdmi"; 107 - reg = <0xc000 0x4000>; 108 - interrupts = <GIC_SPI 82 IRQ_TYPE_EDGE_RISING>; 109 - clocks = <&topcrm HDMI_OSC_CEC>, 110 - <&topcrm HDMI_OSC_CLK>, 111 - <&topcrm HDMI_XCLK>; 112 - clock-names = "osc_cec", "osc_clk", "xclk"; 113 - }; 114 - 115 - tvenc: tvenc@2000 { 116 - compatible = "zte,zx296718-tvenc"; 117 - reg = <0x2000 0x1000>; 118 - zte,tvenc-power-control = <&sysctrl 0x170 0x10>; 119 - }; 120 - };
+6 -6
Documentation/devicetree/bindings/dma/allwinner,sun6i-a31-dma.yaml
··· 19 19 description: The cell is the request line number. 20 20 21 21 compatible: 22 - oneOf: 23 - - const: allwinner,sun6i-a31-dma 24 - - const: allwinner,sun8i-a23-dma 25 - - const: allwinner,sun8i-a83t-dma 26 - - const: allwinner,sun8i-h3-dma 27 - - const: allwinner,sun8i-v3s-dma 22 + enum: 23 + - allwinner,sun6i-a31-dma 24 + - allwinner,sun8i-a23-dma 25 + - allwinner,sun8i-a83t-dma 26 + - allwinner,sun8i-h3-dma 27 + - allwinner,sun8i-v3s-dma 28 28 29 29 reg: 30 30 maxItems: 1
+3 -3
Documentation/devicetree/bindings/firmware/arm,scpi.yaml
··· 131 131 132 132 properties: 133 133 compatible: 134 - oneOf: 135 - - const: arm,scpi-dvfs-clocks 136 - - const: arm,scpi-variable-clocks 134 + enum: 135 + - arm,scpi-dvfs-clocks 136 + - arm,scpi-variable-clocks 137 137 138 138 '#clock-cells': 139 139 const: 1
-25
Documentation/devicetree/bindings/fpga/xlnx,zynqmp-pcap-fpga.txt
··· 1 - Devicetree bindings for Zynq Ultrascale MPSoC FPGA Manager. 2 - The ZynqMP SoC uses the PCAP (Processor configuration Port) to configure the 3 - Programmable Logic (PL). The configuration uses the firmware interface. 4 - 5 - Required properties: 6 - - compatible: should contain "xlnx,zynqmp-pcap-fpga" 7 - 8 - Example for full FPGA configuration: 9 - 10 - fpga-region0 { 11 - compatible = "fpga-region"; 12 - fpga-mgr = <&zynqmp_pcap>; 13 - #address-cells = <0x1>; 14 - #size-cells = <0x1>; 15 - }; 16 - 17 - firmware { 18 - zynqmp_firmware: zynqmp-firmware { 19 - compatible = "xlnx,zynqmp-firmware"; 20 - method = "smc"; 21 - zynqmp_pcap: pcap { 22 - compatible = "xlnx,zynqmp-pcap-fpga"; 23 - }; 24 - }; 25 - };
+36
Documentation/devicetree/bindings/fpga/xlnx,zynqmp-pcap-fpga.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/fpga/xlnx,zynqmp-pcap-fpga.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Xilinx Zynq Ultrascale MPSoC FPGA Manager Device Tree Bindings 8 + 9 + maintainers: 10 + - Nava kishore Manne <navam@xilinx.com> 11 + 12 + description: | 13 + Device Tree Bindings for Zynq Ultrascale MPSoC FPGA Manager. 14 + The ZynqMP SoC uses the PCAP (Processor Configuration Port) to 15 + configure the Programmable Logic (PL). The configuration uses the 16 + firmware interface. 17 + 18 + properties: 19 + compatible: 20 + const: xlnx,zynqmp-pcap-fpga 21 + 22 + required: 23 + - compatible 24 + 25 + additionalProperties: false 26 + 27 + examples: 28 + - | 29 + firmware { 30 + zynqmp_firmware: zynqmp-firmware { 31 + zynqmp_pcap: pcap { 32 + compatible = "xlnx,zynqmp-pcap-fpga"; 33 + }; 34 + }; 35 + }; 36 + ...
+1
Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
··· 20 20 - mediatek,mt8183-mali 21 21 - realtek,rtd1619-mali 22 22 - rockchip,px30-mali 23 + - rockchip,rk3568-mali 23 24 - const: arm,mali-bifrost # Mali Bifrost GPU model/revision is fully discoverable 24 25 25 26 reg:
-12
Documentation/devicetree/bindings/hwmon/max1619.txt
··· 1 - Bindings for MAX1619 Temperature Sensor 2 - 3 - Required properties: 4 - - compatible : "maxim,max1619" 5 - - reg : I2C address, one of 0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b, 0x4c, or 6 - 0x4d, 0x4e 7 - 8 - Example: 9 - temp@4c { 10 - compatible = "maxim,max1619"; 11 - reg = <0x4c>; 12 - };
-46
Documentation/devicetree/bindings/i2c/brcm,iproc-i2c.txt
··· 1 - Broadcom iProc I2C controller 2 - 3 - Required properties: 4 - 5 - - compatible: 6 - Must be "brcm,iproc-i2c" or "brcm,iproc-nic-i2c" 7 - 8 - - reg: 9 - Define the base and range of the I/O address space that contain the iProc 10 - I2C controller registers 11 - 12 - - clock-frequency: 13 - This is the I2C bus clock. Need to be either 100000 or 400000 14 - 15 - - #address-cells: 16 - Always 1 (for I2C addresses) 17 - 18 - - #size-cells: 19 - Always 0 20 - 21 - Optional properties: 22 - 23 - - interrupts: 24 - Should contain the I2C interrupt. For certain revisions of the I2C 25 - controller, I2C interrupt is unwired to the interrupt controller. In such 26 - case, this property should be left unspecified, and driver will fall back 27 - to polling mode 28 - 29 - - brcm,ape-hsls-addr-mask: 30 - Required for "brcm,iproc-nic-i2c". Host view of address mask into the 31 - 'APE' co-processor. Value must be unsigned, 32-bit 32 - 33 - Example: 34 - i2c0: i2c@18008000 { 35 - compatible = "brcm,iproc-i2c"; 36 - reg = <0x18008000 0x100>; 37 - #address-cells = <1>; 38 - #size-cells = <0>; 39 - interrupts = <GIC_SPI 85 IRQ_TYPE_NONE>; 40 - clock-frequency = <100000>; 41 - 42 - codec: wm8750@1a { 43 - compatible = "wlf,wm8750"; 44 - reg = <0x1a>; 45 - }; 46 - };
+71
Documentation/devicetree/bindings/i2c/brcm,iproc-i2c.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/i2c/brcm,iproc-i2c.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Broadcom iProc I2C controller 8 + 9 + maintainers: 10 + - Rafał Miłecki <rafal@milecki.pl> 11 + 12 + properties: 13 + compatible: 14 + enum: 15 + - brcm,iproc-i2c 16 + - brcm,iproc-nic-i2c 17 + 18 + reg: 19 + maxItems: 1 20 + 21 + clock-frequency: 22 + enum: [ 100000, 400000 ] 23 + 24 + interrupts: 25 + description: | 26 + Should contain the I2C interrupt. For certain revisions of the I2C 27 + controller, I2C interrupt is unwired to the interrupt controller. In such 28 + case, this property should be left unspecified, and driver will fall back 29 + to polling mode 30 + maxItems: 1 31 + 32 + brcm,ape-hsls-addr-mask: 33 + $ref: /schemas/types.yaml#/definitions/uint32 34 + description: Host view of address mask into the 'APE' co-processor 35 + 36 + allOf: 37 + - $ref: /schemas/i2c/i2c-controller.yaml# 38 + - if: 39 + properties: 40 + compatible: 41 + contains: 42 + const: brcm,iproc-nic-i2c 43 + then: 44 + required: 45 + - brcm,ape-hsls-addr-mask 46 + 47 + unevaluatedProperties: false 48 + 49 + required: 50 + - reg 51 + - clock-frequency 52 + - '#address-cells' 53 + - '#size-cells' 54 + 55 + examples: 56 + - | 57 + #include <dt-bindings/interrupt-controller/arm-gic.h> 58 + 59 + i2c@18008000 { 60 + compatible = "brcm,iproc-i2c"; 61 + reg = <0x18008000 0x100>; 62 + #address-cells = <1>; 63 + #size-cells = <0>; 64 + interrupts = <GIC_SPI 85 IRQ_TYPE_NONE>; 65 + clock-frequency = <100000>; 66 + 67 + wm8750@1a { 68 + compatible = "wlf,wm8750"; 69 + reg = <0x1a>; 70 + }; 71 + };
+5 -5
Documentation/devicetree/bindings/i2c/ti,omap4-i2c.yaml
··· 72 72 if: 73 73 properties: 74 74 compatible: 75 - oneOf: 76 - - const: ti,omap2420-i2c 77 - - const: ti,omap2430-i2c 78 - - const: ti,omap3-i2c 79 - - const: ti,omap4-i2c 75 + enum: 76 + - ti,omap2420-i2c 77 + - ti,omap2430-i2c 78 + - ti,omap3-i2c 79 + - ti,omap4-i2c 80 80 81 81 then: 82 82 properties:
+4 -4
Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml
··· 19 19 20 20 properties: 21 21 compatible: 22 - oneOf: 23 - - const: loongson,liointc-1.0 24 - - const: loongson,liointc-1.0a 25 - - const: loongson,liointc-2.0 22 + enum: 23 + - loongson,liointc-1.0 24 + - loongson,liointc-1.0a 25 + - loongson,liointc-2.0 26 26 27 27 reg: 28 28 minItems: 1
-50
Documentation/devicetree/bindings/interrupt-controller/samsung,exynos4210-combiner.txt
··· 1 - * Samsung Exynos Interrupt Combiner Controller 2 - 3 - Samsung's Exynos4 architecture includes a interrupt combiner controller which 4 - can combine interrupt sources as a group and provide a single interrupt request 5 - for the group. The interrupt request from each group are connected to a parent 6 - interrupt controller, such as GIC in case of Exynos4210. 7 - 8 - The interrupt combiner controller consists of multiple combiners. Up to eight 9 - interrupt sources can be connected to a combiner. The combiner outputs one 10 - combined interrupt for its eight interrupt sources. The combined interrupt 11 - is usually connected to a parent interrupt controller. 12 - 13 - A single node in the device tree is used to describe the interrupt combiner 14 - controller module (which includes multiple combiners). A combiner in the 15 - interrupt controller module shares config/control registers with other 16 - combiners. For example, a 32-bit interrupt enable/disable config register 17 - can accommodate up to 4 interrupt combiners (with each combiner supporting 18 - up to 8 interrupt sources). 19 - 20 - Required properties: 21 - - compatible: should be "samsung,exynos4210-combiner". 22 - - interrupt-controller: Identifies the node as an interrupt controller. 23 - - #interrupt-cells: should be <2>. The meaning of the cells are 24 - * First Cell: Combiner Group Number. 25 - * Second Cell: Interrupt number within the group. 26 - - reg: Base address and size of interrupt combiner registers. 27 - - interrupts: The list of interrupts generated by the combiners which are then 28 - connected to a parent interrupt controller. The format of the interrupt 29 - specifier depends in the interrupt parent controller. 30 - 31 - Optional properties: 32 - - samsung,combiner-nr: The number of interrupt combiners supported. If this 33 - property is not specified, the default number of combiners is assumed 34 - to be 16. 35 - 36 - 37 - Example: 38 - 39 - The following is a an example from the Exynos4210 SoC dtsi file. 40 - 41 - combiner:interrupt-controller@10440000 { 42 - compatible = "samsung,exynos4210-combiner"; 43 - interrupt-controller; 44 - #interrupt-cells = <2>; 45 - reg = <0x10440000 0x1000>; 46 - interrupts = <0 0 0>, <0 1 0>, <0 2 0>, <0 3 0>, 47 - <0 4 0>, <0 5 0>, <0 6 0>, <0 7 0>, 48 - <0 8 0>, <0 9 0>, <0 10 0>, <0 11 0>, 49 - <0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>; 50 - };
+96
Documentation/devicetree/bindings/interrupt-controller/samsung,exynos4210-combiner.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/interrupt-controller/samsung,exynos4210-combiner.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Samsung Exynos SoC Interrupt Combiner Controller 8 + 9 + maintainers: 10 + - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> 11 + 12 + description: | 13 + Samsung's Exynos4 architecture includes a interrupt combiner controller which 14 + can combine interrupt sources as a group and provide a single interrupt 15 + request for the group. The interrupt request from each group are connected to 16 + a parent interrupt controller, such as GIC in case of Exynos4210. 17 + 18 + The interrupt combiner controller consists of multiple combiners. Up to eight 19 + interrupt sources can be connected to a combiner. The combiner outputs one 20 + combined interrupt for its eight interrupt sources. The combined interrupt is 21 + usually connected to a parent interrupt controller. 22 + 23 + A single node in the device tree is used to describe the interrupt combiner 24 + controller module (which includes multiple combiners). A combiner in the 25 + interrupt controller module shares config/control registers with other 26 + combiners. For example, a 32-bit interrupt enable/disable config register can 27 + accommodate up to 4 interrupt combiners (with each combiner supporting up to 28 + 8 interrupt sources). 29 + 30 + allOf: 31 + - $ref: /schemas/interrupt-controller.yaml# 32 + 33 + properties: 34 + compatible: 35 + const: samsung,exynos4210-combiner 36 + 37 + interrupt-controller: true 38 + 39 + interrupts: 40 + minItems: 8 41 + maxItems: 32 42 + 43 + "#interrupt-cells": 44 + description: | 45 + The meaning of the cells are: 46 + * First Cell: Combiner Group Number. 47 + * Second Cell: Interrupt number within the group. 48 + const: 2 49 + 50 + reg: 51 + maxItems: 1 52 + 53 + samsung,combiner-nr: 54 + description: | 55 + The number of interrupt combiners supported. Should match number 56 + of interrupts set in "interrupts" property. 57 + $ref: /schemas/types.yaml#/definitions/uint32 58 + minimum: 8 59 + maximum: 32 60 + default: 16 61 + 62 + required: 63 + - compatible 64 + - interrupt-controller 65 + - interrupts 66 + - "#interrupt-cells" 67 + - reg 68 + 69 + additionalProperties: false 70 + 71 + examples: 72 + - | 73 + #include <dt-bindings/interrupt-controller/arm-gic.h> 74 + 75 + interrupt-controller@10440000 { 76 + compatible = "samsung,exynos4210-combiner"; 77 + interrupt-controller; 78 + #interrupt-cells = <2>; 79 + reg = <0x10440000 0x1000>; 80 + interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, 81 + <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>, 82 + <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>, 83 + <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>, 84 + <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>, 85 + <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>, 86 + <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>, 87 + <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>, 88 + <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, 89 + <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, 90 + <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>, 91 + <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, 92 + <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>, 93 + <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>, 94 + <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>, 95 + <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 96 + };
+3 -1
Documentation/devicetree/bindings/interrupt-controller/ti,pruss-intc.yaml
··· 46 46 AM437x family of SoCs, 47 47 AM57xx family of SoCs 48 48 66AK2G family of SoCs 49 - Use "ti,icssg-intc" for K3 AM65x & J721E family of SoCs 49 + Use "ti,icssg-intc" for K3 AM65x, J721E and AM64x family of SoCs 50 50 51 51 reg: 52 52 maxItems: 1 ··· 95 95 - AM65x and J721E SoCs have "host_intr5", "host_intr6" and 96 96 "host_intr7" interrupts connected to MPU, and other ICSSG 97 97 instances. 98 + - AM64x SoCs have all the 8 host interrupts connected to various 99 + other SoC entities 98 100 99 101 required: 100 102 - compatible
+2 -1
Documentation/devicetree/bindings/media/atmel,isc.yaml
··· 44 44 const: isc-mck 45 45 46 46 port: 47 - $ref: /schemas/graph.yaml#/properties/port 47 + $ref: /schemas/graph.yaml#/$defs/port-base 48 + unevaluatedProperties: false 48 49 description: 49 50 Input port node, single endpoint describing the input pad. 50 51
+4 -4
Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml
··· 83 83 link-frequencies: true 84 84 data-lanes: true 85 85 bus-type: 86 - oneOf: 87 - - const: 1 # CSI-2 C-PHY 88 - - const: 3 # CCP2 89 - - const: 4 # CSI-2 D-PHY 86 + enum: 87 + - 1 # CSI-2 C-PHY 88 + - 3 # CCP2 89 + - 4 # CSI-2 D-PHY 90 90 91 91 required: 92 92 - link-frequencies
+1 -1
Documentation/devicetree/bindings/media/microchip,xisc.yaml
··· 52 52 of the data and clock lines. 53 53 54 54 port: 55 - $ref: /schemas/graph.yaml#/properties/port 55 + $ref: /schemas/graph.yaml#/$defs/port-base 56 56 description: 57 57 Input port node, single endpoint describing the input pad. 58 58
-2
Documentation/devicetree/bindings/media/nxp,imx7-mipi-csi2.yaml
··· 200 200 clock-names = "pclk", "wrap", "phy", "axi"; 201 201 power-domains = <&mipi_pd>; 202 202 203 - status = "disabled"; 204 - 205 203 ports { 206 204 #address-cells = <1>; 207 205 #size-cells = <0>;
+1 -2
Documentation/devicetree/bindings/media/renesas,drif.yaml
··· 96 96 Indicates that the channel acts as primary among the bonded channels. 97 97 98 98 port: 99 - $ref: /schemas/graph.yaml#/properties/port 99 + $ref: /schemas/graph.yaml#/$defs/port-base 100 100 unevaluatedProperties: false 101 101 description: 102 102 Child port node corresponding to the data input. The port node must ··· 242 242 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 243 243 resets = <&cpg 513>; 244 244 renesas,bonding = <&drif11>; 245 - status = "disabled"; 246 245 }; 247 246 248 247 drif11: rif@e6f70000 {
-35
Documentation/devicetree/bindings/memory-controllers/ath79-ddr-controller.txt
··· 1 - Binding for Qualcomm Atheros AR7xxx/AR9xxx DDR controller 2 - 3 - The DDR controller of the AR7xxx and AR9xxx families provides an interface 4 - to flush the FIFO between various devices and the DDR. This is mainly used 5 - by the IRQ controller to flush the FIFO before running the interrupt handler 6 - of such devices. 7 - 8 - Required properties: 9 - 10 - - compatible: has to be "qca,<soc-type>-ddr-controller", 11 - "qca,[ar7100|ar7240]-ddr-controller" as fallback. 12 - On SoC with PCI support "qca,ar7100-ddr-controller" should be used as 13 - fallback, otherwise "qca,ar7240-ddr-controller" should be used. 14 - - reg: Base address and size of the controller's memory area 15 - - #qca,ddr-wb-channel-cells: Specifies the number of cells needed to encode 16 - the write buffer channel index, should be 1. 17 - 18 - Example: 19 - 20 - ddr_ctrl: memory-controller@18000000 { 21 - compatible = "qca,ar9132-ddr-controller", 22 - "qca,ar7240-ddr-controller"; 23 - reg = <0x18000000 0x100>; 24 - 25 - #qca,ddr-wb-channel-cells = <1>; 26 - }; 27 - 28 - ... 29 - 30 - interrupt-controller { 31 - ... 32 - qca,ddr-wb-channel-interrupts = <2>, <3>, <4>, <5>; 33 - qca,ddr-wb-channels = <&ddr_ctrl 3>, <&ddr_ctrl 2>, 34 - <&ddr_ctrl 0>, <&ddr_ctrl 1>; 35 - };
-27
Documentation/devicetree/bindings/memory-controllers/brcm,dpfe-cpu.txt
··· 1 - DDR PHY Front End (DPFE) for Broadcom STB 2 - ========================================= 3 - 4 - DPFE and the DPFE firmware provide an interface for the host CPU to 5 - communicate with the DCPU, which resides inside the DDR PHY. 6 - 7 - There are three memory regions for interacting with the DCPU. These are 8 - specified in a single reg property. 9 - 10 - Required properties: 11 - - compatible: must be "brcm,bcm7271-dpfe-cpu", "brcm,bcm7268-dpfe-cpu" 12 - or "brcm,dpfe-cpu" 13 - - reg: must reference three register ranges 14 - - start address and length of the DCPU register space 15 - - start address and length of the DCPU data memory space 16 - - start address and length of the DCPU instruction memory space 17 - - reg-names: must contain "dpfe-cpu", "dpfe-dmem", and "dpfe-imem"; 18 - they must be in the same order as the register declarations 19 - 20 - Example: 21 - dpfe_cpu0: dpfe-cpu@f1132000 { 22 - compatible = "brcm,bcm7271-dpfe-cpu", "brcm,dpfe-cpu"; 23 - reg = <0xf1132000 0x180 24 - 0xf1134000 0x1000 25 - 0xf1138000 0x4000>; 26 - reg-names = "dpfe-cpu", "dpfe-dmem", "dpfe-imem"; 27 - };
+48
Documentation/devicetree/bindings/memory-controllers/brcm,dpfe-cpu.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/memory-controllers/brcm,dpfe-cpu.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: DDR PHY Front End (DPFE) for Broadcom STB 8 + 9 + maintainers: 10 + - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> 11 + - Markus Mayer <mmayer@broadcom.com> 12 + 13 + properties: 14 + compatible: 15 + items: 16 + - enum: 17 + - brcm,bcm7271-dpfe-cpu 18 + - brcm,bcm7268-dpfe-cpu 19 + - const: brcm,dpfe-cpu 20 + 21 + reg: 22 + items: 23 + - description: DCPU register space 24 + - description: DCPU data memory space 25 + - description: DCPU instruction memory space 26 + 27 + reg-names: 28 + items: 29 + - const: dpfe-cpu 30 + - const: dpfe-dmem 31 + - const: dpfe-imem 32 + 33 + required: 34 + - compatible 35 + - reg 36 + - reg-names 37 + 38 + additionalProperties: false 39 + 40 + examples: 41 + - | 42 + dpfe-cpu@f1132000 { 43 + compatible = "brcm,bcm7271-dpfe-cpu", "brcm,dpfe-cpu"; 44 + reg = <0xf1132000 0x180>, 45 + <0xf1134000 0x1000>, 46 + <0xf1138000 0x4000>; 47 + reg-names = "dpfe-cpu", "dpfe-dmem", "dpfe-imem"; 48 + };
-84
Documentation/devicetree/bindings/memory-controllers/exynos5422-dmc.txt
··· 1 - * Exynos5422 frequency and voltage scaling for Dynamic Memory Controller device 2 - 3 - The Samsung Exynos5422 SoC has DMC (Dynamic Memory Controller) to which the DRAM 4 - memory chips are connected. The driver is to monitor the controller in runtime 5 - and switch frequency and voltage. To monitor the usage of the controller in 6 - runtime, the driver uses the PPMU (Platform Performance Monitoring Unit), which 7 - is able to measure the current load of the memory. 8 - When 'userspace' governor is used for the driver, an application is able to 9 - switch the DMC and memory frequency. 10 - 11 - Required properties for DMC device for Exynos5422: 12 - - compatible: Should be "samsung,exynos5422-dmc". 13 - - clocks : list of clock specifiers, must contain an entry for each 14 - required entry in clock-names for CLK_FOUT_SPLL, CLK_MOUT_SCLK_SPLL, 15 - CLK_FF_DOUT_SPLL2, CLK_FOUT_BPLL, CLK_MOUT_BPLL, CLK_SCLK_BPLL, 16 - CLK_MOUT_MX_MSPLL_CCORE, CLK_MOUT_MX_MSPLL_CCORE_PHY, CLK_MOUT_MCLK_CDREX, 17 - - clock-names : should include "fout_spll", "mout_sclk_spll", "ff_dout_spll2", 18 - "fout_bpll", "mout_bpll", "sclk_bpll", "mout_mx_mspll_ccore", 19 - "mout_mclk_cdrex" entries 20 - - devfreq-events : phandles for PPMU devices connected to this DMC. 21 - - vdd-supply : phandle for voltage regulator which is connected. 22 - - reg : registers of two CDREX controllers. 23 - - operating-points-v2 : phandle for OPPs described in v2 definition. 24 - - device-handle : phandle of the connected DRAM memory device. For more 25 - information please refer to documentation file: 26 - Documentation/devicetree/bindings/ddr/lpddr3.txt 27 - - devfreq-events : phandles of the PPMU events used by the controller. 28 - - samsung,syscon-clk : phandle of the clock register set used by the controller, 29 - these registers are used for enabling a 'pause' feature and are not 30 - exposed by clock framework but they must be used in a safe way. 31 - The register offsets are in the driver code and specyfic for this SoC 32 - type. 33 - 34 - Optional properties for DMC device for Exynos5422: 35 - - interrupt-parent : The parent interrupt controller. 36 - - interrupts : Contains the IRQ line numbers for the DMC internal performance 37 - event counters in DREX0 and DREX1 channels. Align with specification of the 38 - interrupt line(s) in the interrupt-parent controller. 39 - - interrupt-names : IRQ names "drex_0" and "drex_1", the order should be the 40 - same as in the 'interrupts' list above. 41 - 42 - Example: 43 - 44 - ppmu_dmc0_0: ppmu@10d00000 { 45 - compatible = "samsung,exynos-ppmu"; 46 - reg = <0x10d00000 0x2000>; 47 - clocks = <&clock CLK_PCLK_PPMU_DREX0_0>; 48 - clock-names = "ppmu"; 49 - events { 50 - ppmu_event_dmc0_0: ppmu-event3-dmc0_0 { 51 - event-name = "ppmu-event3-dmc0_0"; 52 - }; 53 - }; 54 - }; 55 - 56 - dmc: memory-controller@10c20000 { 57 - compatible = "samsung,exynos5422-dmc"; 58 - reg = <0x10c20000 0x10000>, <0x10c30000 0x10000>; 59 - clocks = <&clock CLK_FOUT_SPLL>, 60 - <&clock CLK_MOUT_SCLK_SPLL>, 61 - <&clock CLK_FF_DOUT_SPLL2>, 62 - <&clock CLK_FOUT_BPLL>, 63 - <&clock CLK_MOUT_BPLL>, 64 - <&clock CLK_SCLK_BPLL>, 65 - <&clock CLK_MOUT_MX_MSPLL_CCORE>, 66 - <&clock CLK_MOUT_MCLK_CDREX>; 67 - clock-names = "fout_spll", 68 - "mout_sclk_spll", 69 - "ff_dout_spll2", 70 - "fout_bpll", 71 - "mout_bpll", 72 - "sclk_bpll", 73 - "mout_mx_mspll_ccore", 74 - "mout_mclk_cdrex"; 75 - operating-points-v2 = <&dmc_opp_table>; 76 - devfreq-events = <&ppmu_event3_dmc0_0>, <&ppmu_event3_dmc0_1>, 77 - <&ppmu_event3_dmc1_0>, <&ppmu_event3_dmc1_1>; 78 - device-handle = <&samsung_K3QF2F20DB>; 79 - vdd-supply = <&buck1_reg>; 80 - samsung,syscon-clk = <&clock>; 81 - interrupt-parent = <&combiner>; 82 - interrupts = <16 0>, <16 1>; 83 - interrupt-names = "drex_0", "drex_1"; 84 - };
+31
Documentation/devicetree/bindings/memory-controllers/marvell,mvebu-sdram-controller.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/memory-controllers/marvell,mvebu-sdram-controller.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Marvell MVEBU SDRAM controller 8 + 9 + maintainers: 10 + - Jan Luebbe <jlu@pengutronix.de> 11 + - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> 12 + 13 + properties: 14 + compatible: 15 + const: marvell,armada-xp-sdram-controller 16 + 17 + reg: 18 + maxItems: 1 19 + 20 + required: 21 + - compatible 22 + - reg 23 + 24 + additionalProperties: false 25 + 26 + examples: 27 + - | 28 + memory-controller@1400 { 29 + compatible = "marvell,armada-xp-sdram-controller"; 30 + reg = <0x1400 0x500>; 31 + };
-21
Documentation/devicetree/bindings/memory-controllers/mvebu-sdram-controller.txt
··· 1 - Device Tree bindings for MVEBU SDRAM controllers 2 - 3 - The Marvell EBU SoCs all have a SDRAM controller. The SDRAM controller 4 - differs from one SoC variant to another, but they also share a number 5 - of commonalities. 6 - 7 - For now, this Device Tree binding documentation only documents the 8 - Armada XP SDRAM controller. 9 - 10 - Required properties: 11 - 12 - - compatible: for Armada XP, "marvell,armada-xp-sdram-controller" 13 - - reg: a resource specifier for the register space, which should 14 - include all SDRAM controller registers as per the datasheet. 15 - 16 - Example: 17 - 18 - sdramc@1400 { 19 - compatible = "marvell,armada-xp-sdram-controller"; 20 - reg = <0x1400 0x500>; 21 - };
+61
Documentation/devicetree/bindings/memory-controllers/qca,ath79-ddr-controller.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/memory-controllers/qca,ath79-ddr-controller.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Qualcomm Atheros AR7xxx/AR9xxx DDR controller 8 + 9 + maintainers: 10 + - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> 11 + 12 + description: | 13 + The DDR controller of the AR7xxx and AR9xxx families provides an interface to 14 + flush the FIFO between various devices and the DDR. This is mainly used by 15 + the IRQ controller to flush the FIFO before running the interrupt handler of 16 + such devices. 17 + 18 + properties: 19 + compatible: 20 + oneOf: 21 + - items: 22 + - const: qca,ar9132-ddr-controller 23 + - const: qca,ar7240-ddr-controller 24 + - items: 25 + - enum: 26 + - qca,ar7100-ddr-controller 27 + - qca,ar7240-ddr-controller 28 + 29 + "#qca,ddr-wb-channel-cells": 30 + description: | 31 + Specifies the number of cells needed to encode the write buffer channel 32 + index. 33 + $ref: /schemas/types.yaml#/definitions/uint32 34 + const: 1 35 + 36 + reg: 37 + maxItems: 1 38 + 39 + required: 40 + - compatible 41 + - "#qca,ddr-wb-channel-cells" 42 + - reg 43 + 44 + additionalProperties: false 45 + 46 + examples: 47 + - | 48 + ddr_ctrl: memory-controller@18000000 { 49 + compatible = "qca,ar9132-ddr-controller", 50 + "qca,ar7240-ddr-controller"; 51 + reg = <0x18000000 0x100>; 52 + 53 + #qca,ddr-wb-channel-cells = <1>; 54 + }; 55 + 56 + interrupt-controller { 57 + // ... 58 + qca,ddr-wb-channel-interrupts = <2>, <3>, <4>, <5>; 59 + qca,ddr-wb-channels = <&ddr_ctrl 3>, <&ddr_ctrl 2>, 60 + <&ddr_ctrl 0>, <&ddr_ctrl 1>; 61 + };
-12
Documentation/devicetree/bindings/memory-controllers/renesas,h8300-bsc.txt
··· 1 - * H8/300 bus controller 2 - 3 - Required properties: 4 - - compatible: Must be "renesas,h8300-bsc". 5 - - reg: Base address and length of BSC registers. 6 - 7 - Example. 8 - bsc: memory-controller@fee01e { 9 - compatible = "renesas,h8300h-bsc", "renesas,h8300-bsc"; 10 - reg = <0xfee01e 8>; 11 - }; 12 -
+35
Documentation/devicetree/bindings/memory-controllers/renesas,h8300-bsc.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/memory-controllers/renesas,h8300-bsc.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: H8/300 bus controller 8 + 9 + maintainers: 10 + - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> 11 + - Yoshinori Sato <ysato@users.sourceforge.jp> 12 + 13 + properties: 14 + compatible: 15 + items: 16 + - enum: 17 + - renesas,h8300h-bsc 18 + - renesas,h8s-bsc 19 + - const: renesas,h8300-bsc 20 + 21 + reg: 22 + maxItems: 1 23 + 24 + required: 25 + - compatible 26 + - reg 27 + 28 + additionalProperties: false 29 + 30 + examples: 31 + - | 32 + memory-controller@fee01e { 33 + compatible = "renesas,h8300h-bsc", "renesas,h8300-bsc"; 34 + reg = <0xfee01e 8>; 35 + };
+14 -3
Documentation/devicetree/bindings/memory-controllers/renesas,rpc-if.yaml
··· 61 61 type: object 62 62 properties: 63 63 compatible: 64 - enum: 65 - - cfi-flash 66 - - jedec,spi-nor 64 + contains: 65 + enum: 66 + - cfi-flash 67 + - jedec,spi-nor 67 68 68 69 unevaluatedProperties: false 70 + 71 + required: 72 + - compatible 73 + - reg 74 + - reg-names 75 + - clocks 76 + - power-domains 77 + - resets 78 + - '#address-cells' 79 + - '#size-cells' 69 80 70 81 examples: 71 82 - |
+137
Documentation/devicetree/bindings/memory-controllers/samsung,exynos5422-dmc.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/memory-controllers/samsung,exynos5422-dmc.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: | 8 + Samsung Exynos5422 SoC frequency and voltage scaling for Dynamic Memory 9 + Controller device 10 + 11 + maintainers: 12 + - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> 13 + - Lukasz Luba <lukasz.luba@arm.com> 14 + 15 + description: | 16 + The Samsung Exynos5422 SoC has DMC (Dynamic Memory Controller) to which the 17 + DRAM memory chips are connected. The driver is to monitor the controller in 18 + runtime and switch frequency and voltage. To monitor the usage of the 19 + controller in runtime, the driver uses the PPMU (Platform Performance 20 + Monitoring Unit), which is able to measure the current load of the memory. 21 + When 'userspace' governor is used for the driver, an application is able to 22 + switch the DMC and memory frequency. 23 + 24 + properties: 25 + compatible: 26 + items: 27 + - const: samsung,exynos5422-dmc 28 + 29 + clock-names: 30 + items: 31 + - const: fout_spll 32 + - const: mout_sclk_spll 33 + - const: ff_dout_spll2 34 + - const: fout_bpll 35 + - const: mout_bpll 36 + - const: sclk_bpll 37 + - const: mout_mx_mspll_ccore 38 + - const: mout_mclk_cdrex 39 + 40 + clocks: 41 + minItems: 8 42 + maxItems: 8 43 + 44 + devfreq-events: 45 + $ref: '/schemas/types.yaml#/definitions/phandle-array' 46 + minItems: 1 47 + maxItems: 16 48 + description: phandles of the PPMU events used by the controller. 49 + 50 + device-handle: 51 + $ref: '/schemas/types.yaml#/definitions/phandle' 52 + description: | 53 + phandle of the connected DRAM memory device. For more information please 54 + refer to documentation file: Documentation/devicetree/bindings/ddr/lpddr3.txt 55 + 56 + operating-points-v2: true 57 + 58 + interrupts: 59 + items: 60 + - description: DMC internal performance event counters in DREX0 61 + - description: DMC internal performance event counters in DREX1 62 + 63 + interrupt-names: 64 + items: 65 + - const: drex_0 66 + - const: drex_1 67 + 68 + reg: 69 + items: 70 + - description: registers of DREX0 71 + - description: registers of DREX1 72 + 73 + samsung,syscon-clk: 74 + $ref: '/schemas/types.yaml#/definitions/phandle' 75 + description: | 76 + Phandle of the clock register set used by the controller, these registers 77 + are used for enabling a 'pause' feature and are not exposed by clock 78 + framework but they must be used in a safe way. The register offsets are 79 + in the driver code and specyfic for this SoC type. 80 + 81 + vdd-supply: true 82 + 83 + required: 84 + - compatible 85 + - clock-names 86 + - clocks 87 + - devfreq-events 88 + - device-handle 89 + - reg 90 + - samsung,syscon-clk 91 + 92 + additionalProperties: false 93 + 94 + examples: 95 + - | 96 + #include <dt-bindings/clock/exynos5420.h> 97 + ppmu_dmc0_0: ppmu@10d00000 { 98 + compatible = "samsung,exynos-ppmu"; 99 + reg = <0x10d00000 0x2000>; 100 + clocks = <&clock CLK_PCLK_PPMU_DREX0_0>; 101 + clock-names = "ppmu"; 102 + events { 103 + ppmu_event_dmc0_0: ppmu-event3-dmc0-0 { 104 + event-name = "ppmu-event3-dmc0_0"; 105 + }; 106 + }; 107 + }; 108 + 109 + memory-controller@10c20000 { 110 + compatible = "samsung,exynos5422-dmc"; 111 + reg = <0x10c20000 0x10000>, <0x10c30000 0x10000>; 112 + clocks = <&clock CLK_FOUT_SPLL>, 113 + <&clock CLK_MOUT_SCLK_SPLL>, 114 + <&clock CLK_FF_DOUT_SPLL2>, 115 + <&clock CLK_FOUT_BPLL>, 116 + <&clock CLK_MOUT_BPLL>, 117 + <&clock CLK_SCLK_BPLL>, 118 + <&clock CLK_MOUT_MX_MSPLL_CCORE>, 119 + <&clock CLK_MOUT_MCLK_CDREX>; 120 + clock-names = "fout_spll", 121 + "mout_sclk_spll", 122 + "ff_dout_spll2", 123 + "fout_bpll", 124 + "mout_bpll", 125 + "sclk_bpll", 126 + "mout_mx_mspll_ccore", 127 + "mout_mclk_cdrex"; 128 + operating-points-v2 = <&dmc_opp_table>; 129 + devfreq-events = <&ppmu_event3_dmc0_0>, <&ppmu_event3_dmc0_1>, 130 + <&ppmu_event3_dmc1_0>, <&ppmu_event3_dmc1_1>; 131 + device-handle = <&samsung_K3QF2F20DB>; 132 + vdd-supply = <&buck1_reg>; 133 + samsung,syscon-clk = <&clock>; 134 + interrupt-parent = <&combiner>; 135 + interrupts = <16 0>, <16 1>; 136 + interrupt-names = "drex_0", "drex_1"; 137 + };
+73
Documentation/devicetree/bindings/memory-controllers/synopsys,ddrc-ecc.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/memory-controllers/synopsys,ddrc-ecc.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Synopsys IntelliDDR Multi Protocol memory controller 8 + 9 + maintainers: 10 + - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> 11 + - Manish Narani <manish.narani@xilinx.com> 12 + - Michal Simek <michal.simek@xilinx.com> 13 + 14 + description: | 15 + The ZynqMP DDR ECC controller has an optional ECC support in 64-bit and 16 + 32-bit bus width configurations. 17 + 18 + The Zynq DDR ECC controller has an optional ECC support in half-bus width 19 + (16-bit) configuration. 20 + 21 + These both ECC controllers correct single bit ECC errors and detect double bit 22 + ECC errors. 23 + 24 + properties: 25 + compatible: 26 + enum: 27 + - xlnx,zynq-ddrc-a05 28 + - xlnx,zynqmp-ddrc-2.40a 29 + 30 + interrupts: 31 + maxItems: 1 32 + 33 + reg: 34 + maxItems: 1 35 + 36 + required: 37 + - compatible 38 + - reg 39 + 40 + allOf: 41 + - if: 42 + properties: 43 + compatible: 44 + contains: 45 + const: xlnx,zynqmp-ddrc-2.40a 46 + then: 47 + required: 48 + - interrupts 49 + else: 50 + properties: 51 + interrupts: false 52 + 53 + additionalProperties: false 54 + 55 + examples: 56 + - | 57 + memory-controller@f8006000 { 58 + compatible = "xlnx,zynq-ddrc-a05"; 59 + reg = <0xf8006000 0x1000>; 60 + }; 61 + 62 + - | 63 + axi { 64 + #address-cells = <2>; 65 + #size-cells = <2>; 66 + 67 + memory-controller@fd070000 { 68 + compatible = "xlnx,zynqmp-ddrc-2.40a"; 69 + reg = <0x0 0xfd070000 0x0 0x30000>; 70 + interrupt-parent = <&gic>; 71 + interrupts = <0 112 4>; 72 + }; 73 + };
-32
Documentation/devicetree/bindings/memory-controllers/synopsys.txt
··· 1 - Binding for Synopsys IntelliDDR Multi Protocol Memory Controller 2 - 3 - The ZynqMP DDR ECC controller has an optional ECC support in 64-bit and 32-bit 4 - bus width configurations. 5 - 6 - The Zynq DDR ECC controller has an optional ECC support in half-bus width 7 - (16-bit) configuration. 8 - 9 - These both ECC controllers correct single bit ECC errors and detect double bit 10 - ECC errors. 11 - 12 - Required properties: 13 - - compatible: One of: 14 - - 'xlnx,zynq-ddrc-a05' : Zynq DDR ECC controller 15 - - 'xlnx,zynqmp-ddrc-2.40a' : ZynqMP DDR ECC controller 16 - - reg: Should contain DDR controller registers location and length. 17 - 18 - Required properties for "xlnx,zynqmp-ddrc-2.40a": 19 - - interrupts: Property with a value describing the interrupt number. 20 - 21 - Example: 22 - memory-controller@f8006000 { 23 - compatible = "xlnx,zynq-ddrc-a05"; 24 - reg = <0xf8006000 0x1000>; 25 - }; 26 - 27 - mc: memory-controller@fd070000 { 28 - compatible = "xlnx,zynqmp-ddrc-2.40a"; 29 - reg = <0x0 0xfd070000 0x0 0x30000>; 30 - interrupt-parent = <&gic>; 31 - interrupts = <0 112 4>; 32 - };
+35
Documentation/devicetree/bindings/memory-controllers/ti,da8xx-ddrctl.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/memory-controllers/ti,da8xx-ddrctl.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Texas Instruments da8xx DDR2/mDDR memory controller 8 + 9 + maintainers: 10 + - Bartosz Golaszewski <bgolaszewski@baylibre.com> 11 + - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> 12 + 13 + description: | 14 + Documentation: 15 + OMAP-L138 (DA850) - http://www.ti.com/lit/ug/spruh82c/spruh82c.pdf 16 + 17 + properties: 18 + compatible: 19 + const: ti,da850-ddr-controller 20 + 21 + reg: 22 + maxItems: 1 23 + 24 + required: 25 + - compatible 26 + - reg 27 + 28 + additionalProperties: false 29 + 30 + examples: 31 + - | 32 + memory-controller@b0000000 { 33 + compatible = "ti,da850-ddr-controller"; 34 + reg = <0xb0000000 0xe8>; 35 + };
-20
Documentation/devicetree/bindings/memory-controllers/ti-da8xx-ddrctl.txt
··· 1 - * Device tree bindings for Texas Instruments da8xx DDR2/mDDR memory controller 2 - 3 - The DDR2/mDDR memory controller present on Texas Instruments da8xx SoCs features 4 - a set of registers which allow to tweak the controller's behavior. 5 - 6 - Documentation: 7 - OMAP-L138 (DA850) - http://www.ti.com/lit/ug/spruh82c/spruh82c.pdf 8 - 9 - Required properties: 10 - 11 - - compatible: "ti,da850-ddr-controller" - for da850 SoC based boards 12 - - reg: a tuple containing the base address of the memory 13 - controller and the size of the memory area to map 14 - 15 - Example for da850 shown below. 16 - 17 - ddrctl { 18 - compatible = "ti,da850-ddr-controller"; 19 - reg = <0xb0000000 0xe8>; 20 - };
+3 -3
Documentation/devicetree/bindings/mfd/ti,lp87565-q1.yaml
··· 11 11 12 12 properties: 13 13 compatible: 14 - oneOf: 15 - - const: ti,lp87565 16 - - const: ti,lp87565-q1 14 + enum: 15 + - ti,lp87565 16 + - ti,lp87565-q1 17 17 18 18 reg: 19 19 description: I2C slave address
-29
Documentation/devicetree/bindings/misc/eeprom-93xx46.txt
··· 1 - EEPROMs (SPI) compatible with Microchip Technology 93xx46 family. 2 - 3 - Required properties: 4 - - compatible : shall be one of: 5 - "atmel,at93c46" 6 - "atmel,at93c46d" 7 - "atmel,at93c56" 8 - "atmel,at93c66" 9 - "eeprom-93xx46" 10 - "microchip,93lc46b" 11 - - data-size : number of data bits per word (either 8 or 16) 12 - 13 - Optional properties: 14 - - read-only : parameter-less property which disables writes to the EEPROM 15 - - select-gpios : if present, specifies the GPIO that will be asserted prior to 16 - each access to the EEPROM (e.g. for SPI bus multiplexing) 17 - 18 - Property rules described in Documentation/devicetree/bindings/spi/spi-bus.txt 19 - apply. In particular, "reg" and "spi-max-frequency" properties must be given. 20 - 21 - Example: 22 - eeprom@0 { 23 - compatible = "eeprom-93xx46"; 24 - reg = <0>; 25 - spi-max-frequency = <1000000>; 26 - spi-cs-high; 27 - data-size = <8>; 28 - select-gpios = <&gpio4 4 GPIO_ACTIVE_HIGH>; 29 - };
+70
Documentation/devicetree/bindings/misc/eeprom-93xx46.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/misc/eeprom-93xx46.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Microchip 93xx46 SPI compatible EEPROM family dt bindings 8 + 9 + maintainers: 10 + - Cory Tusar <cory.tusar@pid1solutions.com> 11 + 12 + properties: 13 + compatible: 14 + enum: 15 + - atmel,at93c46 16 + - atmel,at93c46d 17 + - atmel,at93c56 18 + - atmel,at93c66 19 + - eeprom-93xx46 20 + - microchip,93lc46b 21 + 22 + data-size: 23 + description: number of data bits per word 24 + $ref: /schemas/types.yaml#/definitions/uint32 25 + enum: [8, 16] 26 + 27 + reg: 28 + description: chip select of EEPROM 29 + maxItems: 1 30 + 31 + spi-max-frequency: true 32 + spi-cs-high: true 33 + 34 + read-only: 35 + description: 36 + parameter-less property which disables writes to the EEPROM 37 + type: boolean 38 + 39 + select-gpios: 40 + description: 41 + specifies the GPIO that needs to be asserted prior to each access 42 + of EEPROM (e.g. for SPI bus multiplexing) 43 + maxItems: 1 44 + 45 + 46 + required: 47 + - compatible 48 + - reg 49 + - data-size 50 + - spi-max-frequency 51 + 52 + additionalProperties: false 53 + 54 + examples: 55 + - | 56 + #include <dt-bindings/gpio/gpio.h> 57 + 58 + spi { 59 + #address-cells = <1>; 60 + #size-cells = <0>; 61 + 62 + eeprom@0 { 63 + compatible = "eeprom-93xx46"; 64 + reg = <0>; 65 + spi-max-frequency = <1000000>; 66 + spi-cs-high; 67 + data-size = <8>; 68 + select-gpios = <&gpio4 4 GPIO_ACTIVE_HIGH>; 69 + }; 70 + };
+2 -2
Documentation/devicetree/bindings/mtd/gpmc-nor.txt
··· 10 10 Required properties: 11 11 - bank-width: Width of NOR flash in bytes. GPMC supports 8-bit and 12 12 16-bit devices and so must be either 1 or 2 bytes. 13 - - compatible: Documentation/devicetree/bindings/mtd/mtd-physmap.txt 13 + - compatible: Documentation/devicetree/bindings/mtd/mtd-physmap.yaml 14 14 - gpmc,cs-on-ns: Chip-select assertion time 15 15 - gpmc,cs-rd-off-ns: Chip-select de-assertion time for reads 16 16 - gpmc,cs-wr-off-ns: Chip-select de-assertion time for writes ··· 21 21 - gpmc,access-ns: Start cycle to first data capture (read access) 22 22 - gpmc,rd-cycle-ns: Total read cycle time 23 23 - gpmc,wr-cycle-ns: Total write cycle time 24 - - linux,mtd-name: Documentation/devicetree/bindings/mtd/mtd-physmap.txt 24 + - linux,mtd-name: Documentation/devicetree/bindings/mtd/mtd-physmap.yaml 25 25 - reg: Chip-select, base address (relative to chip-select) 26 26 and size of NOR flash. Note that base address will be 27 27 typically 0 as this is the start of the chip-select.
+1
Documentation/devicetree/bindings/mtd/mtd-physmap.yaml
··· 23 23 - amd,s29gl256n 24 24 - amd,s29gl512n 25 25 - arm,versatile-flash 26 + - arm,vexpress-flash 26 27 - cortina,gemini-flash 27 28 - cypress,hyperflash 28 29 - ge,imp3a-firmware-mirror
-1
Documentation/devicetree/bindings/net/intel,dwmac-plat.yaml
··· 116 116 snps,mtl-rx-config = <&mtl_rx_setup>; 117 117 snps,mtl-tx-config = <&mtl_tx_setup>; 118 118 snps,tso; 119 - status = "okay"; 120 119 121 120 mdio0 { 122 121 #address-cells = <1>;
-2
Documentation/devicetree/bindings/net/intel,ixp4xx-ethernet.yaml
··· 71 71 ethernet@c8009000 { 72 72 compatible = "intel,ixp4xx-ethernet"; 73 73 reg = <0xc8009000 0x1000>; 74 - status = "disabled"; 75 74 queue-rx = <&qmgr 4>; 76 75 queue-txready = <&qmgr 21>; 77 76 intel,npe-handle = <&npe 1>; ··· 81 82 ethernet@c800c000 { 82 83 compatible = "intel,ixp4xx-ethernet"; 83 84 reg = <0xc800c000 0x1000>; 84 - status = "disabled"; 85 85 queue-rx = <&qmgr 3>; 86 86 queue-txready = <&qmgr 20>; 87 87 intel,npe-handle = <&npe 2>;
+96
Documentation/devicetree/bindings/net/micrel,ks8851.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/net/micrel,ks8851.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Micrel KS8851 Ethernet MAC (SPI and Parallel bus options) 8 + 9 + maintainers: 10 + - Marek Vasut <marex@denx.de> 11 + 12 + properties: 13 + compatible: 14 + enum: 15 + - micrel,ks8851 # SPI bus option 16 + - micrel,ks8851-mll # Parallel bus option 17 + 18 + interrupts: 19 + maxItems: 1 20 + 21 + reg: 22 + minItems: 1 23 + items: 24 + - description: SPI or Parallel bus hardware address 25 + - description: Parallel bus command mode address 26 + 27 + reset-gpios: 28 + maxItems: 1 29 + description: 30 + The reset_n input pin 31 + 32 + vdd-supply: 33 + description: | 34 + Analog 3.3V supply for Ethernet MAC 35 + 36 + vdd-io-supply: 37 + description: | 38 + Digital 1.8V IO supply for Ethernet MAC 39 + 40 + required: 41 + - compatible 42 + - reg 43 + - interrupts 44 + 45 + allOf: 46 + - $ref: ethernet-controller.yaml# 47 + - if: 48 + properties: 49 + compatible: 50 + contains: 51 + const: micrel,ks8851 52 + then: 53 + properties: 54 + reg: 55 + maxItems: 1 56 + - if: 57 + properties: 58 + compatible: 59 + contains: 60 + const: micrel,ks8851-mll 61 + then: 62 + properties: 63 + reg: 64 + minItems: 2 65 + 66 + unevaluatedProperties: false 67 + 68 + examples: 69 + - | 70 + /* SPI bus option */ 71 + spi { 72 + #address-cells = <1>; 73 + #size-cells = <0>; 74 + ethernet@0 { 75 + compatible = "micrel,ks8851"; 76 + reg = <0>; 77 + interrupt-parent = <&msmgpio>; 78 + interrupts = <90 8>; 79 + vdd-supply = <&ext_l2>; 80 + vdd-io-supply = <&pm8921_lvs6>; 81 + reset-gpios = <&msmgpio 89 0>; 82 + }; 83 + }; 84 + - | 85 + #include <dt-bindings/interrupt-controller/irq.h> 86 + /* Parallel bus option */ 87 + memory-controller { 88 + #address-cells = <2>; 89 + #size-cells = <1>; 90 + ethernet@1,0 { 91 + compatible = "micrel,ks8851-mll"; 92 + reg = <1 0x0 0x2>, <1 0x2 0x20000>; 93 + interrupt-parent = <&gpioc>; 94 + interrupts = <3 IRQ_TYPE_LEVEL_LOW>; 95 + }; 96 + };
-18
Documentation/devicetree/bindings/net/micrel-ks8851.txt
··· 1 - Micrel KS8851 Ethernet mac (MLL) 2 - 3 - Required properties: 4 - - compatible = "micrel,ks8851-mll" of parallel interface 5 - - reg : 2 physical address and size of registers for data and command 6 - - interrupts : interrupt connection 7 - 8 - Micrel KS8851 Ethernet mac (SPI) 9 - 10 - Required properties: 11 - - compatible = "micrel,ks8851" or the deprecated "ks8851" 12 - - reg : chip select number 13 - - interrupts : interrupt connection 14 - 15 - Optional properties: 16 - - vdd-supply: analog 3.3V supply for Ethernet mac 17 - - vdd-io-supply: digital 1.8V IO supply for Ethernet mac 18 - - reset-gpios: reset_n input pin
+2 -2
Documentation/devicetree/bindings/net/mscc-phy-vsc8531.txt
··· 67 67 compatible = "ethernet-phy-id0007.0570"; 68 68 vsc8531,vddmac = <3300>; 69 69 vsc8531,edge-slowdown = <7>; 70 - vsc8531,led-0-mode = <LINK_1000_ACTIVITY>; 71 - vsc8531,led-1-mode = <LINK_100_ACTIVITY>; 70 + vsc8531,led-0-mode = <VSC8531_LINK_1000_ACTIVITY>; 71 + vsc8531,led-1-mode = <VSC8531_LINK_100_ACTIVITY>; 72 72 load-save-gpios = <&gpio 10 GPIO_ACTIVE_HIGH>; 73 73 };
-3
Documentation/devicetree/bindings/net/nfc/samsung,s3fwrn5.yaml
··· 90 90 # UART example on Raspberry Pi 91 91 - | 92 92 uart0 { 93 - status = "okay"; 94 - 95 93 nfc { 96 94 compatible = "samsung,s3fwrn82"; 97 95 98 96 en-gpios = <&gpio 20 GPIO_ACTIVE_HIGH>; 99 97 wake-gpios = <&gpio 16 GPIO_ACTIVE_HIGH>; 100 98 101 - status = "okay"; 102 99 }; 103 100 };
+5 -20
Documentation/devicetree/bindings/net/qca,ar71xx.yaml
··· 101 101 102 102 phy-mode = "gmii"; 103 103 104 - status = "disabled"; 105 - 106 104 fixed-link { 107 105 speed = <1000>; 108 106 full-duplex; ··· 146 148 reg = <0x1>; 147 149 phy-handle = <&phy_port0>; 148 150 phy-mode = "internal"; 149 - 150 - status = "disabled"; 151 151 }; 152 152 153 153 switch_port2: port@2 { 154 154 reg = <0x2>; 155 155 phy-handle = <&phy_port1>; 156 156 phy-mode = "internal"; 157 - 158 - status = "disabled"; 159 157 }; 160 158 161 159 switch_port3: port@3 { 162 160 reg = <0x3>; 163 161 phy-handle = <&phy_port2>; 164 162 phy-mode = "internal"; 165 - 166 - status = "disabled"; 167 163 }; 168 164 169 165 switch_port4: port@4 { 170 166 reg = <0x4>; 171 167 phy-handle = <&phy_port3>; 172 168 phy-mode = "internal"; 173 - 174 - status = "disabled"; 175 169 }; 176 170 }; 177 171 ··· 173 183 174 184 interrupt-parent = <&switch10>; 175 185 176 - phy_port0: phy@0 { 186 + phy_port0: ethernet-phy@0 { 177 187 reg = <0x0>; 178 188 interrupts = <0>; 179 - status = "disabled"; 180 189 }; 181 190 182 - phy_port1: phy@1 { 191 + phy_port1: ethernet-phy@1 { 183 192 reg = <0x1>; 184 193 interrupts = <0>; 185 - status = "disabled"; 186 194 }; 187 195 188 - phy_port2: phy@2 { 196 + phy_port2: ethernet-phy@2 { 189 197 reg = <0x2>; 190 198 interrupts = <0>; 191 - status = "disabled"; 192 199 }; 193 200 194 - phy_port3: phy@3 { 201 + phy_port3: ethernet-phy@3 { 195 202 reg = <0x3>; 196 203 interrupts = <0>; 197 - status = "disabled"; 198 204 }; 199 205 200 - phy_port4: phy@4 { 206 + phy_port4: ethernet-phy@4 { 201 207 reg = <0x4>; 202 208 interrupts = <0>; 203 - status = "disabled"; 204 209 }; 205 210 }; 206 211 };
+4 -4
Documentation/devicetree/bindings/net/realtek-bluetooth.yaml
··· 17 17 18 18 properties: 19 19 compatible: 20 - oneOf: 21 - - const: "realtek,rtl8723bs-bt" 22 - - const: "realtek,rtl8723cs-bt" 23 - - const: "realtek,rtl8822cs-bt" 20 + enum: 21 + - realtek,rtl8723bs-bt 22 + - realtek,rtl8723cs-bt 23 + - realtek,rtl8822cs-bt 24 24 25 25 device-wake-gpios: 26 26 maxItems: 1
+45 -12
Documentation/devicetree/bindings/net/renesas,etheravb.yaml
··· 43 43 - renesas,etheravb-r8a779a0 # R-Car V3U 44 44 - const: renesas,etheravb-rcar-gen3 # R-Car Gen3 and RZ/G2 45 45 46 + - items: 47 + - enum: 48 + - renesas,r9a07g044-gbeth # RZ/G2{L,LC} 49 + - const: renesas,rzg2l-gbeth # RZ/G2L 50 + 46 51 reg: true 47 52 48 53 interrupts: true 49 54 50 55 interrupt-names: true 51 56 52 - clocks: 53 - minItems: 1 54 - items: 55 - - description: AVB functional clock 56 - - description: Optional TXC reference clock 57 + clocks: true 57 58 58 - clock-names: 59 - minItems: 1 60 - items: 61 - - const: fck 62 - - const: refclk 59 + clock-names: true 63 60 64 61 iommus: 65 62 maxItems: 1 ··· 142 145 properties: 143 146 compatible: 144 147 contains: 145 - const: renesas,etheravb-rcar-gen2 148 + enum: 149 + - renesas,etheravb-rcar-gen2 150 + - renesas,rzg2l-gbeth 146 151 then: 147 152 properties: 148 153 interrupts: 149 - maxItems: 1 154 + minItems: 1 155 + maxItems: 3 150 156 interrupt-names: 157 + minItems: 1 151 158 items: 152 159 - const: mux 160 + - const: fil 161 + - const: arp_ns 153 162 rx-internal-delay-ps: false 154 163 else: 155 164 properties: ··· 210 207 properties: 211 208 tx-internal-delay-ps: 212 209 const: 2000 210 + 211 + - if: 212 + properties: 213 + compatible: 214 + contains: 215 + const: renesas,rzg2l-gbeth 216 + then: 217 + properties: 218 + clocks: 219 + items: 220 + - description: Main clock 221 + - description: Register access clock 222 + - description: Reference clock for RGMII 223 + clock-names: 224 + items: 225 + - const: axi 226 + - const: chi 227 + - const: refclk 228 + else: 229 + properties: 230 + clocks: 231 + minItems: 1 232 + items: 233 + - description: AVB functional clock 234 + - description: Optional TXC reference clock 235 + clock-names: 236 + minItems: 1 237 + items: 238 + - const: fck 239 + - const: refclk 213 240 214 241 additionalProperties: false 215 242
+4 -4
Documentation/devicetree/bindings/net/ti,k3-am654-cpsw-nuss.yaml
··· 53 53 "#size-cells": true 54 54 55 55 compatible: 56 - oneOf: 57 - - const: ti,am654-cpsw-nuss 58 - - const: ti,j721e-cpsw-nuss 59 - - const: ti,am642-cpsw-nuss 56 + enum: 57 + - ti,am654-cpsw-nuss 58 + - ti,j721e-cpsw-nuss 59 + - ti,am642-cpsw-nuss 60 60 61 61 reg: 62 62 maxItems: 1
+3 -3
Documentation/devicetree/bindings/net/ti,k3-am654-cpts.yaml
··· 45 45 pattern: "^cpts@[0-9a-f]+$" 46 46 47 47 compatible: 48 - oneOf: 49 - - const: ti,am65-cpts 50 - - const: ti,j721e-cpts 48 + enum: 49 + - ti,am65-cpts 50 + - ti,j721e-cpts 51 51 52 52 reg: 53 53 maxItems: 1
+1 -1
Documentation/devicetree/bindings/nvmem/nvmem.yaml
··· 40 40 maxItems: 1 41 41 42 42 patternProperties: 43 - "^.*@[0-9a-f]+$": 43 + "@[0-9a-f]+(,[0-7])?$": 44 44 type: object 45 45 46 46 properties:
+95
Documentation/devicetree/bindings/nvmem/socionext,uniphier-efuse.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/nvmem/socionext,uniphier-efuse.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Socionext UniPhier eFuse bindings 8 + 9 + maintainers: 10 + - Keiji Hayashibara <hayashibara.keiji@socionext.com> 11 + - Kunihiko Hayashi <hayashi.kunihiko@socionext.com> 12 + 13 + allOf: 14 + - $ref: "nvmem.yaml#" 15 + 16 + properties: 17 + "#address-cells": true 18 + "#size-cells": true 19 + 20 + compatible: 21 + const: socionext,uniphier-efuse 22 + 23 + reg: 24 + maxItems: 1 25 + 26 + required: 27 + - compatible 28 + - reg 29 + 30 + unevaluatedProperties: false 31 + 32 + examples: 33 + - | 34 + // The UniPhier eFuse should be a subnode of a "soc-glue" node. 35 + 36 + soc-glue@5f900000 { 37 + compatible = "simple-mfd"; 38 + #address-cells = <1>; 39 + #size-cells = <1>; 40 + ranges = <0x0 0x5f900000 0x2000>; 41 + 42 + efuse@100 { 43 + compatible = "socionext,uniphier-efuse"; 44 + reg = <0x100 0x28>; 45 + }; 46 + 47 + efuse@200 { 48 + compatible = "socionext,uniphier-efuse"; 49 + reg = <0x200 0x68>; 50 + #address-cells = <1>; 51 + #size-cells = <1>; 52 + 53 + /* Data cells */ 54 + usb_rterm0: trim@54,4 { 55 + reg = <0x54 1>; 56 + bits = <4 2>; 57 + }; 58 + usb_rterm1: trim@55,4 { 59 + reg = <0x55 1>; 60 + bits = <4 2>; 61 + }; 62 + usb_rterm2: trim@58,4 { 63 + reg = <0x58 1>; 64 + bits = <4 2>; 65 + }; 66 + usb_rterm3: trim@59,4 { 67 + reg = <0x59 1>; 68 + bits = <4 2>; 69 + }; 70 + usb_sel_t0: trim@54,0 { 71 + reg = <0x54 1>; 72 + bits = <0 4>; 73 + }; 74 + usb_sel_t1: trim@55,0 { 75 + reg = <0x55 1>; 76 + bits = <0 4>; 77 + }; 78 + usb_sel_t2: trim@58,0 { 79 + reg = <0x58 1>; 80 + bits = <0 4>; 81 + }; 82 + usb_sel_t3: trim@59,0 { 83 + reg = <0x59 1>; 84 + bits = <0 4>; 85 + }; 86 + usb_hs_i0: trim@56,0 { 87 + reg = <0x56 1>; 88 + bits = <0 4>; 89 + }; 90 + usb_hs_i2: trim@5a,0 { 91 + reg = <0x5a 1>; 92 + bits = <0 4>; 93 + }; 94 + }; 95 + };
-49
Documentation/devicetree/bindings/nvmem/uniphier-efuse.txt
··· 1 - = UniPhier eFuse device tree bindings = 2 - 3 - This UniPhier eFuse must be under soc-glue. 4 - 5 - Required properties: 6 - - compatible: should be "socionext,uniphier-efuse" 7 - - reg: should contain the register location and length 8 - 9 - = Data cells = 10 - Are child nodes of efuse, bindings of which as described in 11 - bindings/nvmem/nvmem.txt 12 - 13 - Example: 14 - 15 - soc-glue@5f900000 { 16 - compatible = "socionext,uniphier-ld20-soc-glue-debug", 17 - "simple-mfd"; 18 - #address-cells = <1>; 19 - #size-cells = <1>; 20 - ranges = <0x0 0x5f900000 0x2000>; 21 - 22 - efuse@100 { 23 - compatible = "socionext,uniphier-efuse"; 24 - reg = <0x100 0x28>; 25 - }; 26 - 27 - efuse@200 { 28 - compatible = "socionext,uniphier-efuse"; 29 - reg = <0x200 0x68>; 30 - #address-cells = <1>; 31 - #size-cells = <1>; 32 - 33 - /* Data cells */ 34 - usb_mon: usb-mon@54 { 35 - reg = <0x54 0xc>; 36 - }; 37 - }; 38 - }; 39 - 40 - = Data consumers = 41 - Are device nodes which consume nvmem data cells. 42 - 43 - Example: 44 - 45 - usb { 46 - ... 47 - nvmem-cells = <&usb_mon>; 48 - nvmem-cell-names = "usb_mon"; 49 - }
+2 -2
Documentation/devicetree/bindings/pci/amlogic,meson-pcie.txt
··· 3 3 Amlogic Meson PCIe host controller is based on the Synopsys DesignWare PCI core. 4 4 It shares common functions with the PCIe DesignWare core driver and 5 5 inherits common properties defined in 6 - Documentation/devicetree/bindings/pci/designware-pcie.txt. 6 + Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml. 7 7 8 8 Additional properties are described here: 9 9 ··· 33 33 - phy-names: must contain "pcie" 34 34 35 35 - device_type: 36 - should be "pci". As specified in designware-pcie.txt 36 + should be "pci". As specified in snps,dw-pcie.yaml 37 37 38 38 39 39 Example configuration:
+1 -1
Documentation/devicetree/bindings/pci/axis,artpec6-pcie.txt
··· 1 1 * Axis ARTPEC-6 PCIe interface 2 2 3 3 This PCIe host controller is based on the Synopsys DesignWare PCIe IP 4 - and thus inherits all the common properties defined in designware-pcie.txt. 4 + and thus inherits all the common properties defined in snps,dw-pcie.yaml. 5 5 6 6 Required properties: 7 7 - compatible: "axis,artpec6-pcie", "snps,dw-pcie" for ARTPEC-6 in RC mode;
-77
Documentation/devicetree/bindings/pci/designware-pcie.txt
··· 1 - * Synopsys DesignWare PCIe interface 2 - 3 - Required properties: 4 - - compatible: 5 - "snps,dw-pcie" for RC mode; 6 - "snps,dw-pcie-ep" for EP mode; 7 - - reg: For designware cores version < 4.80 contains the configuration 8 - address space. For designware core version >= 4.80, contains 9 - the configuration and ATU address space 10 - - reg-names: Must be "config" for the PCIe configuration space and "atu" for 11 - the ATU address space. 12 - (The old way of getting the configuration address space from "ranges" 13 - is deprecated and should be avoided.) 14 - RC mode: 15 - - #address-cells: set to <3> 16 - - #size-cells: set to <2> 17 - - device_type: set to "pci" 18 - - ranges: ranges for the PCI memory and I/O regions 19 - - #interrupt-cells: set to <1> 20 - - interrupt-map-mask and interrupt-map: standard PCI 21 - properties to define the mapping of the PCIe interface to interrupt 22 - numbers. 23 - EP mode: 24 - - num-ib-windows: number of inbound address translation windows 25 - - num-ob-windows: number of outbound address translation windows 26 - 27 - Optional properties: 28 - - num-lanes: number of lanes to use (this property should be specified unless 29 - the link is brought already up in BIOS) 30 - - reset-gpio: GPIO pin number of power good signal 31 - - clocks: Must contain an entry for each entry in clock-names. 32 - See ../clocks/clock-bindings.txt for details. 33 - - clock-names: Must include the following entries: 34 - - "pcie" 35 - - "pcie_bus" 36 - - snps,enable-cdm-check: This is a boolean property and if present enables 37 - automatic checking of CDM (Configuration Dependent Module) registers 38 - for data corruption. CDM registers include standard PCIe configuration 39 - space registers, Port Logic registers, DMA and iATU (internal Address 40 - Translation Unit) registers. 41 - RC mode: 42 - - num-viewport: number of view ports configured in hardware. If a platform 43 - does not specify it, the driver assumes 2. 44 - - bus-range: PCI bus numbers covered (it is recommended for new devicetrees 45 - to specify this property, to keep backwards compatibility a range of 46 - 0x00-0xff is assumed if not present) 47 - 48 - EP mode: 49 - - max-functions: maximum number of functions that can be configured 50 - 51 - Example configuration: 52 - 53 - pcie: pcie@dfc00000 { 54 - compatible = "snps,dw-pcie"; 55 - reg = <0xdfc00000 0x0001000>, /* IP registers */ 56 - <0xd0000000 0x0002000>; /* Configuration space */ 57 - reg-names = "dbi", "config"; 58 - #address-cells = <3>; 59 - #size-cells = <2>; 60 - device_type = "pci"; 61 - ranges = <0x81000000 0 0x00000000 0xde000000 0 0x00010000 62 - 0x82000000 0 0xd0400000 0xd0400000 0 0x0d000000>; 63 - interrupts = <25>, <24>; 64 - #interrupt-cells = <1>; 65 - num-lanes = <1>; 66 - }; 67 - or 68 - pcie: pcie@dfc00000 { 69 - compatible = "snps,dw-pcie-ep"; 70 - reg = <0xdfc00000 0x0001000>, /* IP registers 1 */ 71 - <0xdfc01000 0x0001000>, /* IP registers 2 */ 72 - <0xd0000000 0x2000000>; /* Configuration space */ 73 - reg-names = "dbi", "dbi2", "addr_space"; 74 - num-ib-windows = <6>; 75 - num-ob-windows = <2>; 76 - num-lanes = <1>; 77 - };
-135
Documentation/devicetree/bindings/pci/faraday,ftpci100.txt
··· 1 - Faraday Technology FTPCI100 PCI Host Bridge 2 - 3 - This PCI bridge is found inside that Cortina Systems Gemini SoC platform and 4 - is a generic IP block from Faraday Technology. It exists in two variants: 5 - plain and dual PCI. The plain version embeds a cascading interrupt controller 6 - into the host bridge. The dual version routes the interrupts to the host 7 - chips interrupt controller. 8 - 9 - The host controller appear on the PCI bus with vendor ID 0x159b (Faraday 10 - Technology) and product ID 0x4321. 11 - 12 - Mandatory properties: 13 - 14 - - compatible: ranging from specific to generic, should be one of 15 - "cortina,gemini-pci", "faraday,ftpci100" 16 - "cortina,gemini-pci-dual", "faraday,ftpci100-dual" 17 - "faraday,ftpci100" 18 - "faraday,ftpci100-dual" 19 - - reg: memory base and size for the host bridge 20 - - #address-cells: set to <3> 21 - - #size-cells: set to <2> 22 - - #interrupt-cells: set to <1> 23 - - bus-range: set to <0x00 0xff> 24 - - device_type, set to "pci" 25 - - ranges: see pci.txt 26 - - interrupt-map-mask: see pci.txt 27 - - interrupt-map: see pci.txt 28 - - dma-ranges: three ranges for the inbound memory region. The ranges must 29 - be aligned to a 1MB boundary, and may be 1MB, 2MB, 4MB, 8MB, 16MB, 32MB, 64MB, 30 - 128MB, 256MB, 512MB, 1GB or 2GB in size. The memory should be marked as 31 - pre-fetchable. 32 - 33 - Optional properties: 34 - - clocks: when present, this should contain the peripheral clock (PCLK) and the 35 - PCI clock (PCICLK). If these are not present, they are assumed to be 36 - hard-wired enabled and always on. The PCI clock will be 33 or 66 MHz. 37 - - clock-names: when present, this should contain "PCLK" for the peripheral 38 - clock and "PCICLK" for the PCI-side clock. 39 - 40 - Mandatory subnodes: 41 - - For "faraday,ftpci100" a node representing the interrupt-controller inside the 42 - host bridge is mandatory. It has the following mandatory properties: 43 - - interrupt: see interrupt-controller/interrupts.txt 44 - - interrupt-controller: see interrupt-controller/interrupts.txt 45 - - #address-cells: set to <0> 46 - - #interrupt-cells: set to <1> 47 - 48 - I/O space considerations: 49 - 50 - The plain variant has 128MiB of non-prefetchable memory space, whereas the 51 - "dual" variant has 64MiB. Take this into account when describing the ranges. 52 - 53 - Interrupt map considerations: 54 - 55 - The "dual" variant will get INT A, B, C, D from the system interrupt controller 56 - and should point to respective interrupt in that controller in its 57 - interrupt-map. 58 - 59 - The code which is the only documentation of how the Faraday PCI (the non-dual 60 - variant) interrupts assigns the default interrupt mapping/swizzling has 61 - typically been like this, doing the swizzling on the interrupt controller side 62 - rather than in the interconnect: 63 - 64 - interrupt-map-mask = <0xf800 0 0 7>; 65 - interrupt-map = 66 - <0x4800 0 0 1 &pci_intc 0>, /* Slot 9 */ 67 - <0x4800 0 0 2 &pci_intc 1>, 68 - <0x4800 0 0 3 &pci_intc 2>, 69 - <0x4800 0 0 4 &pci_intc 3>, 70 - <0x5000 0 0 1 &pci_intc 1>, /* Slot 10 */ 71 - <0x5000 0 0 2 &pci_intc 2>, 72 - <0x5000 0 0 3 &pci_intc 3>, 73 - <0x5000 0 0 4 &pci_intc 0>, 74 - <0x5800 0 0 1 &pci_intc 2>, /* Slot 11 */ 75 - <0x5800 0 0 2 &pci_intc 3>, 76 - <0x5800 0 0 3 &pci_intc 0>, 77 - <0x5800 0 0 4 &pci_intc 1>, 78 - <0x6000 0 0 1 &pci_intc 3>, /* Slot 12 */ 79 - <0x6000 0 0 2 &pci_intc 0>, 80 - <0x6000 0 0 3 &pci_intc 1>, 81 - <0x6000 0 0 4 &pci_intc 2>; 82 - 83 - Example: 84 - 85 - pci@50000000 { 86 - compatible = "cortina,gemini-pci", "faraday,ftpci100"; 87 - reg = <0x50000000 0x100>; 88 - interrupts = <8 IRQ_TYPE_LEVEL_HIGH>, /* PCI A */ 89 - <26 IRQ_TYPE_LEVEL_HIGH>, /* PCI B */ 90 - <27 IRQ_TYPE_LEVEL_HIGH>, /* PCI C */ 91 - <28 IRQ_TYPE_LEVEL_HIGH>; /* PCI D */ 92 - #address-cells = <3>; 93 - #size-cells = <2>; 94 - #interrupt-cells = <1>; 95 - 96 - bus-range = <0x00 0xff>; 97 - ranges = /* 1MiB I/O space 0x50000000-0x500fffff */ 98 - <0x01000000 0 0 0x50000000 0 0x00100000>, 99 - /* 128MiB non-prefetchable memory 0x58000000-0x5fffffff */ 100 - <0x02000000 0 0x58000000 0x58000000 0 0x08000000>; 101 - 102 - /* DMA ranges */ 103 - dma-ranges = 104 - /* 128MiB at 0x00000000-0x07ffffff */ 105 - <0x02000000 0 0x00000000 0x00000000 0 0x08000000>, 106 - /* 64MiB at 0x00000000-0x03ffffff */ 107 - <0x02000000 0 0x00000000 0x00000000 0 0x04000000>, 108 - /* 64MiB at 0x00000000-0x03ffffff */ 109 - <0x02000000 0 0x00000000 0x00000000 0 0x04000000>; 110 - 111 - interrupt-map-mask = <0xf800 0 0 7>; 112 - interrupt-map = 113 - <0x4800 0 0 1 &pci_intc 0>, /* Slot 9 */ 114 - <0x4800 0 0 2 &pci_intc 1>, 115 - <0x4800 0 0 3 &pci_intc 2>, 116 - <0x4800 0 0 4 &pci_intc 3>, 117 - <0x5000 0 0 1 &pci_intc 1>, /* Slot 10 */ 118 - <0x5000 0 0 2 &pci_intc 2>, 119 - <0x5000 0 0 3 &pci_intc 3>, 120 - <0x5000 0 0 4 &pci_intc 0>, 121 - <0x5800 0 0 1 &pci_intc 2>, /* Slot 11 */ 122 - <0x5800 0 0 2 &pci_intc 3>, 123 - <0x5800 0 0 3 &pci_intc 0>, 124 - <0x5800 0 0 4 &pci_intc 1>, 125 - <0x6000 0 0 1 &pci_intc 3>, /* Slot 12 */ 126 - <0x6000 0 0 2 &pci_intc 0>, 127 - <0x6000 0 0 3 &pci_intc 0>, 128 - <0x6000 0 0 4 &pci_intc 0>; 129 - pci_intc: interrupt-controller { 130 - interrupt-parent = <&intcon>; 131 - interrupt-controller; 132 - #address-cells = <0>; 133 - #interrupt-cells = <1>; 134 - }; 135 - };
+174
Documentation/devicetree/bindings/pci/faraday,ftpci100.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/pci/faraday,ftpci100.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Faraday Technology FTPCI100 PCI Host Bridge 8 + 9 + maintainers: 10 + - Linus Walleij <linus.walleij@linaro.org> 11 + 12 + description: | 13 + This PCI bridge is found inside that Cortina Systems Gemini SoC platform and 14 + is a generic IP block from Faraday Technology. It exists in two variants: 15 + plain and dual PCI. The plain version embeds a cascading interrupt controller 16 + into the host bridge. The dual version routes the interrupts to the host 17 + chips interrupt controller. 18 + The host controller appear on the PCI bus with vendor ID 0x159b (Faraday 19 + Technology) and product ID 0x4321. 20 + I/O space considerations: 21 + The plain variant has 128MiB of non-prefetchable memory space, whereas the 22 + "dual" variant has 64MiB. Take this into account when describing the ranges. 23 + 24 + Interrupt map considerations: 25 + 26 + The "dual" variant will get INT A, B, C, D from the system interrupt controller 27 + and should point to respective interrupt in that controller in its interrupt-map. 28 + 29 + The code which is the only documentation of how the Faraday PCI (the non-dual 30 + variant) interrupts assigns the default interrupt mapping/swizzling has 31 + typically been like this, doing the swizzling on the interrupt controller side 32 + rather than in the interconnect: 33 + 34 + interrupt-map-mask = <0xf800 0 0 7>; 35 + interrupt-map = 36 + <0x4800 0 0 1 &pci_intc 0>, /* Slot 9 */ 37 + <0x4800 0 0 2 &pci_intc 1>, 38 + <0x4800 0 0 3 &pci_intc 2>, 39 + <0x4800 0 0 4 &pci_intc 3>, 40 + <0x5000 0 0 1 &pci_intc 1>, /* Slot 10 */ 41 + <0x5000 0 0 2 &pci_intc 2>, 42 + <0x5000 0 0 3 &pci_intc 3>, 43 + <0x5000 0 0 4 &pci_intc 0>, 44 + <0x5800 0 0 1 &pci_intc 2>, /* Slot 11 */ 45 + <0x5800 0 0 2 &pci_intc 3>, 46 + <0x5800 0 0 3 &pci_intc 0>, 47 + <0x5800 0 0 4 &pci_intc 1>, 48 + <0x6000 0 0 1 &pci_intc 3>, /* Slot 12 */ 49 + <0x6000 0 0 2 &pci_intc 0>, 50 + <0x6000 0 0 3 &pci_intc 1>, 51 + <0x6000 0 0 4 &pci_intc 2>; 52 + 53 + allOf: 54 + - $ref: /schemas/pci/pci-bus.yaml# 55 + 56 + properties: 57 + compatible: 58 + oneOf: 59 + - items: 60 + - const: cortina,gemini-pci 61 + - const: faraday,ftpci100 62 + - items: 63 + - const: cortina,gemini-pci-dual 64 + - const: faraday,ftpci100-dual 65 + - const: faraday,ftpci100 66 + - const: faraday,ftpci100-dual 67 + 68 + reg: 69 + maxItems: 1 70 + 71 + "#address-cells": 72 + const: 3 73 + 74 + "#interrupt-cells": 75 + const: 1 76 + 77 + ranges: 78 + minItems: 2 79 + 80 + dma-ranges: 81 + minItems: 3 82 + description: | 83 + three ranges for the inbound memory region. The ranges must 84 + be aligned to a 1MB boundary, and may be 1MB, 2MB, 4MB, 8MB, 16MB, 32MB, 64MB, 85 + 128MB, 256MB, 512MB, 1GB or 2GB in size. The memory should be marked as 86 + pre-fetchable. 87 + 88 + clocks: 89 + items: 90 + - description: peripheral clock (PCLK) 91 + - description: PCI clock (PCICLK). 92 + description: | 93 + If these are not present, they are assumed to be 94 + hard-wired enabled and always on. The PCI clock will be 33 or 66 MHz. 95 + 96 + clock-names: 97 + items: 98 + - const: PCLK 99 + - const: PCICLK 100 + 101 + interrupt-controller: 102 + type: object 103 + 104 + required: 105 + - reg 106 + - compatible 107 + - "#interrupt-cells" 108 + - interrupt-map-mask 109 + - interrupt-map 110 + - dma-ranges 111 + 112 + if: 113 + properties: 114 + compatible: 115 + contains: 116 + const: faraday,ftpci100 117 + then: 118 + required: 119 + - interrupt-controller 120 + 121 + unevaluatedProperties: false 122 + 123 + examples: 124 + - | 125 + #include <dt-bindings/interrupt-controller/irq.h> 126 + pci@50000000 { 127 + compatible = "cortina,gemini-pci", "faraday,ftpci100"; 128 + reg = <0x50000000 0x100>; 129 + device_type = "pci"; 130 + #address-cells = <3>; 131 + #size-cells = <2>; 132 + #interrupt-cells = <1>; 133 + 134 + bus-range = <0x00 0xff>; 135 + ranges = /* 1MiB I/O space 0x50000000-0x500fffff */ 136 + <0x01000000 0 0 0x50000000 0 0x00100000>, 137 + /* 128MiB non-prefetchable memory 0x58000000-0x5fffffff */ 138 + <0x02000000 0 0x58000000 0x58000000 0 0x08000000>; 139 + 140 + /* DMA ranges */ 141 + dma-ranges = 142 + /* 128MiB at 0x00000000-0x07ffffff */ 143 + <0x02000000 0 0x00000000 0x00000000 0 0x08000000>, 144 + /* 64MiB at 0x00000000-0x03ffffff */ 145 + <0x02000000 0 0x00000000 0x00000000 0 0x04000000>, 146 + /* 64MiB at 0x00000000-0x03ffffff */ 147 + <0x02000000 0 0x00000000 0x00000000 0 0x04000000>; 148 + 149 + interrupt-map-mask = <0xf800 0 0 7>; 150 + interrupt-map = 151 + <0x4800 0 0 1 &pci_intc 0>, /* Slot 9 */ 152 + <0x4800 0 0 2 &pci_intc 1>, 153 + <0x4800 0 0 3 &pci_intc 2>, 154 + <0x4800 0 0 4 &pci_intc 3>, 155 + <0x5000 0 0 1 &pci_intc 1>, /* Slot 10 */ 156 + <0x5000 0 0 2 &pci_intc 2>, 157 + <0x5000 0 0 3 &pci_intc 3>, 158 + <0x5000 0 0 4 &pci_intc 0>, 159 + <0x5800 0 0 1 &pci_intc 2>, /* Slot 11 */ 160 + <0x5800 0 0 2 &pci_intc 3>, 161 + <0x5800 0 0 3 &pci_intc 0>, 162 + <0x5800 0 0 4 &pci_intc 1>, 163 + <0x6000 0 0 1 &pci_intc 3>, /* Slot 12 */ 164 + <0x6000 0 0 2 &pci_intc 0>, 165 + <0x6000 0 0 3 &pci_intc 0>, 166 + <0x6000 0 0 4 &pci_intc 0>; 167 + pci_intc: interrupt-controller { 168 + interrupt-parent = <&intcon>; 169 + interrupt-controller; 170 + interrupts = <8 IRQ_TYPE_LEVEL_HIGH>; 171 + #address-cells = <0>; 172 + #interrupt-cells = <1>; 173 + }; 174 + };
-100
Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt
··· 1 - * Freescale i.MX6 PCIe interface 2 - 3 - This PCIe host controller is based on the Synopsys DesignWare PCIe IP 4 - and thus inherits all the common properties defined in designware-pcie.txt. 5 - 6 - Required properties: 7 - - compatible: 8 - - "fsl,imx6q-pcie" 9 - - "fsl,imx6sx-pcie", 10 - - "fsl,imx6qp-pcie" 11 - - "fsl,imx7d-pcie" 12 - - "fsl,imx8mq-pcie" 13 - - reg: base address and length of the PCIe controller 14 - - interrupts: A list of interrupt outputs of the controller. Must contain an 15 - entry for each entry in the interrupt-names property. 16 - - interrupt-names: Must include the following entries: 17 - - "msi": The interrupt that is asserted when an MSI is received 18 - - clock-names: Must include the following additional entries: 19 - - "pcie_phy" 20 - 21 - Optional properties: 22 - - fsl,tx-deemph-gen1: Gen1 De-emphasis value. Default: 0 23 - - fsl,tx-deemph-gen2-3p5db: Gen2 (3.5db) De-emphasis value. Default: 0 24 - - fsl,tx-deemph-gen2-6db: Gen2 (6db) De-emphasis value. Default: 20 25 - - fsl,tx-swing-full: Gen2 TX SWING FULL value. Default: 127 26 - - fsl,tx-swing-low: TX launch amplitude swing_low value. Default: 127 27 - - fsl,max-link-speed: Specify PCI gen for link capability. Must be '2' for 28 - gen2, otherwise will default to gen1. Note that the IMX6 LVDS clock outputs 29 - do not meet gen2 jitter requirements and thus for gen2 capability a gen2 30 - compliant clock generator should be used and configured. 31 - - reset-gpio: Should specify the GPIO for controlling the PCI bus device reset 32 - signal. It's not polarity aware and defaults to active-low reset sequence 33 - (L=reset state, H=operation state). 34 - - reset-gpio-active-high: If present then the reset sequence using the GPIO 35 - specified in the "reset-gpio" property is reversed (H=reset state, 36 - L=operation state). 37 - - vpcie-supply: Should specify the regulator in charge of PCIe port power. 38 - The regulator will be enabled when initializing the PCIe host and 39 - disabled either as part of the init process or when shutting down the 40 - host. 41 - - vph-supply: Should specify the regulator in charge of VPH one of the three 42 - PCIe PHY powers. This regulator can be supplied by both 1.8v and 3.3v voltage 43 - supplies. 44 - 45 - Additional required properties for imx6sx-pcie: 46 - - clock names: Must include the following additional entries: 47 - - "pcie_inbound_axi" 48 - - power-domains: Must be set to phandles pointing to the DISPLAY and 49 - PCIE_PHY power domains 50 - - power-domain-names: Must be "pcie", "pcie_phy" 51 - 52 - Additional required properties for imx7d-pcie and imx8mq-pcie: 53 - - power-domains: Must be set to a phandle pointing to PCIE_PHY power domain 54 - - resets: Must contain phandles to PCIe-related reset lines exposed by SRC 55 - IP block 56 - - reset-names: Must contain the following entries: 57 - - "pciephy" 58 - - "apps" 59 - - "turnoff" 60 - - fsl,imx7d-pcie-phy: A phandle to an fsl,imx7d-pcie-phy node. 61 - 62 - Additional required properties for imx8mq-pcie: 63 - - clock-names: Must include the following additional entries: 64 - - "pcie_aux" 65 - 66 - Example: 67 - 68 - pcie@01000000 { 69 - compatible = "fsl,imx6q-pcie", "snps,dw-pcie"; 70 - reg = <0x01ffc000 0x04000>, 71 - <0x01f00000 0x80000>; 72 - reg-names = "dbi", "config"; 73 - #address-cells = <3>; 74 - #size-cells = <2>; 75 - device_type = "pci"; 76 - ranges = <0x00000800 0 0x01f00000 0x01f00000 0 0x00080000 77 - 0x81000000 0 0 0x01f80000 0 0x00010000 78 - 0x82000000 0 0x01000000 0x01000000 0 0x00f00000>; 79 - num-lanes = <1>; 80 - interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; 81 - interrupt-names = "msi"; 82 - #interrupt-cells = <1>; 83 - interrupt-map-mask = <0 0 0 0x7>; 84 - interrupt-map = <0 0 0 1 &intc GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, 85 - <0 0 0 2 &intc GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>, 86 - <0 0 0 3 &intc GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>, 87 - <0 0 0 4 &intc GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; 88 - clocks = <&clks 144>, <&clks 206>, <&clks 189>; 89 - clock-names = "pcie", "pcie_bus", "pcie_phy"; 90 - }; 91 - 92 - * Freescale i.MX7d PCIe PHY 93 - 94 - This is the PHY associated with the IMX7d PCIe controller. It's used by the 95 - PCI-e controller via the fsl,imx7d-pcie-phy phandle. 96 - 97 - Required properties: 98 - - compatible: 99 - - "fsl,imx7d-pcie-phy" 100 - - reg: base address and length of the PCIe PHY controller
+202
Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/pci/fsl,imx6q-pcie.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Freescale i.MX6 PCIe host controller 8 + 9 + maintainers: 10 + - Lucas Stach <l.stach@pengutronix.de> 11 + - Richard Zhu <hongxing.zhu@nxp.com> 12 + 13 + description: |+ 14 + This PCIe host controller is based on the Synopsys DesignWare PCIe IP 15 + and thus inherits all the common properties defined in snps,dw-pcie.yaml. 16 + 17 + allOf: 18 + - $ref: /schemas/pci/snps,dw-pcie.yaml# 19 + 20 + properties: 21 + compatible: 22 + enum: 23 + - fsl,imx6q-pcie 24 + - fsl,imx6sx-pcie 25 + - fsl,imx6qp-pcie 26 + - fsl,imx7d-pcie 27 + - fsl,imx8mq-pcie 28 + 29 + reg: 30 + items: 31 + - description: Data Bus Interface (DBI) registers. 32 + - description: PCIe configuration space region. 33 + 34 + reg-names: 35 + items: 36 + - const: dbi 37 + - const: config 38 + 39 + interrupts: 40 + items: 41 + - description: builtin MSI controller. 42 + 43 + interrupt-names: 44 + minItems: 1 45 + items: 46 + - const: msi 47 + 48 + clocks: 49 + minItems: 3 50 + items: 51 + - description: PCIe bridge clock. 52 + - description: PCIe bus clock. 53 + - description: PCIe PHY clock. 54 + - description: Additional required clock entry for imx6sx-pcie, 55 + imx8mq-pcie. 56 + 57 + clock-names: 58 + minItems: 3 59 + items: 60 + - const: pcie 61 + - const: pcie_bus 62 + - const: pcie_phy 63 + - const: pcie_inbound_axi for imx6sx-pcie, pcie_aux for imx8mq-pcie 64 + 65 + num-lanes: 66 + const: 1 67 + 68 + fsl,imx7d-pcie-phy: 69 + $ref: /schemas/types.yaml#/definitions/phandle 70 + description: A phandle to an fsl,imx7d-pcie-phy node. Additional 71 + required properties for imx7d-pcie and imx8mq-pcie. 72 + 73 + power-domains: 74 + items: 75 + - description: The phandle pointing to the DISPLAY domain for 76 + imx6sx-pcie, to PCIE_PHY power domain for imx7d-pcie and 77 + imx8mq-pcie. 78 + - description: The phandle pointing to the PCIE_PHY power domains 79 + for imx6sx-pcie. 80 + 81 + power-domain-names: 82 + items: 83 + - const: pcie 84 + - const: pcie_phy 85 + 86 + resets: 87 + maxItems: 3 88 + description: Phandles to PCIe-related reset lines exposed by SRC 89 + IP block. Additional required by imx7d-pcie and imx8mq-pcie. 90 + 91 + reset-names: 92 + items: 93 + - const: pciephy 94 + - const: apps 95 + - const: turnoff 96 + 97 + fsl,tx-deemph-gen1: 98 + description: Gen1 De-emphasis value (optional required). 99 + $ref: /schemas/types.yaml#/definitions/uint32 100 + default: 0 101 + 102 + fsl,tx-deemph-gen2-3p5db: 103 + description: Gen2 (3.5db) De-emphasis value (optional required). 104 + $ref: /schemas/types.yaml#/definitions/uint32 105 + default: 0 106 + 107 + fsl,tx-deemph-gen2-6db: 108 + description: Gen2 (6db) De-emphasis value (optional required). 109 + $ref: /schemas/types.yaml#/definitions/uint32 110 + default: 20 111 + 112 + fsl,tx-swing-full: 113 + description: Gen2 TX SWING FULL value (optional required). 114 + $ref: /schemas/types.yaml#/definitions/uint32 115 + default: 127 116 + 117 + fsl,tx-swing-low: 118 + description: TX launch amplitude swing_low value (optional required). 119 + $ref: /schemas/types.yaml#/definitions/uint32 120 + default: 127 121 + 122 + fsl,max-link-speed: 123 + description: Specify PCI Gen for link capability (optional required). 124 + Note that the IMX6 LVDS clock outputs do not meet gen2 jitter 125 + requirements and thus for gen2 capability a gen2 compliant clock 126 + generator should be used and configured. 127 + $ref: /schemas/types.yaml#/definitions/uint32 128 + enum: [1, 2, 3, 4] 129 + default: 1 130 + 131 + reset-gpio: 132 + description: Should specify the GPIO for controlling the PCI bus device 133 + reset signal. It's not polarity aware and defaults to active-low reset 134 + sequence (L=reset state, H=operation state) (optional required). 135 + 136 + reset-gpio-active-high: 137 + description: If present then the reset sequence using the GPIO 138 + specified in the "reset-gpio" property is reversed (H=reset state, 139 + L=operation state) (optional required). 140 + 141 + vpcie-supply: 142 + description: Should specify the regulator in charge of PCIe port power. 143 + The regulator will be enabled when initializing the PCIe host and 144 + disabled either as part of the init process or when shutting down 145 + the host (optional required). 146 + 147 + vph-supply: 148 + description: Should specify the regulator in charge of VPH one of 149 + the three PCIe PHY powers. This regulator can be supplied by both 150 + 1.8v and 3.3v voltage supplies (optional required). 151 + 152 + required: 153 + - compatible 154 + - reg 155 + - reg-names 156 + - "#address-cells" 157 + - "#size-cells" 158 + - device_type 159 + - bus-range 160 + - ranges 161 + - num-lanes 162 + - interrupts 163 + - interrupt-names 164 + - "#interrupt-cells" 165 + - interrupt-map-mask 166 + - interrupt-map 167 + - clocks 168 + - clock-names 169 + 170 + unevaluatedProperties: false 171 + 172 + examples: 173 + - | 174 + #include <dt-bindings/clock/imx6qdl-clock.h> 175 + #include <dt-bindings/interrupt-controller/arm-gic.h> 176 + 177 + pcie: pcie@1ffc000 { 178 + compatible = "fsl,imx6q-pcie"; 179 + reg = <0x01ffc000 0x04000>, 180 + <0x01f00000 0x80000>; 181 + reg-names = "dbi", "config"; 182 + #address-cells = <3>; 183 + #size-cells = <2>; 184 + device_type = "pci"; 185 + bus-range = <0x00 0xff>; 186 + ranges = <0x81000000 0 0 0x01f80000 0 0x00010000>, 187 + <0x82000000 0 0x01000000 0x01000000 0 0x00f00000>; 188 + num-lanes = <1>; 189 + interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; 190 + interrupt-names = "msi"; 191 + #interrupt-cells = <1>; 192 + interrupt-map-mask = <0 0 0 0x7>; 193 + interrupt-map = <0 0 0 1 &gpc GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, 194 + <0 0 0 2 &gpc GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>, 195 + <0 0 0 3 &gpc GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>, 196 + <0 0 0 4 &gpc GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; 197 + clocks = <&clks IMX6QDL_CLK_PCIE_AXI>, 198 + <&clks IMX6QDL_CLK_LVDS1_GATE>, 199 + <&clks IMX6QDL_CLK_PCIE_REF_125M>; 200 + clock-names = "pcie", "pcie_bus", "pcie_phy"; 201 + }; 202 + ...
+167
Documentation/devicetree/bindings/pci/hisilicon,kirin-pcie.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/pci/hisilicon,kirin-pcie.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: HiSilicon Kirin SoCs PCIe host DT description 8 + 9 + maintainers: 10 + - Xiaowei Song <songxiaowei@hisilicon.com> 11 + - Binghui Wang <wangbinghui@hisilicon.com> 12 + 13 + description: | 14 + Kirin PCIe host controller is based on the Synopsys DesignWare PCI core. 15 + It shares common functions with the PCIe DesignWare core driver and 16 + inherits common properties defined in 17 + Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml. 18 + 19 + allOf: 20 + - $ref: /schemas/pci/snps,dw-pcie.yaml# 21 + 22 + properties: 23 + compatible: 24 + contains: 25 + enum: 26 + - hisilicon,kirin960-pcie 27 + - hisilicon,kirin970-pcie 28 + 29 + reg: 30 + description: | 31 + Should contain dbi, apb, config registers location and length. 32 + For hisilicon,kirin960-pcie, it should also contain phy. 33 + minItems: 3 34 + maxItems: 4 35 + 36 + reg-names: 37 + minItems: 3 38 + maxItems: 4 39 + 40 + hisilicon,clken-gpios: 41 + description: | 42 + Clock input enablement GPIOs from PCI devices like Ethernet, M.2 and 43 + mini-PCIe slots. 44 + 45 + required: 46 + - compatible 47 + - reg 48 + - reg-names 49 + 50 + unevaluatedProperties: false 51 + 52 + examples: 53 + - | 54 + #include <dt-bindings/interrupt-controller/arm-gic.h> 55 + #include <dt-bindings/clock/hi3660-clock.h> 56 + #include <dt-bindings/clock/hi3670-clock.h> 57 + 58 + soc { 59 + #address-cells = <2>; 60 + #size-cells = <2>; 61 + 62 + pcie@f4000000 { 63 + compatible = "hisilicon,kirin960-pcie"; 64 + reg = <0x0 0xf4000000 0x0 0x1000>, 65 + <0x0 0xff3fe000 0x0 0x1000>, 66 + <0x0 0xf3f20000 0x0 0x40000>, 67 + <0x0 0xf5000000 0x0 0x2000>; 68 + reg-names = "dbi", "apb", "phy", "config"; 69 + bus-range = <0x0 0xff>; 70 + #address-cells = <3>; 71 + #size-cells = <2>; 72 + device_type = "pci"; 73 + ranges = <0x02000000 0x0 0x00000000 74 + 0x0 0xf6000000 75 + 0x0 0x02000000>; 76 + num-lanes = <1>; 77 + #interrupt-cells = <1>; 78 + interrupts = <0 283 4>; 79 + interrupt-names = "msi"; 80 + interrupt-map-mask = <0xf800 0 0 7>; 81 + interrupt-map = <0x0 0 0 1 &gic GIC_SPI 282 IRQ_TYPE_LEVEL_HIGH>, 82 + <0x0 0 0 2 &gic GIC_SPI 283 IRQ_TYPE_LEVEL_HIGH>, 83 + <0x0 0 0 3 &gic GIC_SPI 284 IRQ_TYPE_LEVEL_HIGH>, 84 + <0x0 0 0 4 &gic GIC_SPI 285 IRQ_TYPE_LEVEL_HIGH>; 85 + clocks = <&crg_ctrl HI3660_PCIEPHY_REF>, 86 + <&crg_ctrl HI3660_CLK_GATE_PCIEAUX>, 87 + <&crg_ctrl HI3660_PCLK_GATE_PCIE_PHY>, 88 + <&crg_ctrl HI3660_PCLK_GATE_PCIE_SYS>, 89 + <&crg_ctrl HI3660_ACLK_GATE_PCIE>; 90 + clock-names = "pcie_phy_ref", "pcie_aux", "pcie_apb_phy", 91 + "pcie_apb_sys", "pcie_aclk"; 92 + }; 93 + 94 + pcie@f5000000 { 95 + compatible = "hisilicon,kirin970-pcie"; 96 + reg = <0x0 0xf4000000 0x0 0x1000000>, 97 + <0x0 0xfc180000 0x0 0x1000>, 98 + <0x0 0xf5000000 0x0 0x2000>; 99 + reg-names = "dbi", "apb", "config"; 100 + bus-range = <0x0 0xff>; 101 + #address-cells = <3>; 102 + #size-cells = <2>; 103 + device_type = "pci"; 104 + phys = <&pcie_phy>; 105 + ranges = <0x02000000 0x0 0x00000000 106 + 0x0 0xf6000000 107 + 0x0 0x02000000>; 108 + num-lanes = <1>; 109 + #interrupt-cells = <1>; 110 + interrupts = <GIC_SPI 283 IRQ_TYPE_LEVEL_HIGH>; 111 + interrupt-names = "msi"; 112 + interrupt-map-mask = <0 0 0 7>; 113 + interrupt-map = <0x0 0 0 1 &gic GIC_SPI 282 IRQ_TYPE_LEVEL_HIGH>, 114 + <0x0 0 0 2 &gic GIC_SPI 283 IRQ_TYPE_LEVEL_HIGH>, 115 + <0x0 0 0 3 &gic GIC_SPI 284 IRQ_TYPE_LEVEL_HIGH>, 116 + <0x0 0 0 4 &gic GIC_SPI 285 IRQ_TYPE_LEVEL_HIGH>; 117 + reset-gpios = <&gpio7 0 0>; 118 + hisilicon,clken-gpios = <&gpio27 3 0>, <&gpio17 0 0>, <&gpio20 6 0>; 119 + pcie@0,0 { // Lane 0: PCIe switch: Bus 1, Device 0 120 + reg = <0 0 0 0 0>; 121 + compatible = "pciclass,0604"; 122 + device_type = "pci"; 123 + #address-cells = <3>; 124 + #size-cells = <2>; 125 + ranges; 126 + 127 + pcie@0,0 { // Lane 0: upstream 128 + reg = <0 0 0 0 0>; 129 + compatible = "pciclass,0604"; 130 + device_type = "pci"; 131 + #address-cells = <3>; 132 + #size-cells = <2>; 133 + ranges; 134 + 135 + pcie@1,0 { // Lane 4: M.2 136 + reg = <0x0800 0 0 0 0>; 137 + compatible = "pciclass,0604"; 138 + device_type = "pci"; 139 + reset-gpios = <&gpio3 1 0>; 140 + #address-cells = <3>; 141 + #size-cells = <2>; 142 + ranges; 143 + }; 144 + 145 + pcie@5,0 { // Lane 5: Mini PCIe 146 + reg = <0x2800 0 0 0 0>; 147 + compatible = "pciclass,0604"; 148 + device_type = "pci"; 149 + reset-gpios = <&gpio27 4 0 >; 150 + #address-cells = <3>; 151 + #size-cells = <2>; 152 + ranges; 153 + }; 154 + 155 + pcie@7,0 { // Lane 6: Ethernet 156 + reg = <0x03800 0 0 0 0>; 157 + compatible = "pciclass,0604"; 158 + device_type = "pci"; 159 + reset-gpios = <&gpio25 2 0 >; 160 + #address-cells = <3>; 161 + #size-cells = <2>; 162 + ranges; 163 + }; 164 + }; 165 + }; 166 + }; 167 + };
+1 -1
Documentation/devicetree/bindings/pci/hisilicon-histb-pcie.txt
··· 3 3 The HiSilicon STB PCIe host controller is based on the DesignWare PCIe core. 4 4 It shares common functions with the DesignWare PCIe core driver and inherits 5 5 common properties defined in 6 - Documentation/devicetree/bindings/pci/designware-pcie.txt. 6 + Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml. 7 7 8 8 Additional properties are described here: 9 9
+5 -31
Documentation/devicetree/bindings/pci/intel-gw-pcie.yaml
··· 7 7 title: PCIe RC controller on Intel Gateway SoCs 8 8 9 9 maintainers: 10 - - Dilip Kota <eswara.kota@linux.intel.com> 10 + - Rahul Tanwar <rtanwar@maxlinear.com> 11 11 12 12 select: 13 13 properties: ··· 17 17 required: 18 18 - compatible 19 19 20 + allOf: 21 + - $ref: /schemas/pci/snps,dw-pcie.yaml# 22 + 20 23 properties: 21 24 compatible: 22 25 items: 23 26 - const: intel,lgm-pcie 24 27 - const: snps,dw-pcie 25 - 26 - device_type: 27 - const: pci 28 - 29 - "#address-cells": 30 - const: 3 31 - 32 - "#size-cells": 33 - const: 2 34 28 35 29 reg: 36 30 items: ··· 56 62 reset-gpios: 57 63 maxItems: 1 58 64 59 - linux,pci-domain: true 60 - 61 65 num-lanes: 62 66 maximum: 2 63 - description: Number of lanes to use for this port. 64 - 65 - '#interrupt-cells': 66 - const: 1 67 - 68 - interrupt-map-mask: 69 - description: Standard PCI IRQ mapping properties. 70 - 71 - interrupt-map: 72 - description: Standard PCI IRQ mapping properties. 73 67 74 68 max-link-speed: 75 - description: Specify PCI Gen for link capability. 76 - $ref: /schemas/types.yaml#/definitions/uint32 77 69 enum: [1, 2, 3, 4] 78 70 default: 1 79 - 80 - bus-range: 81 - description: Range of bus numbers associated with this controller. 82 71 83 72 reset-assert-ms: 84 73 description: | ··· 71 94 72 95 required: 73 96 - compatible 74 - - device_type 75 - - "#address-cells" 76 - - "#size-cells" 77 97 - reg 78 98 - reg-names 79 99 - ranges ··· 83 109 - interrupt-map 84 110 - interrupt-map-mask 85 111 86 - additionalProperties: false 112 + unevaluatedProperties: false 87 113 88 114 examples: 89 115 - |
-50
Documentation/devicetree/bindings/pci/kirin-pcie.txt
··· 1 - HiSilicon Kirin SoCs PCIe host DT description 2 - 3 - Kirin PCIe host controller is based on the Synopsys DesignWare PCI core. 4 - It shares common functions with the PCIe DesignWare core driver and 5 - inherits common properties defined in 6 - Documentation/devicetree/bindings/pci/designware-pcie.txt. 7 - 8 - Additional properties are described here: 9 - 10 - Required properties 11 - - compatible: 12 - "hisilicon,kirin960-pcie" for PCIe of Kirin960 SoC 13 - - reg: Should contain rc_dbi, apb, phy, config registers location and length. 14 - - reg-names: Must include the following entries: 15 - "dbi": controller configuration registers; 16 - "apb": apb Ctrl register defined by Kirin; 17 - "phy": apb PHY register defined by Kirin; 18 - "config": PCIe configuration space registers. 19 - - reset-gpios: The GPIO to generate PCIe PERST# assert and deassert signal. 20 - 21 - Optional properties: 22 - 23 - Example based on kirin960: 24 - 25 - pcie@f4000000 { 26 - compatible = "hisilicon,kirin-pcie"; 27 - reg = <0x0 0xf4000000 0x0 0x1000>, <0x0 0xff3fe000 0x0 0x1000>, 28 - <0x0 0xf3f20000 0x0 0x40000>, <0x0 0xF4000000 0 0x2000>; 29 - reg-names = "dbi","apb","phy", "config"; 30 - bus-range = <0x0 0x1>; 31 - #address-cells = <3>; 32 - #size-cells = <2>; 33 - device_type = "pci"; 34 - ranges = <0x02000000 0x0 0x00000000 0x0 0xf5000000 0x0 0x2000000>; 35 - num-lanes = <1>; 36 - #interrupt-cells = <1>; 37 - interrupt-map-mask = <0xf800 0 0 7>; 38 - interrupt-map = <0x0 0 0 1 &gic 0 0 0 282 4>, 39 - <0x0 0 0 2 &gic 0 0 0 283 4>, 40 - <0x0 0 0 3 &gic 0 0 0 284 4>, 41 - <0x0 0 0 4 &gic 0 0 0 285 4>; 42 - clocks = <&crg_ctrl HI3660_PCIEPHY_REF>, 43 - <&crg_ctrl HI3660_CLK_GATE_PCIEAUX>, 44 - <&crg_ctrl HI3660_PCLK_GATE_PCIE_PHY>, 45 - <&crg_ctrl HI3660_PCLK_GATE_PCIE_SYS>, 46 - <&crg_ctrl HI3660_ACLK_GATE_PCIE>; 47 - clock-names = "pcie_phy_ref", "pcie_aux", 48 - "pcie_apb_phy", "pcie_apb_sys", "pcie_aclk"; 49 - reset-gpios = <&gpio11 1 0 >; 50 - };
+1 -1
Documentation/devicetree/bindings/pci/layerscape-pci.txt
··· 1 1 Freescale Layerscape PCIe controller 2 2 3 3 This PCIe host controller is based on the Synopsys DesignWare PCIe IP 4 - and thus inherits all the common properties defined in designware-pcie.txt. 4 + and thus inherits all the common properties defined in snps,dw-pcie.yaml. 5 5 6 6 This controller derives its clocks from the Reset Configuration Word (RCW) 7 7 which is used to describe the PLL settings at the time of chip-reset.
+4 -4
Documentation/devicetree/bindings/pci/loongson.yaml
··· 17 17 18 18 properties: 19 19 compatible: 20 - oneOf: 21 - - const: loongson,ls2k-pci 22 - - const: loongson,ls7a-pci 23 - - const: loongson,rs780e-pci 20 + enum: 21 + - loongson,ls2k-pci 22 + - loongson,ls7a-pci 23 + - loongson,rs780e-pci 24 24 25 25 reg: 26 26 minItems: 1
+3 -2
Documentation/devicetree/bindings/pci/nvidia,tegra194-pcie.txt
··· 1 1 NVIDIA Tegra PCIe controller (Synopsys DesignWare Core based) 2 2 3 3 This PCIe controller is based on the Synopsis Designware PCIe IP 4 - and thus inherits all the common properties defined in designware-pcie.txt. 4 + and thus inherits all the common properties defined in snps,dw-pcie.yaml and 5 + snps,dw-pcie-ep.yaml. 5 6 Some of the controller instances are dual mode where in they can work either 6 7 in root port mode or endpoint mode but one at a time. 7 8 ··· 23 22 property. 24 23 - reg-names: Must include the following entries: 25 24 "appl": Controller's application logic registers 26 - "config": As per the definition in designware-pcie.txt 25 + "config": As per the definition in snps,dw-pcie.yaml 27 26 "atu_dma": iATU and DMA registers. This is where the iATU (internal Address 28 27 Translation Unit) registers of the PCIe core are made available 29 28 for SW access.
+1 -1
Documentation/devicetree/bindings/pci/pci-armada8k.txt
··· 1 1 * Marvell Armada 7K/8K PCIe interface 2 2 3 3 This PCIe host controller is based on the Synopsys DesignWare PCIe IP 4 - and thus inherits all the common properties defined in designware-pcie.txt. 4 + and thus inherits all the common properties defined in snps,dw-pcie.yaml. 5 5 6 6 Required properties: 7 7 - compatible: "marvell,armada8k-pcie"
+1 -1
Documentation/devicetree/bindings/pci/pcie-al.txt
··· 2 2 3 3 Amazon's Annapurna Labs PCIe Host Controller is based on the Synopsys DesignWare 4 4 PCI core. It inherits common properties defined in 5 - Documentation/devicetree/bindings/pci/designware-pcie.txt. 5 + Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml. 6 6 7 7 Properties of the host controller node that differ from it are: 8 8
+7 -7
Documentation/devicetree/bindings/pci/qcom,pcie.txt
··· 34 34 - device_type: 35 35 Usage: required 36 36 Value type: <string> 37 - Definition: Should be "pci". As specified in designware-pcie.txt 37 + Definition: Should be "pci". As specified in snps,dw-pcie.yaml 38 38 39 39 - #address-cells: 40 40 Usage: required 41 41 Value type: <u32> 42 - Definition: Should be 3. As specified in designware-pcie.txt 42 + Definition: Should be 3. As specified in snps,dw-pcie.yaml 43 43 44 44 - #size-cells: 45 45 Usage: required 46 46 Value type: <u32> 47 - Definition: Should be 2. As specified in designware-pcie.txt 47 + Definition: Should be 2. As specified in snps,dw-pcie.yaml 48 48 49 49 - ranges: 50 50 Usage: required 51 51 Value type: <prop-encoded-array> 52 - Definition: As specified in designware-pcie.txt 52 + Definition: As specified in snps,dw-pcie.yaml 53 53 54 54 - interrupts: 55 55 Usage: required ··· 64 64 - #interrupt-cells: 65 65 Usage: required 66 66 Value type: <u32> 67 - Definition: Should be 1. As specified in designware-pcie.txt 67 + Definition: Should be 1. As specified in snps,dw-pcie.yaml 68 68 69 69 - interrupt-map-mask: 70 70 Usage: required 71 71 Value type: <prop-encoded-array> 72 - Definition: As specified in designware-pcie.txt 72 + Definition: As specified in snps,dw-pcie.yaml 73 73 74 74 - interrupt-map: 75 75 Usage: required 76 76 Value type: <prop-encoded-array> 77 - Definition: As specified in designware-pcie.txt 77 + Definition: As specified in snps,dw-pcie.yaml 78 78 79 79 - clocks: 80 80 Usage: required
+2 -2
Documentation/devicetree/bindings/pci/samsung,exynos-pcie.yaml
··· 13 13 description: |+ 14 14 Exynos5433 SoC PCIe host controller is based on the Synopsys DesignWare 15 15 PCIe IP and thus inherits all the common properties defined in 16 - designware-pcie.txt. 16 + snps,dw-pcie.yaml. 17 17 18 18 allOf: 19 - - $ref: /schemas/pci/pci-bus.yaml# 19 + - $ref: /schemas/pci/snps,dw-pcie.yaml# 20 20 21 21 properties: 22 22 compatible:
+2 -2
Documentation/devicetree/bindings/pci/sifive,fu740-pcie.yaml
··· 10 10 SiFive FU740 PCIe host controller is based on the Synopsys DesignWare 11 11 PCI core. It shares common features with the PCIe DesignWare core and 12 12 inherits common properties defined in 13 - Documentation/devicetree/bindings/pci/designware-pcie.txt. 13 + Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml. 14 14 15 15 maintainers: 16 16 - Paul Walmsley <paul.walmsley@sifive.com> 17 17 - Greentime Hu <greentime.hu@sifive.com> 18 18 19 19 allOf: 20 - - $ref: /schemas/pci/pci-bus.yaml# 20 + - $ref: /schemas/pci/snps,dw-pcie.yaml# 21 21 22 22 properties: 23 23 compatible:
+90
Documentation/devicetree/bindings/pci/snps,dw-pcie-ep.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/pci/snps,dw-pcie-ep.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Synopsys DesignWare PCIe endpoint interface 8 + 9 + maintainers: 10 + - Jingoo Han <jingoohan1@gmail.com> 11 + - Gustavo Pimentel <gustavo.pimentel@synopsys.com> 12 + 13 + description: | 14 + Synopsys DesignWare PCIe host controller endpoint 15 + 16 + allOf: 17 + - $ref: /schemas/pci/pci-ep.yaml# 18 + 19 + properties: 20 + compatible: 21 + anyOf: 22 + - {} 23 + - const: snps,dw-pcie-ep 24 + 25 + reg: 26 + description: | 27 + It should contain Data Bus Interface (dbi) and config registers for all 28 + versions. 29 + For designware core version >= 4.80, it may contain ATU address space. 30 + minItems: 2 31 + maxItems: 4 32 + 33 + reg-names: 34 + minItems: 2 35 + maxItems: 4 36 + items: 37 + enum: [dbi, dbi2, config, atu, addr_space, link, atu_dma, appl] 38 + 39 + reset-gpio: 40 + description: GPIO pin number of PERST# signal 41 + maxItems: 1 42 + deprecated: true 43 + 44 + reset-gpios: 45 + description: GPIO controlled connection to PERST# signal 46 + maxItems: 1 47 + 48 + snps,enable-cdm-check: 49 + type: boolean 50 + description: | 51 + This is a boolean property and if present enables 52 + automatic checking of CDM (Configuration Dependent Module) registers 53 + for data corruption. CDM registers include standard PCIe configuration 54 + space registers, Port Logic registers, DMA and iATU (internal Address 55 + Translation Unit) registers. 56 + 57 + num-ib-windows: 58 + description: number of inbound address translation windows 59 + maxItems: 1 60 + deprecated: true 61 + 62 + num-ob-windows: 63 + description: number of outbound address translation windows 64 + maxItems: 1 65 + deprecated: true 66 + 67 + max-functions: 68 + $ref: /schemas/types.yaml#/definitions/uint32 69 + description: maximum number of functions that can be configured 70 + 71 + required: 72 + - reg 73 + - reg-names 74 + - compatible 75 + 76 + unevaluatedProperties: false 77 + 78 + examples: 79 + - | 80 + bus { 81 + #address-cells = <1>; 82 + #size-cells = <1>; 83 + pcie-ep@dfd00000 { 84 + compatible = "snps,dw-pcie-ep"; 85 + reg = <0xdfc00000 0x0001000>, /* IP registers 1 */ 86 + <0xdfc01000 0x0001000>, /* IP registers 2 */ 87 + <0xd0000000 0x2000000>; /* Configuration space */ 88 + reg-names = "dbi", "dbi2", "addr_space"; 89 + }; 90 + };
+102
Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/pci/snps,dw-pcie.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Synopsys DesignWare PCIe interface 8 + 9 + maintainers: 10 + - Jingoo Han <jingoohan1@gmail.com> 11 + - Gustavo Pimentel <gustavo.pimentel@synopsys.com> 12 + 13 + description: | 14 + Synopsys DesignWare PCIe host controller 15 + 16 + allOf: 17 + - $ref: /schemas/pci/pci-bus.yaml# 18 + 19 + properties: 20 + compatible: 21 + anyOf: 22 + - {} 23 + - const: snps,dw-pcie 24 + 25 + reg: 26 + description: | 27 + It should contain Data Bus Interface (dbi) and config registers for all 28 + versions. 29 + For designware core version >= 4.80, it may contain ATU address space. 30 + minItems: 2 31 + maxItems: 5 32 + 33 + reg-names: 34 + minItems: 2 35 + maxItems: 5 36 + items: 37 + enum: [ dbi, dbi2, config, atu, app, elbi, mgmt, ctrl, parf, cfg, link, 38 + ulreg, smu, mpu, apb, phy ] 39 + 40 + num-lanes: 41 + description: | 42 + number of lanes to use (this property should be specified unless 43 + the link is brought already up in firmware) 44 + maximum: 16 45 + 46 + reset-gpio: 47 + description: GPIO pin number of PERST# signal 48 + maxItems: 1 49 + deprecated: true 50 + 51 + reset-gpios: 52 + description: GPIO controlled connection to PERST# signal 53 + maxItems: 1 54 + 55 + interrupts: true 56 + 57 + interrupt-names: true 58 + 59 + clocks: true 60 + 61 + snps,enable-cdm-check: 62 + type: boolean 63 + description: | 64 + This is a boolean property and if present enables 65 + automatic checking of CDM (Configuration Dependent Module) registers 66 + for data corruption. CDM registers include standard PCIe configuration 67 + space registers, Port Logic registers, DMA and iATU (internal Address 68 + Translation Unit) registers. 69 + 70 + num-viewport: 71 + description: | 72 + number of view ports configured in hardware. If a platform 73 + does not specify it, the driver autodetects it. 74 + deprecated: true 75 + 76 + unevaluatedProperties: false 77 + 78 + required: 79 + - reg 80 + - reg-names 81 + - compatible 82 + 83 + examples: 84 + - | 85 + bus { 86 + #address-cells = <1>; 87 + #size-cells = <1>; 88 + pcie@dfc00000 { 89 + device_type = "pci"; 90 + compatible = "snps,dw-pcie"; 91 + reg = <0xdfc00000 0x0001000>, /* IP registers */ 92 + <0xd0000000 0x0002000>; /* Configuration space */ 93 + reg-names = "dbi", "config"; 94 + #address-cells = <3>; 95 + #size-cells = <2>; 96 + ranges = <0x81000000 0 0x00000000 0xde000000 0 0x00010000>, 97 + <0x82000000 0 0xd0400000 0xd0400000 0 0x0d000000>; 98 + interrupts = <25>, <24>; 99 + #interrupt-cells = <1>; 100 + num-lanes = <1>; 101 + }; 102 + };
+2 -2
Documentation/devicetree/bindings/pci/socionext,uniphier-pcie-ep.yaml
··· 10 10 UniPhier PCIe endpoint controller is based on the Synopsys DesignWare 11 11 PCI core. It shares common features with the PCIe DesignWare core and 12 12 inherits common properties defined in 13 - Documentation/devicetree/bindings/pci/designware-pcie.txt. 13 + Documentation/devicetree/bindings/pci/snps,dw-pcie-ep.yaml. 14 14 15 15 maintainers: 16 16 - Kunihiko Hayashi <hayashi.kunihiko@socionext.com> 17 17 18 18 allOf: 19 - - $ref: "pci-ep.yaml#" 19 + - $ref: /schemas/pci/snps,dw-pcie-ep.yaml# 20 20 21 21 properties: 22 22 compatible:
+2 -2
Documentation/devicetree/bindings/pci/ti-pci.txt
··· 12 12 number of PHYs as specified in *phys* property. 13 13 - ti,hwmods : Name of the hwmod associated to the pcie, "pcie<X>", 14 14 where <X> is the instance number of the pcie from the HW spec. 15 - - num-lanes as specified in ../designware-pcie.txt 15 + - num-lanes as specified in ../snps,dw-pcie.yaml 16 16 - ti,syscon-lane-sel : phandle/offset pair. Phandle to the system control 17 17 module and the register offset to specify lane 18 18 selection. ··· 32 32 device_type, 33 33 ranges, 34 34 interrupt-map-mask, 35 - interrupt-map : as specified in ../designware-pcie.txt 35 + interrupt-map : as specified in ../snps,dw-pcie.yaml 36 36 - ti,syscon-unaligned-access: phandle to the syscon DT node. The 1st argument 37 37 should contain the register offset within syscon 38 38 and the 2nd argument should contain the bit field
+110
Documentation/devicetree/bindings/pci/toshiba,visconti-pcie.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/pci/toshiba,visconti-pcie.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Toshiba Visconti5 SoC PCIe Host Controller Device Tree Bindings 8 + 9 + maintainers: 10 + - Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp> 11 + 12 + description: 13 + Toshiba Visconti5 SoC PCIe host controller is based on the Synopsys DesignWare PCIe IP. 14 + 15 + allOf: 16 + - $ref: /schemas/pci/snps,dw-pcie.yaml# 17 + 18 + properties: 19 + compatible: 20 + const: toshiba,visconti-pcie 21 + 22 + reg: 23 + items: 24 + - description: Data Bus Interface (DBI) registers. 25 + - description: PCIe configuration space region. 26 + - description: Visconti specific additional registers. 27 + - description: Visconti specific SMU registers 28 + - description: Visconti specific memory protection unit registers (MPU) 29 + 30 + reg-names: 31 + items: 32 + - const: dbi 33 + - const: config 34 + - const: ulreg 35 + - const: smu 36 + - const: mpu 37 + 38 + interrupts: 39 + maxItems: 1 40 + 41 + clocks: 42 + items: 43 + - description: PCIe reference clock 44 + - description: PCIe system clock 45 + - description: Auxiliary clock 46 + 47 + clock-names: 48 + items: 49 + - const: ref 50 + - const: core 51 + - const: aux 52 + 53 + num-lanes: 54 + const: 2 55 + 56 + required: 57 + - reg 58 + - reg-names 59 + - interrupts 60 + - "#interrupt-cells" 61 + - interrupt-map 62 + - interrupt-map-mask 63 + - num-lanes 64 + - clocks 65 + - clock-names 66 + - max-link-speed 67 + 68 + unevaluatedProperties: false 69 + 70 + examples: 71 + - | 72 + #include <dt-bindings/interrupt-controller/irq.h> 73 + #include <dt-bindings/interrupt-controller/arm-gic.h> 74 + 75 + soc { 76 + #address-cells = <2>; 77 + #size-cells = <2>; 78 + 79 + pcie: pcie@28400000 { 80 + compatible = "toshiba,visconti-pcie"; 81 + reg = <0x0 0x28400000 0x0 0x00400000>, 82 + <0x0 0x70000000 0x0 0x10000000>, 83 + <0x0 0x28050000 0x0 0x00010000>, 84 + <0x0 0x24200000 0x0 0x00002000>, 85 + <0x0 0x24162000 0x0 0x00001000>; 86 + reg-names = "dbi", "config", "ulreg", "smu", "mpu"; 87 + device_type = "pci"; 88 + bus-range = <0x00 0xff>; 89 + num-lanes = <2>; 90 + num-viewport = <8>; 91 + 92 + #address-cells = <3>; 93 + #size-cells = <2>; 94 + #interrupt-cells = <1>; 95 + ranges = <0x81000000 0 0x40000000 0 0x40000000 0 0x00010000>, 96 + <0x82000000 0 0x50000000 0 0x50000000 0 0x20000000>; 97 + interrupts = <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>; 98 + interrupt-names = "intr"; 99 + interrupt-map-mask = <0 0 0 7>; 100 + interrupt-map = 101 + <0 0 0 1 &gic GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH 102 + 0 0 0 2 &gic GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH 103 + 0 0 0 3 &gic GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH 104 + 0 0 0 4 &gic GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>; 105 + clocks = <&extclk100mhz>, <&clk600mhz>, <&clk25mhz>; 106 + clock-names = "ref", "core", "aux"; 107 + max-link-speed = <2>; 108 + }; 109 + }; 110 + ...
+1 -1
Documentation/devicetree/bindings/pci/uniphier-pcie.txt
··· 6 6 UniPhier PCIe host controller is based on the Synopsys DesignWare PCI core. 7 7 It shares common functions with the PCIe DesignWare core driver and inherits 8 8 common properties defined in 9 - Documentation/devicetree/bindings/pci/designware-pcie.txt. 9 + Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml. 10 10 11 11 Required properties: 12 12 - compatible: Should be "socionext,uniphier-pcie".
+82
Documentation/devicetree/bindings/phy/hisilicon,phy-hi3670-pcie.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/phy/hisilicon,phy-hi3670-pcie.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: HiSilicon Kirin970 PCIe PHY 8 + 9 + maintainers: 10 + - Mauro Carvalho Chehab <mchehab+huawei@kernel.org> 11 + 12 + description: |+ 13 + Bindings for PCIe PHY on HiSilicon Kirin 970. 14 + 15 + properties: 16 + compatible: 17 + const: hisilicon,hi970-pcie-phy 18 + 19 + "#phy-cells": 20 + const: 0 21 + 22 + reg: 23 + maxItems: 1 24 + description: PHY Control registers 25 + 26 + phy-supply: 27 + description: The PCIe PHY power supply 28 + 29 + clocks: 30 + items: 31 + - description: PCIe PHY clock 32 + - description: PCIe AUX clock 33 + - description: PCIe APB PHY clock 34 + - description: PCIe APB SYS clock 35 + - description: PCIe ACLK clock 36 + 37 + clock-names: 38 + items: 39 + - const: phy_ref 40 + - const: aux 41 + - const: apb_phy 42 + - const: apb_sys 43 + - const: aclk 44 + 45 + hisilicon,eye-diagram-param: 46 + $ref: /schemas/types.yaml#/definitions/uint32-array 47 + description: Eye diagram for phy. 48 + 49 + required: 50 + - "#phy-cells" 51 + - compatible 52 + - reg 53 + - clocks 54 + - clock-names 55 + - hisilicon,eye-diagram-param 56 + - phy-supply 57 + 58 + additionalProperties: false 59 + 60 + examples: 61 + - | 62 + #include <dt-bindings/clock/hi3670-clock.h> 63 + 64 + soc { 65 + #address-cells = <2>; 66 + #size-cells = <2>; 67 + pcie_phy: pcie-phy@fc000000 { 68 + compatible = "hisilicon,hi970-pcie-phy"; 69 + reg = <0x0 0xfc000000 0x0 0x80000>; 70 + #phy-cells = <0>; 71 + phy-supply = <&ldo33>; 72 + clocks = <&crg_ctrl HI3670_CLK_GATE_PCIEPHY_REF>, 73 + <&crg_ctrl HI3670_CLK_GATE_PCIEAUX>, 74 + <&crg_ctrl HI3670_PCLK_GATE_PCIE_PHY>, 75 + <&crg_ctrl HI3670_PCLK_GATE_PCIE_SYS>, 76 + <&crg_ctrl HI3670_ACLK_GATE_PCIE>; 77 + clock-names = "phy_ref", "aux", 78 + "apb_phy", "apb_sys", "aclk"; 79 + hisilicon,eye-diagram-param = <0xffffffff 0xffffffff 80 + 0xffffffff 0xffffffff 0xffffffff>; 81 + }; 82 + };
+3 -3
Documentation/devicetree/bindings/phy/intel,lgm-emmc-phy.yaml
··· 23 23 24 24 properties: 25 25 compatible: 26 - oneOf: 27 - - const: intel,lgm-emmc-phy 28 - - const: intel,keembay-emmc-phy 26 + enum: 27 + - intel,lgm-emmc-phy 28 + - intel,keembay-emmc-phy 29 29 30 30 "#phy-cells": 31 31 const: 0
-61
Documentation/devicetree/bindings/power/reset/xlnx,zynqmp-power.txt
··· 1 - -------------------------------------------------------------------- 2 - Device Tree Bindings for the Xilinx Zynq MPSoC Power Management 3 - -------------------------------------------------------------------- 4 - The zynqmp-power node describes the power management configurations. 5 - It will control remote suspend/shutdown interfaces. 6 - 7 - Required properties: 8 - - compatible: Must contain: "xlnx,zynqmp-power" 9 - - interrupts: Interrupt specifier 10 - 11 - Optional properties: 12 - - mbox-names : Name given to channels seen in the 'mboxes' property. 13 - "tx" - Mailbox corresponding to transmit path 14 - "rx" - Mailbox corresponding to receive path 15 - - mboxes : Standard property to specify a Mailbox. Each value of 16 - the mboxes property should contain a phandle to the 17 - mailbox controller device node and an args specifier 18 - that will be the phandle to the intended sub-mailbox 19 - child node to be used for communication. See 20 - Documentation/devicetree/bindings/mailbox/mailbox.txt 21 - for more details about the generic mailbox controller 22 - and client driver bindings. Also see 23 - Documentation/devicetree/bindings/mailbox/ \ 24 - xlnx,zynqmp-ipi-mailbox.txt for typical controller that 25 - is used to communicate with this System controllers. 26 - 27 - -------- 28 - Examples 29 - -------- 30 - 31 - Example with interrupt method: 32 - 33 - firmware { 34 - zynqmp_firmware: zynqmp-firmware { 35 - compatible = "xlnx,zynqmp-firmware"; 36 - method = "smc"; 37 - 38 - zynqmp_power: zynqmp-power { 39 - compatible = "xlnx,zynqmp-power"; 40 - interrupts = <0 35 4>; 41 - }; 42 - }; 43 - }; 44 - 45 - Example with IPI mailbox method: 46 - 47 - firmware { 48 - zynqmp_firmware: zynqmp-firmware { 49 - compatible = "xlnx,zynqmp-firmware"; 50 - method = "smc"; 51 - 52 - zynqmp_power: zynqmp-power { 53 - compatible = "xlnx,zynqmp-power"; 54 - interrupt-parent = <&gic>; 55 - interrupts = <0 35 4>; 56 - mboxes = <&ipi_mailbox_pmu0 0>, 57 - <&ipi_mailbox_pmu0 1>; 58 - mbox-names = "tx", "rx"; 59 - }; 60 - }; 61 - };
+83
Documentation/devicetree/bindings/power/reset/xlnx,zynqmp-power.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/power/reset/xlnx,zynqmp-power.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Xilinx Zynq MPSoC Power Management Device Tree Bindings 8 + 9 + maintainers: 10 + - Michal Simek <michal.simek@xilinx.com> 11 + 12 + description: | 13 + The zynqmp-power node describes the power management configurations. 14 + It will control remote suspend/shutdown interfaces. 15 + 16 + properties: 17 + compatible: 18 + const: "xlnx,zynqmp-power" 19 + 20 + interrupts: 21 + maxItems: 1 22 + 23 + mboxes: 24 + description: | 25 + Standard property to specify a Mailbox. Each value of 26 + the mboxes property should contain a phandle to the 27 + mailbox controller device node and an args specifier 28 + that will be the phandle to the intended sub-mailbox 29 + child node to be used for communication. See 30 + Documentation/devicetree/bindings/mailbox/mailbox.txt 31 + for more details about the generic mailbox controller 32 + and client driver bindings. Also see 33 + Documentation/devicetree/bindings/mailbox/ \ 34 + xlnx,zynqmp-ipi-mailbox.txt for typical controller that 35 + is used to communicate with this System controllers. 36 + items: 37 + - description: tx channel 38 + - description: rx channel 39 + 40 + mbox-names: 41 + description: 42 + Name given to channels seen in the 'mboxes' property. 43 + items: 44 + - const: tx 45 + - const: rx 46 + 47 + required: 48 + - compatible 49 + - interrupts 50 + 51 + additionalProperties: false 52 + 53 + examples: 54 + - |+ 55 + 56 + // Example with interrupt method: 57 + 58 + firmware { 59 + zynqmp-firmware { 60 + zynqmp-power { 61 + compatible = "xlnx,zynqmp-power"; 62 + interrupts = <0 35 4>; 63 + }; 64 + }; 65 + }; 66 + 67 + - |+ 68 + 69 + // Example with IPI mailbox method: 70 + 71 + firmware { 72 + zynqmp-firmware { 73 + zynqmp-power { 74 + compatible = "xlnx,zynqmp-power"; 75 + interrupt-parent = <&gic>; 76 + interrupts = <0 35 4>; 77 + mboxes = <&ipi_mailbox_pmu1 0>, 78 + <&ipi_mailbox_pmu1 1>; 79 + mbox-names = "tx", "rx"; 80 + }; 81 + }; 82 + }; 83 + ...
-1
Documentation/devicetree/bindings/regulator/richtek,rt6245-regulator.yaml
··· 77 77 78 78 rt6245@34 { 79 79 compatible = "richtek,rt6245"; 80 - status = "okay"; 81 80 reg = <0x34>; 82 81 enable-gpios = <&gpio26 2 0>; 83 82
-1
Documentation/devicetree/bindings/regulator/vqmmc-ipq4019-regulator.yaml
··· 39 39 regulator-min-microvolt = <1500000>; 40 40 regulator-max-microvolt = <3000000>; 41 41 regulator-always-on; 42 - status = "disabled"; 43 42 }; 44 43 ...
-1
Documentation/devicetree/bindings/reset/hisilicon,hi3660-reset.yaml
··· 72 72 resets = <&iomcu_rst 0x20 3>; 73 73 pinctrl-names = "default"; 74 74 pinctrl-0 = <&i2c0_pmx_func &i2c0_cfg_func>; 75 - status = "disabled"; 76 75 }; 77 76 ...
-1
Documentation/devicetree/bindings/reset/intel,rcu-gw.yaml
··· 57 57 }; 58 58 59 59 pwm: pwm@e0d00000 { 60 - status = "disabled"; 61 60 compatible = "intel,lgm-pwm"; 62 61 reg = <0xe0d00000 0x30>; 63 62 clocks = <&cgu0 1>;
+1
Documentation/devicetree/bindings/rng/mtk-rng.yaml
··· 21 21 - enum: 22 22 - mediatek,mt7622-rng 23 23 - mediatek,mt7629-rng 24 + - mediatek,mt7986-rng 24 25 - mediatek,mt8365-rng 25 26 - mediatek,mt8516-rng 26 27 - const: mediatek,mt7623-rng
-17
Documentation/devicetree/bindings/rng/samsung,exynos5250-trng.txt
··· 1 - Exynos True Random Number Generator 2 - 3 - Required properties: 4 - 5 - - compatible : Should be "samsung,exynos5250-trng". 6 - - reg : Specifies base physical address and size of the registers map. 7 - - clocks : Phandle to clock-controller plus clock-specifier pair. 8 - - clock-names : "secss" as a clock name. 9 - 10 - Example: 11 - 12 - rng@10830600 { 13 - compatible = "samsung,exynos5250-trng"; 14 - reg = <0x10830600 0x100>; 15 - clocks = <&clock CLK_SSS>; 16 - clock-names = "secss"; 17 - };
+44
Documentation/devicetree/bindings/rng/samsung,exynos5250-trng.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/rng/samsung,exynos5250-trng.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Samsung Exynos SoC True Random Number Generator 8 + 9 + maintainers: 10 + - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> 11 + - Łukasz Stelmach <l.stelmach@samsung.com> 12 + 13 + properties: 14 + compatible: 15 + const: samsung,exynos5250-trng 16 + 17 + clocks: 18 + maxItems: 1 19 + 20 + clock-names: 21 + items: 22 + - const: secss 23 + 24 + reg: 25 + maxItems: 1 26 + 27 + required: 28 + - compatible 29 + - clocks 30 + - clock-names 31 + - reg 32 + 33 + additionalProperties: false 34 + 35 + examples: 36 + - | 37 + #include <dt-bindings/clock/exynos5250.h> 38 + 39 + rng@10830600 { 40 + compatible = "samsung,exynos5250-trng"; 41 + reg = <0x10830600 0x100>; 42 + clocks = <&clock CLK_SSS>; 43 + clock-names = "secss"; 44 + };
-1
Documentation/devicetree/bindings/rtc/microcrystal,rv3032.yaml
··· 53 53 rtc@51 { 54 54 compatible = "microcrystal,rv3032"; 55 55 reg = <0x51>; 56 - status = "okay"; 57 56 pinctrl-0 = <&rtc_nint_pins>; 58 57 interrupts-extended = <&gpio1 16 IRQ_TYPE_LEVEL_HIGH>; 59 58 trickle-resistor-ohms = <7000>;
+5 -4
Documentation/devicetree/bindings/serial/8250_omap.yaml
··· 91 91 if: 92 92 properties: 93 93 compatible: 94 - oneOf: 95 - - const: ti,omap2-uart 96 - - const: ti,omap3-uart 97 - - const: ti,omap4-uart 94 + contains: 95 + enum: 96 + - ti,omap2-uart 97 + - ti,omap3-uart 98 + - ti,omap4-uart 98 99 99 100 then: 100 101 properties:
-1
Documentation/devicetree/bindings/soc/litex/litex,soc-controller.yaml
··· 35 35 soc_ctrl0: soc-controller@f0000000 { 36 36 compatible = "litex,soc-controller"; 37 37 reg = <0xf0000000 0xc>; 38 - status = "okay"; 39 38 }; 40 39 41 40 ...
+3 -3
Documentation/devicetree/bindings/sound/qcom,sm8250.yaml
··· 15 15 16 16 properties: 17 17 compatible: 18 - oneOf: 19 - - const: qcom,sm8250-sndcard 20 - - const: qcom,qrb5165-rb5-sndcard 18 + enum: 19 + - qcom,sm8250-sndcard 20 + - qcom,qrb5165-rb5-sndcard 21 21 22 22 audio-routing: 23 23 $ref: /schemas/types.yaml#/definitions/non-unique-string-array
-2
Documentation/devicetree/bindings/sound/st,stm32-sai.yaml
··· 180 180 pinctrl-names = "default", "sleep"; 181 181 pinctrl-0 = <&sai2a_pins_a>, <&sai2b_pins_b>; 182 182 pinctrl-1 = <&sai2a_sleep_pins_a>, <&sai2b_sleep_pins_b>; 183 - status = "okay"; 184 183 185 184 sai2a: audio-controller@4400b004 { 186 185 #sound-dai-cells = <0>; ··· 189 190 dma-names = "tx"; 190 191 clocks = <&rcc SAI2_K>; 191 192 clock-names = "sai_ck"; 192 - status = "okay"; 193 193 }; 194 194 }; 195 195
-2
Documentation/devicetree/bindings/sound/ti,j721e-cpb-audio.yaml
··· 127 127 compatible = "ti,j721e-cpb-audio"; 128 128 model = "j721e-cpb"; 129 129 130 - status = "okay"; 131 - 132 130 ti,cpb-mcasp = <&mcasp10>; 133 131 ti,cpb-codec = <&pcm3168a_1>; 134 132
-2
Documentation/devicetree/bindings/sound/ti,j721e-cpb-ivi-audio.yaml
··· 119 119 compatible = "ti,j721e-cpb-ivi-audio"; 120 120 model = "j721e-cpb-ivi"; 121 121 122 - status = "okay"; 123 - 124 122 ti,cpb-mcasp = <&mcasp10>; 125 123 ti,cpb-codec = <&pcm3168a_1>; 126 124
+4 -4
Documentation/devicetree/bindings/sound/tlv320adcx140.yaml
··· 24 24 25 25 properties: 26 26 compatible: 27 - oneOf: 28 - - const: ti,tlv320adc3140 29 - - const: ti,tlv320adc5140 30 - - const: ti,tlv320adc6140 27 + enum: 28 + - ti,tlv320adc3140 29 + - ti,tlv320adc5140 30 + - ti,tlv320adc6140 31 31 32 32 reg: 33 33 maxItems: 1
+6 -6
Documentation/devicetree/bindings/spi/realtek,rtl-spi.yaml
··· 15 15 16 16 properties: 17 17 compatible: 18 - oneOf: 19 - - const: realtek,rtl8380-spi 20 - - const: realtek,rtl8382-spi 21 - - const: realtek,rtl8391-spi 22 - - const: realtek,rtl8392-spi 23 - - const: realtek,rtl8393-spi 18 + enum: 19 + - realtek,rtl8380-spi 20 + - realtek,rtl8382-spi 21 + - realtek,rtl8391-spi 22 + - realtek,rtl8392-spi 23 + - realtek,rtl8393-spi 24 24 25 25 reg: 26 26 maxItems: 1
+3 -3
Documentation/devicetree/bindings/timer/arm,sp804.yaml
··· 23 23 properties: 24 24 compatible: 25 25 contains: 26 - oneOf: 27 - - const: arm,sp804 28 - - const: hisilicon,sp804 26 + enum: 27 + - arm,sp804 28 + - hisilicon,sp804 29 29 required: 30 30 - compatible 31 31
-23
Documentation/devicetree/bindings/timer/energymicro,efm32-timer.txt
··· 1 - * EFM32 timer hardware 2 - 3 - The efm32 Giant Gecko SoCs come with four 16 bit timers. Two counters can be 4 - connected to form a 32 bit counter. Each timer has three Compare/Capture 5 - channels and can be used as PWM or Quadrature Decoder. Available clock sources 6 - are the cpu's HFPERCLK (with a 10-bit prescaler) or an external pin. 7 - 8 - Required properties: 9 - - compatible : Should be "energymicro,efm32-timer" 10 - - reg : Address and length of the register set 11 - - clocks : Should contain a reference to the HFPERCLK 12 - 13 - Optional properties: 14 - - interrupts : Reference to the timer interrupt 15 - 16 - Example: 17 - 18 - timer@40010c00 { 19 - compatible = "energymicro,efm32-timer"; 20 - reg = <0x40010c00 0x400>; 21 - interrupts = <14>; 22 - clocks = <&cmu clk_HFPERCLKTIMER3>; 23 - };
+2
Documentation/devicetree/bindings/trivial-devices.yaml
··· 147 147 - maxim,ds1803-100 148 148 # Low-Power, 4-/12-Channel, 2-Wire Serial, 12-Bit ADCs 149 149 - maxim,max1237 150 + # Temperature Sensor, I2C interface 151 + - maxim,max1619 150 152 # 10-bit 10 kOhm linear programable voltage divider 151 153 - maxim,max5481 152 154 # 10-bit 50 kOhm linear programable voltage divider
+12
Documentation/devicetree/bindings/vendor-prefixes.yaml
··· 567 567 description: ITE Tech. Inc. 568 568 "^itead,.*": 569 569 description: ITEAD Intelligent Systems Co.Ltd 570 + "^itian,.*": 571 + description: ITian Corporation 570 572 "^iwave,.*": 571 573 description: iWave Systems Technologies Pvt. Ltd. 572 574 "^jdi,.*": ··· 1123 1121 "^st-ericsson,.*": 1124 1122 description: ST-Ericsson 1125 1123 deprecated: true 1124 + "^storlink,.*": 1125 + description: StorLink Semiconductors, Inc. 1126 + "^storm,.*": 1127 + description: Storm Semiconductor, Inc. 1126 1128 "^summit,.*": 1127 1129 description: Summit microelectronics 1128 1130 "^sunchip,.*": ··· 1159 1153 description: TechNexion 1160 1154 "^technologic,.*": 1161 1155 description: Technologic Systems 1156 + "^teltonika,.*": 1157 + description: Teltonika Networks 1162 1158 "^tempo,.*": 1163 1159 description: Tempo Semiconductor 1164 1160 "^techstar,.*": ··· 1183 1175 description: Tecon Microprocessor Technologies, LLC. 1184 1176 "^topeet,.*": 1185 1177 description: Topeet 1178 + "^topic,.*": 1179 + description: Topic Embedded Systems 1186 1180 "^toppoly,.*": 1187 1181 description: TPO (deprecated, use tpo) 1188 1182 deprecated: true ··· 1290 1280 description: Shenzhen whwave Electronics, Inc. 1291 1281 "^wi2wi,.*": 1292 1282 description: Wi2Wi, Inc. 1283 + "^wiligear,.*": 1284 + description: Wiligear, Ltd. 1293 1285 "^winbond,.*": 1294 1286 description: Winbond Electronics corp. 1295 1287 "^winstar,.*":
+10 -8
MAINTAINERS
··· 1395 1395 F: Documentation/devicetree/bindings/arm/arm,realview.yaml 1396 1396 F: Documentation/devicetree/bindings/arm/arm,versatile.yaml 1397 1397 F: Documentation/devicetree/bindings/arm/arm,vexpress-juno.yaml 1398 - F: Documentation/devicetree/bindings/auxdisplay/arm-charlcd.txt 1398 + F: Documentation/devicetree/bindings/auxdisplay/arm,versatile-lcd.yaml 1399 1399 F: Documentation/devicetree/bindings/clock/arm,syscon-icst.yaml 1400 1400 F: Documentation/devicetree/bindings/i2c/i2c-versatile.txt 1401 1401 F: Documentation/devicetree/bindings/interrupt-controller/arm,versatile-fpga-irq.txt ··· 3869 3869 M: bcm-kernel-feedback-list@broadcom.com 3870 3870 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 3871 3871 S: Maintained 3872 - F: Documentation/devicetree/bindings/memory-controllers/brcm,dpfe-cpu.txt 3872 + F: Documentation/devicetree/bindings/memory-controllers/brcm,dpfe-cpu.yaml 3873 3873 F: drivers/memory/brcmstb_dpfe.c 3874 3874 3875 3875 BROADCOM STB NAND FLASH DRIVER ··· 5595 5595 L: linux-pm@vger.kernel.org 5596 5596 L: linux-samsung-soc@vger.kernel.org 5597 5597 S: Maintained 5598 - F: Documentation/devicetree/bindings/memory-controllers/exynos5422-dmc.txt 5598 + F: Documentation/devicetree/bindings/memory-controllers/samsung,exynos5422-dmc.yaml 5599 5599 F: drivers/memory/samsung/exynos5422-dmc.c 5600 5600 5601 5601 DME1737 HARDWARE MONITOR DRIVER ··· 6604 6604 M: Jan Luebbe <jlu@pengutronix.de> 6605 6605 L: linux-edac@vger.kernel.org 6606 6606 S: Maintained 6607 + F: Documentation/devicetree/bindings/memory-controllers/marvell,mvebu-sdram-controller.yaml 6607 6608 F: drivers/edac/armada_xp_* 6608 6609 6609 6610 EDAC-AST2500 ··· 9097 9096 IMGTEC ASCII LCD DRIVER 9098 9097 M: Paul Burton <paulburton@kernel.org> 9099 9098 S: Maintained 9100 - F: Documentation/devicetree/bindings/auxdisplay/img-ascii-lcd.txt 9099 + F: Documentation/devicetree/bindings/auxdisplay/img,ascii-lcd.yaml 9101 9100 F: drivers/auxdisplay/img-ascii-lcd.c 9102 9101 9103 9102 IMGTEC IR DECODER DRIVER ··· 14282 14281 L: linux-pci@vger.kernel.org 14283 14282 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 14284 14283 S: Maintained 14285 - F: Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt 14284 + F: Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml 14286 14285 F: drivers/pci/controller/dwc/*imx6* 14287 14286 14288 14287 PCI DRIVER FOR FU740 ··· 14370 14369 M: Gustavo Pimentel <gustavo.pimentel@synopsys.com> 14371 14370 L: linux-pci@vger.kernel.org 14372 14371 S: Maintained 14373 - F: Documentation/devicetree/bindings/pci/designware-pcie.txt 14372 + F: Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml 14373 + F: Documentation/devicetree/bindings/pci/snps,dw-pcie-ep.yaml 14374 14374 F: drivers/pci/controller/dwc/*designware* 14375 14375 14376 14376 PCI DRIVER FOR TI DRA7XX/J721E ··· 14508 14506 M: Binghui Wang <wangbinghui@hisilicon.com> 14509 14507 L: linux-pci@vger.kernel.org 14510 14508 S: Maintained 14511 - F: Documentation/devicetree/bindings/pci/kirin-pcie.txt 14509 + F: Documentation/devicetree/bindings/pci/hisilicon,kirin-pcie.yaml 14512 14510 F: drivers/pci/controller/dwc/pcie-kirin.c 14513 14511 14514 14512 PCIE DRIVER FOR HISILICON STB ··· 16414 16412 M: Łukasz Stelmach <l.stelmach@samsung.com> 16415 16413 L: linux-samsung-soc@vger.kernel.org 16416 16414 S: Maintained 16417 - F: Documentation/devicetree/bindings/rng/samsung,exynos5250-trng.txt 16415 + F: Documentation/devicetree/bindings/rng/samsung,exynos5250-trng.yaml 16418 16416 F: drivers/char/hw_random/exynos-trng.c 16419 16417 16420 16418 SAMSUNG FRAMEBUFFER DRIVER
-88
arch/arm64/mm/init.c
··· 124 124 } 125 125 #endif /* CONFIG_KEXEC_CORE */ 126 126 127 - #ifdef CONFIG_CRASH_DUMP 128 - static int __init early_init_dt_scan_elfcorehdr(unsigned long node, 129 - const char *uname, int depth, void *data) 130 - { 131 - const __be32 *reg; 132 - int len; 133 - 134 - if (depth != 1 || strcmp(uname, "chosen") != 0) 135 - return 0; 136 - 137 - reg = of_get_flat_dt_prop(node, "linux,elfcorehdr", &len); 138 - if (!reg || (len < (dt_root_addr_cells + dt_root_size_cells))) 139 - return 1; 140 - 141 - elfcorehdr_addr = dt_mem_next_cell(dt_root_addr_cells, &reg); 142 - elfcorehdr_size = dt_mem_next_cell(dt_root_size_cells, &reg); 143 - 144 - return 1; 145 - } 146 - 147 - /* 148 - * reserve_elfcorehdr() - reserves memory for elf core header 149 - * 150 - * This function reserves the memory occupied by an elf core header 151 - * described in the device tree. This region contains all the 152 - * information about primary kernel's core image and is used by a dump 153 - * capture kernel to access the system memory on primary kernel. 154 - */ 155 - static void __init reserve_elfcorehdr(void) 156 - { 157 - of_scan_flat_dt(early_init_dt_scan_elfcorehdr, NULL); 158 - 159 - if (!elfcorehdr_size) 160 - return; 161 - 162 - if (memblock_is_region_reserved(elfcorehdr_addr, elfcorehdr_size)) { 163 - pr_warn("elfcorehdr is overlapped\n"); 164 - return; 165 - } 166 - 167 - memblock_reserve(elfcorehdr_addr, elfcorehdr_size); 168 - 169 - pr_info("Reserving %lldKB of memory at 0x%llx for elfcorehdr\n", 170 - elfcorehdr_size >> 10, elfcorehdr_addr); 171 - } 172 - #else 173 - static void __init reserve_elfcorehdr(void) 174 - { 175 - } 176 - #endif /* CONFIG_CRASH_DUMP */ 177 - 178 127 /* 179 128 * Return the maximum physical address for a zone accessible by the given bits 180 129 * limit. If DRAM starts above 32-bit, expand the zone to the maximum ··· 234 285 } 235 286 early_param("mem", early_mem); 236 287 237 - static int __init early_init_dt_scan_usablemem(unsigned long node, 238 - const char *uname, int depth, void *data) 239 - { 240 - struct memblock_region *usablemem = data; 241 - const __be32 *reg; 242 - int len; 243 - 244 - if (depth != 1 || strcmp(uname, "chosen") != 0) 245 - return 0; 246 - 247 - reg = of_get_flat_dt_prop(node, "linux,usable-memory-range", &len); 248 - if (!reg || (len < (dt_root_addr_cells + dt_root_size_cells))) 249 - return 1; 250 - 251 - usablemem->base = dt_mem_next_cell(dt_root_addr_cells, &reg); 252 - usablemem->size = dt_mem_next_cell(dt_root_size_cells, &reg); 253 - 254 - return 1; 255 - } 256 - 257 - static void __init fdt_enforce_memory_region(void) 258 - { 259 - struct memblock_region reg = { 260 - .size = 0, 261 - }; 262 - 263 - of_scan_flat_dt(early_init_dt_scan_usablemem, &reg); 264 - 265 - if (reg.size) 266 - memblock_cap_memory_range(reg.base, reg.size); 267 - } 268 - 269 288 void __init arm64_memblock_init(void) 270 289 { 271 290 const s64 linear_region_size = PAGE_END - _PAGE_OFFSET(vabits_actual); 272 - 273 - /* Handle linux,usable-memory-range property */ 274 - fdt_enforce_memory_region(); 275 291 276 292 /* Remove memory above our supported physical address size */ 277 293 memblock_remove(1ULL << PHYS_MASK_SHIFT, ULLONG_MAX); ··· 345 431 } 346 432 347 433 early_init_fdt_scan_reserved_mem(); 348 - 349 - reserve_elfcorehdr(); 350 434 351 435 high_memory = __va(memblock_end_of_DRAM() - 1) + 1; 352 436 }
-20
arch/riscv/mm/init.c
··· 860 860 } 861 861 #endif /* CONFIG_KEXEC_CORE */ 862 862 863 - #ifdef CONFIG_CRASH_DUMP 864 - /* 865 - * We keep track of the ELF core header of the crashed 866 - * kernel with a reserved-memory region with compatible 867 - * string "linux,elfcorehdr". Here we register a callback 868 - * to populate elfcorehdr_addr/size when this region is 869 - * present. Note that this region will be marked as 870 - * reserved once we call early_init_fdt_scan_reserved_mem() 871 - * later on. 872 - */ 873 - static int __init elfcore_hdr_setup(struct reserved_mem *rmem) 874 - { 875 - elfcorehdr_addr = rmem->base; 876 - elfcorehdr_size = rmem->size; 877 - return 0; 878 - } 879 - 880 - RESERVEDMEM_OF_DECLARE(elfcorehdr, "linux,elfcorehdr", elfcore_hdr_setup); 881 - #endif 882 - 883 863 void __init paging_init(void) 884 864 { 885 865 setup_bootmem();
+1 -3
drivers/of/base.c
··· 708 708 return NULL; 709 709 710 710 next = prev ? prev->sibling : node->child; 711 - for (; next; next = next->sibling) 712 - if (of_node_get(next)) 713 - break; 711 + of_node_get(next); 714 712 of_node_put(prev); 715 713 return next; 716 714 }
+104 -33
drivers/of/fdt.c
··· 8 8 9 9 #define pr_fmt(fmt) "OF: fdt: " fmt 10 10 11 + #include <linux/crash_dump.h> 11 12 #include <linux/crc32.h> 12 13 #include <linux/kernel.h> 13 14 #include <linux/initrd.h> ··· 194 193 pp->length = len; 195 194 pp->value = pp + 1; 196 195 *pprev = pp; 197 - pprev = &pp->next; 198 196 memcpy(pp->value, ps, len - 1); 199 197 ((char *)pp->value)[len - 1] = 0; 200 198 pr_debug("fixed up name for %s -> %s\n", 201 199 nodename, (char *)pp->value); 202 200 } 203 201 } 204 - 205 - if (!dryrun) 206 - *pprev = NULL; 207 202 } 208 203 209 204 static int populate_node(const void *blob, ··· 476 479 477 480 static u32 of_fdt_crc32; 478 481 482 + static int __init early_init_dt_reserve_memory_arch(phys_addr_t base, 483 + phys_addr_t size, bool nomap) 484 + { 485 + if (nomap) { 486 + /* 487 + * If the memory is already reserved (by another region), we 488 + * should not allow it to be marked nomap. 489 + */ 490 + if (memblock_is_region_reserved(base, size)) 491 + return -EBUSY; 492 + 493 + return memblock_mark_nomap(base, size); 494 + } 495 + return memblock_reserve(base, size); 496 + } 497 + 479 498 /* 480 499 * __reserved_mem_reserve_reg() - reserve all memory described in 'reg' property 481 500 */ ··· 598 585 return 0; 599 586 } 600 587 588 + /* 589 + * fdt_reserve_elfcorehdr() - reserves memory for elf core header 590 + * 591 + * This function reserves the memory occupied by an elf core header 592 + * described in the device tree. This region contains all the 593 + * information about primary kernel's core image and is used by a dump 594 + * capture kernel to access the system memory on primary kernel. 595 + */ 596 + static void __init fdt_reserve_elfcorehdr(void) 597 + { 598 + if (!IS_ENABLED(CONFIG_CRASH_DUMP) || !elfcorehdr_size) 599 + return; 600 + 601 + if (memblock_is_region_reserved(elfcorehdr_addr, elfcorehdr_size)) { 602 + pr_warn("elfcorehdr is overlapped\n"); 603 + return; 604 + } 605 + 606 + memblock_reserve(elfcorehdr_addr, elfcorehdr_size); 607 + 608 + pr_info("Reserving %llu KiB of memory at 0x%llx for elfcorehdr\n", 609 + elfcorehdr_size >> 10, elfcorehdr_addr); 610 + } 611 + 601 612 /** 602 613 * early_init_fdt_scan_reserved_mem() - create reserved memory regions 603 614 * ··· 647 610 648 611 of_scan_flat_dt(__fdt_scan_reserved_mem, NULL); 649 612 fdt_init_reserved_mem(); 613 + fdt_reserve_elfcorehdr(); 650 614 } 651 615 652 616 /** ··· 896 858 return best_data; 897 859 } 898 860 899 - #ifdef CONFIG_BLK_DEV_INITRD 900 861 static void __early_init_dt_declare_initrd(unsigned long start, 901 862 unsigned long end) 902 863 { ··· 921 884 int len; 922 885 const __be32 *prop; 923 886 887 + if (!IS_ENABLED(CONFIG_BLK_DEV_INITRD)) 888 + return; 889 + 924 890 pr_debug("Looking for initrd properties... "); 925 891 926 892 prop = of_get_flat_dt_prop(node, "linux,initrd-start", &len); ··· 942 902 943 903 pr_debug("initrd_start=0x%llx initrd_end=0x%llx\n", start, end); 944 904 } 945 - #else 946 - static inline void early_init_dt_check_for_initrd(unsigned long node) 905 + 906 + /** 907 + * early_init_dt_check_for_elfcorehdr - Decode elfcorehdr location from flat 908 + * tree 909 + * @node: reference to node containing elfcorehdr location ('chosen') 910 + */ 911 + static void __init early_init_dt_check_for_elfcorehdr(unsigned long node) 947 912 { 913 + const __be32 *prop; 914 + int len; 915 + 916 + if (!IS_ENABLED(CONFIG_CRASH_DUMP)) 917 + return; 918 + 919 + pr_debug("Looking for elfcorehdr property... "); 920 + 921 + prop = of_get_flat_dt_prop(node, "linux,elfcorehdr", &len); 922 + if (!prop || (len < (dt_root_addr_cells + dt_root_size_cells))) 923 + return; 924 + 925 + elfcorehdr_addr = dt_mem_next_cell(dt_root_addr_cells, &prop); 926 + elfcorehdr_size = dt_mem_next_cell(dt_root_size_cells, &prop); 927 + 928 + pr_debug("elfcorehdr_start=0x%llx elfcorehdr_size=0x%llx\n", 929 + elfcorehdr_addr, elfcorehdr_size); 948 930 } 949 - #endif /* CONFIG_BLK_DEV_INITRD */ 931 + 932 + static phys_addr_t cap_mem_addr; 933 + static phys_addr_t cap_mem_size; 934 + 935 + /** 936 + * early_init_dt_check_for_usable_mem_range - Decode usable memory range 937 + * location from flat tree 938 + * @node: reference to node containing usable memory range location ('chosen') 939 + */ 940 + static void __init early_init_dt_check_for_usable_mem_range(unsigned long node) 941 + { 942 + const __be32 *prop; 943 + int len; 944 + 945 + pr_debug("Looking for usable-memory-range property... "); 946 + 947 + prop = of_get_flat_dt_prop(node, "linux,usable-memory-range", &len); 948 + if (!prop || (len < (dt_root_addr_cells + dt_root_size_cells))) 949 + return; 950 + 951 + cap_mem_addr = dt_mem_next_cell(dt_root_addr_cells, &prop); 952 + cap_mem_size = dt_mem_next_cell(dt_root_size_cells, &prop); 953 + 954 + pr_debug("cap_mem_start=%pa cap_mem_size=%pa\n", &cap_mem_addr, 955 + &cap_mem_size); 956 + } 950 957 951 958 #ifdef CONFIG_SERIAL_EARLYCON 952 959 ··· 1120 1033 if (!hotpluggable) 1121 1034 continue; 1122 1035 1123 - if (early_init_dt_mark_hotplug_memory_arch(base, size)) 1036 + if (memblock_mark_hotplug(base, size)) 1124 1037 pr_warn("failed to mark hotplug range 0x%llx - 0x%llx\n", 1125 1038 base, base + size); 1126 1039 } ··· 1142 1055 return 0; 1143 1056 1144 1057 early_init_dt_check_for_initrd(node); 1058 + early_init_dt_check_for_elfcorehdr(node); 1059 + early_init_dt_check_for_usable_mem_range(node); 1145 1060 1146 1061 /* Retrieve command line */ 1147 1062 p = of_get_flat_dt_prop(node, "bootargs", &l); ··· 1235 1146 memblock_add(base, size); 1236 1147 } 1237 1148 1238 - int __init __weak early_init_dt_mark_hotplug_memory_arch(u64 base, u64 size) 1239 - { 1240 - return memblock_mark_hotplug(base, size); 1241 - } 1242 - 1243 - int __init __weak early_init_dt_reserve_memory_arch(phys_addr_t base, 1244 - phys_addr_t size, bool nomap) 1245 - { 1246 - if (nomap) { 1247 - /* 1248 - * If the memory is already reserved (by another region), we 1249 - * should not allow it to be marked nomap. 1250 - */ 1251 - if (memblock_is_region_reserved(base, size)) 1252 - return -EBUSY; 1253 - 1254 - return memblock_mark_nomap(base, size); 1255 - } 1256 - return memblock_reserve(base, size); 1257 - } 1258 - 1259 1149 static void * __init early_init_dt_alloc_memory_arch(u64 size, u64 align) 1260 1150 { 1261 1151 void *ptr = memblock_alloc(size, align); ··· 1267 1199 { 1268 1200 int rc = 0; 1269 1201 1202 + /* Initialize {size,address}-cells info */ 1203 + of_scan_flat_dt(early_init_dt_scan_root, NULL); 1204 + 1270 1205 /* Retrieve various information from the /chosen node */ 1271 1206 rc = of_scan_flat_dt(early_init_dt_scan_chosen, boot_command_line); 1272 1207 if (!rc) 1273 1208 pr_warn("No chosen node found, continuing without\n"); 1274 1209 1275 - /* Initialize {size,address}-cells info */ 1276 - of_scan_flat_dt(early_init_dt_scan_root, NULL); 1277 - 1278 1210 /* Setup memory, calling early_init_dt_add_memory_arch */ 1279 1211 of_scan_flat_dt(early_init_dt_scan_memory, NULL); 1212 + 1213 + /* Handle linux,usable-memory-range property */ 1214 + memblock_cap_memory_range(cap_mem_addr, cap_mem_size); 1280 1215 } 1281 1216 1282 1217 bool __init early_init_dt_scan(void *params)
+15 -25
drivers/of/kexec.c
··· 18 18 #include <linux/random.h> 19 19 #include <linux/types.h> 20 20 21 - /* relevant device tree properties */ 22 - #define FDT_PROP_KEXEC_ELFHDR "linux,elfcorehdr" 23 - #define FDT_PROP_MEM_RANGE "linux,usable-memory-range" 24 - #define FDT_PROP_INITRD_START "linux,initrd-start" 25 - #define FDT_PROP_INITRD_END "linux,initrd-end" 26 - #define FDT_PROP_BOOTARGS "bootargs" 27 - #define FDT_PROP_KASLR_SEED "kaslr-seed" 28 - #define FDT_PROP_RNG_SEED "rng-seed" 29 21 #define RNG_SEED_SIZE 128 30 22 31 23 /* ··· 302 310 goto out; 303 311 } 304 312 305 - ret = fdt_delprop(fdt, chosen_node, FDT_PROP_KEXEC_ELFHDR); 313 + ret = fdt_delprop(fdt, chosen_node, "linux,elfcorehdr"); 306 314 if (ret && ret != -FDT_ERR_NOTFOUND) 307 315 goto out; 308 - ret = fdt_delprop(fdt, chosen_node, FDT_PROP_MEM_RANGE); 316 + ret = fdt_delprop(fdt, chosen_node, "linux,usable-memory-range"); 309 317 if (ret && ret != -FDT_ERR_NOTFOUND) 310 318 goto out; 311 319 ··· 339 347 340 348 /* add initrd-* */ 341 349 if (initrd_load_addr) { 342 - ret = fdt_setprop_u64(fdt, chosen_node, FDT_PROP_INITRD_START, 350 + ret = fdt_setprop_u64(fdt, chosen_node, "linux,initrd-start", 343 351 initrd_load_addr); 344 352 if (ret) 345 353 goto out; 346 354 347 - ret = fdt_setprop_u64(fdt, chosen_node, FDT_PROP_INITRD_END, 355 + ret = fdt_setprop_u64(fdt, chosen_node, "linux,initrd-end", 348 356 initrd_load_addr + initrd_len); 349 357 if (ret) 350 358 goto out; ··· 354 362 goto out; 355 363 356 364 } else { 357 - ret = fdt_delprop(fdt, chosen_node, FDT_PROP_INITRD_START); 365 + ret = fdt_delprop(fdt, chosen_node, "linux,initrd-start"); 358 366 if (ret && (ret != -FDT_ERR_NOTFOUND)) 359 367 goto out; 360 368 361 - ret = fdt_delprop(fdt, chosen_node, FDT_PROP_INITRD_END); 369 + ret = fdt_delprop(fdt, chosen_node, "linux,initrd-end"); 362 370 if (ret && (ret != -FDT_ERR_NOTFOUND)) 363 371 goto out; 364 372 } ··· 366 374 if (image->type == KEXEC_TYPE_CRASH) { 367 375 /* add linux,elfcorehdr */ 368 376 ret = fdt_appendprop_addrrange(fdt, 0, chosen_node, 369 - FDT_PROP_KEXEC_ELFHDR, 370 - image->elf_load_addr, 377 + "linux,elfcorehdr", image->elf_load_addr, 371 378 image->elf_headers_sz); 372 379 if (ret) 373 380 goto out; ··· 382 391 383 392 /* add linux,usable-memory-range */ 384 393 ret = fdt_appendprop_addrrange(fdt, 0, chosen_node, 385 - FDT_PROP_MEM_RANGE, 386 - crashk_res.start, 394 + "linux,usable-memory-range", crashk_res.start, 387 395 crashk_res.end - crashk_res.start + 1); 388 396 if (ret) 389 397 goto out; ··· 390 400 391 401 /* add bootargs */ 392 402 if (cmdline) { 393 - ret = fdt_setprop_string(fdt, chosen_node, FDT_PROP_BOOTARGS, cmdline); 403 + ret = fdt_setprop_string(fdt, chosen_node, "bootargs", cmdline); 394 404 if (ret) 395 405 goto out; 396 406 } else { 397 - ret = fdt_delprop(fdt, chosen_node, FDT_PROP_BOOTARGS); 407 + ret = fdt_delprop(fdt, chosen_node, "bootargs"); 398 408 if (ret && (ret != -FDT_ERR_NOTFOUND)) 399 409 goto out; 400 410 } 401 411 402 412 /* add kaslr-seed */ 403 - ret = fdt_delprop(fdt, chosen_node, FDT_PROP_KASLR_SEED); 413 + ret = fdt_delprop(fdt, chosen_node, "kaslr-seed"); 404 414 if (ret == -FDT_ERR_NOTFOUND) 405 415 ret = 0; 406 416 else if (ret) ··· 409 419 if (rng_is_initialized()) { 410 420 u64 seed = get_random_u64(); 411 421 412 - ret = fdt_setprop_u64(fdt, chosen_node, FDT_PROP_KASLR_SEED, seed); 422 + ret = fdt_setprop_u64(fdt, chosen_node, "kaslr-seed", seed); 413 423 if (ret) 414 424 goto out; 415 425 } else { 416 426 pr_notice("RNG is not initialised: omitting \"%s\" property\n", 417 - FDT_PROP_KASLR_SEED); 427 + "kaslr-seed"); 418 428 } 419 429 420 430 /* add rng-seed */ 421 431 if (rng_is_initialized()) { 422 432 void *rng_seed; 423 433 424 - ret = fdt_setprop_placeholder(fdt, chosen_node, FDT_PROP_RNG_SEED, 434 + ret = fdt_setprop_placeholder(fdt, chosen_node, "rng-seed", 425 435 RNG_SEED_SIZE, &rng_seed); 426 436 if (ret) 427 437 goto out; 428 438 get_random_bytes(rng_seed, RNG_SEED_SIZE); 429 439 } else { 430 440 pr_notice("RNG is not initialised: omitting \"%s\" property\n", 431 - FDT_PROP_RNG_SEED); 441 + "rng-seed"); 432 442 } 433 443 434 444 ret = fdt_setprop(fdt, chosen_node, "linux,booted-from-kexec", NULL, 0);
+1 -1
drivers/of/kobj.c
··· 119 119 struct property *pp; 120 120 int rc; 121 121 122 - if (!of_kset) 122 + if (!IS_ENABLED(CONFIG_SYSFS) || !of_kset) 123 123 return 0; 124 124 125 125 np->kobj.kset = of_kset;
+10
drivers/of/property.c
··· 1287 1287 DEFINE_SIMPLE_PROP(pinctrl7, "pinctrl-7", NULL) 1288 1288 DEFINE_SIMPLE_PROP(pinctrl8, "pinctrl-8", NULL) 1289 1289 DEFINE_SIMPLE_PROP(remote_endpoint, "remote-endpoint", NULL) 1290 + DEFINE_SIMPLE_PROP(pwms, "pwms", "#pwm-cells") 1291 + DEFINE_SIMPLE_PROP(resets, "resets", "#reset-cells") 1292 + DEFINE_SIMPLE_PROP(leds, "leds", NULL) 1293 + DEFINE_SIMPLE_PROP(backlight, "backlight", NULL) 1294 + DEFINE_SIMPLE_PROP(phy_handle, "phy-handle", NULL) 1290 1295 DEFINE_SUFFIX_PROP(regulators, "-supply", NULL) 1291 1296 DEFINE_SUFFIX_PROP(gpio, "-gpio", "#gpio-cells") 1292 1297 ··· 1376 1371 { .parse_prop = parse_pinctrl7, }, 1377 1372 { .parse_prop = parse_pinctrl8, }, 1378 1373 { .parse_prop = parse_remote_endpoint, .node_not_dev = true, }, 1374 + { .parse_prop = parse_pwms, }, 1375 + { .parse_prop = parse_resets, }, 1376 + { .parse_prop = parse_leds, }, 1377 + { .parse_prop = parse_backlight, }, 1378 + { .parse_prop = parse_phy_handle, }, 1379 1379 { .parse_prop = parse_gpio_compat, }, 1380 1380 { .parse_prop = parse_interrupts, }, 1381 1381 { .parse_prop = parse_regulators, },
-164
include/dt-bindings/clock/zx296718-clock.h
··· 1 - /* SPDX-License-Identifier: GPL-2.0-only */ 2 - /* 3 - * Copyright (C) 2015 - 2016 ZTE Corporation. 4 - */ 5 - #ifndef __DT_BINDINGS_CLOCK_ZX296718_H 6 - #define __DT_BINDINGS_CLOCK_ZX296718_H 7 - 8 - /* PLL */ 9 - #define ZX296718_PLL_CPU 1 10 - #define ZX296718_PLL_MAC 2 11 - #define ZX296718_PLL_MM0 3 12 - #define ZX296718_PLL_MM1 4 13 - #define ZX296718_PLL_VGA 5 14 - #define ZX296718_PLL_DDR 6 15 - #define ZX296718_PLL_AUDIO 7 16 - #define ZX296718_PLL_HSIC 8 17 - #define CPU_DBG_GATE 9 18 - #define A72_GATE 10 19 - #define CPU_PERI_GATE 11 20 - #define A53_GATE 12 21 - #define DDR1_GATE 13 22 - #define DDR0_GATE 14 23 - #define SD1_WCLK 15 24 - #define SD1_AHB 16 25 - #define SD0_WCLK 17 26 - #define SD0_AHB 18 27 - #define EMMC_WCLK 19 28 - #define EMMC_NAND_AXI 20 29 - #define NAND_WCLK 21 30 - #define EMMC_NAND_AHB 22 31 - #define LSP1_148M5 23 32 - #define LSP1_99M 24 33 - #define LSP1_24M 25 34 - #define LSP0_74M25 26 35 - #define LSP0_32K 27 36 - #define LSP0_148M5 28 37 - #define LSP0_99M 29 38 - #define LSP0_24M 30 39 - #define DEMUX_AXI 31 40 - #define DEMUX_APB 32 41 - #define DEMUX_148M5 33 42 - #define DEMUX_108M 34 43 - #define AUDIO_APB 35 44 - #define AUDIO_99M 36 45 - #define AUDIO_24M 37 46 - #define AUDIO_16M384 38 47 - #define AUDIO_32K 39 48 - #define WDT_WCLK 40 49 - #define TIMER_WCLK 41 50 - #define VDE_ACLK 42 51 - #define VCE_ACLK 43 52 - #define HDE_ACLK 44 53 - #define GPU_ACLK 45 54 - #define SAPPU_ACLK 46 55 - #define SAPPU_WCLK 47 56 - #define VOU_ACLK 48 57 - #define VOU_MAIN_WCLK 49 58 - #define VOU_AUX_WCLK 50 59 - #define VOU_PPU_WCLK 51 60 - #define MIPI_CFG_CLK 52 61 - #define VGA_I2C_WCLK 53 62 - #define MIPI_REF_CLK 54 63 - #define HDMI_OSC_CEC 55 64 - #define HDMI_OSC_CLK 56 65 - #define HDMI_XCLK 57 66 - #define VIU_M0_ACLK 58 67 - #define VIU_M1_ACLK 59 68 - #define VIU_WCLK 60 69 - #define VIU_JPEG_WCLK 61 70 - #define VIU_CFG_CLK 62 71 - #define TS_SYS_WCLK 63 72 - #define TS_SYS_108M 64 73 - #define USB20_HCLK 65 74 - #define USB20_PHY_CLK 66 75 - #define USB21_HCLK 67 76 - #define USB21_PHY_CLK 68 77 - #define GMAC_RMIICLK 69 78 - #define GMAC_PCLK 70 79 - #define GMAC_ACLK 71 80 - #define GMAC_RFCLK 72 81 - #define TEMPSENSOR_GATE 73 82 - 83 - #define TOP_NR_CLKS 74 84 - 85 - 86 - #define LSP0_TIMER3_PCLK 1 87 - #define LSP0_TIMER3_WCLK 2 88 - #define LSP0_TIMER4_PCLK 3 89 - #define LSP0_TIMER4_WCLK 4 90 - #define LSP0_TIMER5_PCLK 5 91 - #define LSP0_TIMER5_WCLK 6 92 - #define LSP0_UART3_PCLK 7 93 - #define LSP0_UART3_WCLK 8 94 - #define LSP0_UART1_PCLK 9 95 - #define LSP0_UART1_WCLK 10 96 - #define LSP0_UART2_PCLK 11 97 - #define LSP0_UART2_WCLK 12 98 - #define LSP0_SPIFC0_PCLK 13 99 - #define LSP0_SPIFC0_WCLK 14 100 - #define LSP0_I2C4_PCLK 15 101 - #define LSP0_I2C4_WCLK 16 102 - #define LSP0_I2C5_PCLK 17 103 - #define LSP0_I2C5_WCLK 18 104 - #define LSP0_SSP0_PCLK 19 105 - #define LSP0_SSP0_WCLK 20 106 - #define LSP0_SSP1_PCLK 21 107 - #define LSP0_SSP1_WCLK 22 108 - #define LSP0_USIM_PCLK 23 109 - #define LSP0_USIM_WCLK 24 110 - #define LSP0_GPIO_PCLK 25 111 - #define LSP0_GPIO_WCLK 26 112 - #define LSP0_I2C3_PCLK 27 113 - #define LSP0_I2C3_WCLK 28 114 - 115 - #define LSP0_NR_CLKS 29 116 - 117 - 118 - #define LSP1_UART4_PCLK 1 119 - #define LSP1_UART4_WCLK 2 120 - #define LSP1_UART5_PCLK 3 121 - #define LSP1_UART5_WCLK 4 122 - #define LSP1_PWM_PCLK 5 123 - #define LSP1_PWM_WCLK 6 124 - #define LSP1_I2C2_PCLK 7 125 - #define LSP1_I2C2_WCLK 8 126 - #define LSP1_SSP2_PCLK 9 127 - #define LSP1_SSP2_WCLK 10 128 - #define LSP1_SSP3_PCLK 11 129 - #define LSP1_SSP3_WCLK 12 130 - #define LSP1_SSP4_PCLK 13 131 - #define LSP1_SSP4_WCLK 14 132 - #define LSP1_USIM1_PCLK 15 133 - #define LSP1_USIM1_WCLK 16 134 - 135 - #define LSP1_NR_CLKS 17 136 - 137 - 138 - #define AUDIO_I2S0_WCLK 1 139 - #define AUDIO_I2S0_PCLK 2 140 - #define AUDIO_I2S1_WCLK 3 141 - #define AUDIO_I2S1_PCLK 4 142 - #define AUDIO_I2S2_WCLK 5 143 - #define AUDIO_I2S2_PCLK 6 144 - #define AUDIO_I2S3_WCLK 7 145 - #define AUDIO_I2S3_PCLK 8 146 - #define AUDIO_I2C0_WCLK 9 147 - #define AUDIO_I2C0_PCLK 10 148 - #define AUDIO_SPDIF0_WCLK 11 149 - #define AUDIO_SPDIF0_PCLK 12 150 - #define AUDIO_SPDIF1_WCLK 13 151 - #define AUDIO_SPDIF1_PCLK 14 152 - #define AUDIO_TIMER_WCLK 15 153 - #define AUDIO_TIMER_PCLK 16 154 - #define AUDIO_TDM_WCLK 17 155 - #define AUDIO_TDM_PCLK 18 156 - #define AUDIO_TS_PCLK 19 157 - #define I2S0_WCLK_MUX 20 158 - #define I2S1_WCLK_MUX 21 159 - #define I2S2_WCLK_MUX 22 160 - #define I2S3_WCLK_MUX 23 161 - 162 - #define AUDIO_NR_CLKS 24 163 - 164 - #endif
-24
include/dt-bindings/soc/zte,pm_domains.h
··· 1 - /* SPDX-License-Identifier: GPL-2.0-only */ 2 - /* 3 - * Copyright (C) 2017 Linaro Ltd. 4 - * 5 - * Author: Baoyou Xie <baoyou.xie@linaro.org> 6 - */ 7 - 8 - #ifndef _DT_BINDINGS_SOC_ZTE_PM_DOMAINS_H 9 - #define _DT_BINDINGS_SOC_ZTE_PM_DOMAINS_H 10 - 11 - #define DM_ZX296718_SAPPU 0 12 - #define DM_ZX296718_VDE 1 /* g1v6 */ 13 - #define DM_ZX296718_VCE 2 /* h1v6 */ 14 - #define DM_ZX296718_HDE 3 /* g2v2 */ 15 - #define DM_ZX296718_VIU 4 16 - #define DM_ZX296718_USB20 5 17 - #define DM_ZX296718_USB21 6 18 - #define DM_ZX296718_USB30 7 19 - #define DM_ZX296718_HSIC 8 20 - #define DM_ZX296718_GMAC 9 21 - #define DM_ZX296718_TS 10 22 - #define DM_ZX296718_VOU 11 23 - 24 - #endif /* _DT_BINDINGS_SOC_ZTE_PM_DOMAINS_H */
+2 -1
include/linux/crash_dump.h
··· 10 10 11 11 #include <linux/pgtable.h> /* for pgprot_t */ 12 12 13 - #ifdef CONFIG_CRASH_DUMP 13 + /* For IS_ENABLED(CONFIG_CRASH_DUMP) */ 14 14 #define ELFCORE_ADDR_MAX (-1ULL) 15 15 #define ELFCORE_ADDR_ERR (-2ULL) 16 16 17 17 extern unsigned long long elfcorehdr_addr; 18 18 extern unsigned long long elfcorehdr_size; 19 19 20 + #ifdef CONFIG_CRASH_DUMP 20 21 extern int elfcorehdr_alloc(unsigned long long *addr, unsigned long long *size); 21 22 extern void elfcorehdr_free(unsigned long long addr); 22 23 extern ssize_t elfcorehdr_read(char *buf, size_t count, u64 *ppos);
-3
include/linux/of_fdt.h
··· 67 67 extern void early_init_fdt_reserve_self(void); 68 68 extern void __init early_init_dt_scan_chosen_arch(unsigned long node); 69 69 extern void early_init_dt_add_memory_arch(u64 base, u64 size); 70 - extern int early_init_dt_mark_hotplug_memory_arch(u64 base, u64 size); 71 - extern int early_init_dt_reserve_memory_arch(phys_addr_t base, phys_addr_t size, 72 - bool no_map); 73 70 extern u64 dt_mem_next_cell(int s, const __be32 **cellp); 74 71 75 72 /* Early flat tree scan hooks */
+1 -2
scripts/Makefile.lib
··· 309 309 -Wno-alias_paths \ 310 310 -Wno-graph_child_address \ 311 311 -Wno-simple_bus_reg \ 312 - -Wno-unique_unit_address \ 313 - -Wno-pci_device_reg 312 + -Wno-unique_unit_address 314 313 endif 315 314 316 315 ifneq ($(findstring 2,$(KBUILD_EXTRA_WARN)),)