mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-18 22:14:16 +00:00

In order to enforce per-SoC register rules, add per-compatible restrictions. For example, V3D 3.3 (used in brcm,7268-v3d) has a cache controller (GCA), which is not present in other V3D generations. Declaring these differences helps ensure the DTB accurately reflect the hardware design. The example was using an incorrect order for the register names. This commit corrects that by enforcing the order established in the register items description. Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Signed-off-by: Maíra Canal <mcanal@igalia.com> Link: https://patchwork.freedesktop.org/patch/msgid/20250317-v3d-gpu-reset-fixes-v6-2-f3ee7717ed17@igalia.com
136 lines
2.7 KiB
YAML
136 lines
2.7 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/gpu/brcm,bcm-v3d.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Broadcom V3D GPU
|
|
|
|
maintainers:
|
|
- Eric Anholt <eric@anholt.net>
|
|
- Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
|
|
|
|
properties:
|
|
$nodename:
|
|
pattern: '^gpu@[a-f0-9]+$'
|
|
|
|
compatible:
|
|
enum:
|
|
- brcm,2711-v3d
|
|
- brcm,2712-v3d
|
|
- brcm,7268-v3d
|
|
- brcm,7278-v3d
|
|
|
|
reg:
|
|
minItems: 2
|
|
maxItems: 4
|
|
|
|
reg-names:
|
|
minItems: 2
|
|
maxItems: 4
|
|
|
|
interrupts:
|
|
items:
|
|
- description: hub interrupt (required)
|
|
- description: core interrupts (if it doesn't share the hub's interrupt)
|
|
minItems: 1
|
|
|
|
clocks:
|
|
maxItems: 1
|
|
|
|
resets:
|
|
maxItems: 1
|
|
|
|
power-domains:
|
|
maxItems: 1
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- reg-names
|
|
- interrupts
|
|
|
|
allOf:
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
const: brcm,2711-v3d
|
|
then:
|
|
properties:
|
|
reg:
|
|
items:
|
|
- description: hub register
|
|
- description: core0 register
|
|
reg-names:
|
|
items:
|
|
- const: hub
|
|
- const: core0
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
const: brcm,2712-v3d
|
|
then:
|
|
properties:
|
|
reg:
|
|
items:
|
|
- description: hub register
|
|
- description: core0 register
|
|
reg-names:
|
|
items:
|
|
- const: hub
|
|
- const: core0
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
const: brcm,7268-v3d
|
|
then:
|
|
properties:
|
|
reg:
|
|
items:
|
|
- description: hub register
|
|
- description: core0 register
|
|
- description: GCA cache controller register
|
|
- description: bridge register
|
|
reg-names:
|
|
items:
|
|
- const: hub
|
|
- const: core0
|
|
- const: gca
|
|
- const: bridge
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
const: brcm,7278-v3d
|
|
then:
|
|
properties:
|
|
reg:
|
|
items:
|
|
- description: hub register
|
|
- description: core0 register
|
|
- description: bridge register
|
|
reg-names:
|
|
items:
|
|
- const: hub
|
|
- const: core0
|
|
- const: bridge
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
gpu@f1200000 {
|
|
compatible = "brcm,7268-v3d";
|
|
reg = <0xf1200000 0x4000>,
|
|
<0xf1208000 0x4000>,
|
|
<0xf1204100 0x100>,
|
|
<0xf1204000 0x100>;
|
|
reg-names = "hub", "core0", "gca", "bridge";
|
|
interrupts = <0 78 4>,
|
|
<0 77 4>;
|
|
};
|
|
|
|
...
|