mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-09-01 15:14:52 +00:00

All IMG Rogue GPUs include a reset line that participates in the power-up sequence. On some SoCs (e.g., T-Head TH1520 and Banana Pi BPI-F3), this reset line is exposed and must be driven explicitly to ensure proper initialization. To support this, add a 'resets' property to the GPU device tree bindings. Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Signed-off-by: Michal Wilczynski <m.wilczynski@samsung.com> Reviewed-by: Matt Coster <matt.coster@imgtec.com> Link: https://lore.kernel.org/r/20250418-apr_18_reset_img-v6-1-85a06757b698@samsung.com Signed-off-by: Matt Coster <matt.coster@imgtec.com>
144 lines
3.0 KiB
YAML
144 lines
3.0 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
# Copyright (c) 2023 Imagination Technologies Ltd.
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/gpu/img,powervr-rogue.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Imagination Technologies PowerVR and IMG Rogue GPUs
|
|
|
|
maintainers:
|
|
- Frank Binns <frank.binns@imgtec.com>
|
|
|
|
properties:
|
|
compatible:
|
|
oneOf:
|
|
- items:
|
|
- enum:
|
|
- ti,am62-gpu
|
|
- const: img,img-axe-1-16m
|
|
# This deprecated element must be kept around to allow old kernels to
|
|
# work with newer dts.
|
|
- const: img,img-axe
|
|
- const: img,img-rogue
|
|
- items:
|
|
- enum:
|
|
- ti,j721s2-gpu
|
|
- const: img,img-bxs-4-64
|
|
- const: img,img-rogue
|
|
|
|
# This legacy combination of compatible strings was introduced early on
|
|
# before the more specific GPU identifiers were used.
|
|
- items:
|
|
- enum:
|
|
- ti,am62-gpu
|
|
- const: img,img-axe
|
|
deprecated: true
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
clocks:
|
|
minItems: 1
|
|
maxItems: 3
|
|
|
|
clock-names:
|
|
items:
|
|
- const: core
|
|
- const: mem
|
|
- const: sys
|
|
minItems: 1
|
|
|
|
interrupts:
|
|
maxItems: 1
|
|
|
|
power-domains:
|
|
minItems: 1
|
|
maxItems: 2
|
|
|
|
power-domain-names:
|
|
items:
|
|
- const: a
|
|
- const: b
|
|
minItems: 1
|
|
|
|
dma-coherent: true
|
|
|
|
resets:
|
|
maxItems: 1
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- clocks
|
|
- clock-names
|
|
- interrupts
|
|
|
|
additionalProperties: false
|
|
|
|
allOf:
|
|
# Constraints added alongside the new compatible strings that would otherwise
|
|
# create an ABI break.
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
const: img,img-rogue
|
|
then:
|
|
required:
|
|
- power-domains
|
|
- power-domain-names
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
const: img,img-axe-1-16m
|
|
then:
|
|
properties:
|
|
power-domains:
|
|
maxItems: 1
|
|
power-domain-names:
|
|
maxItems: 1
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
const: img,img-bxs-4-64
|
|
then:
|
|
properties:
|
|
power-domains:
|
|
minItems: 2
|
|
power-domain-names:
|
|
minItems: 2
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- ti,am62-gpu
|
|
- ti,j721s2-gpu
|
|
then:
|
|
properties:
|
|
clocks:
|
|
maxItems: 1
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/interrupt-controller/irq.h>
|
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
#include <dt-bindings/soc/ti,sci_pm_domain.h>
|
|
|
|
gpu@fd00000 {
|
|
compatible = "ti,am62-gpu", "img,img-axe-1-16m", "img,img-axe",
|
|
"img,img-rogue";
|
|
reg = <0x0fd00000 0x20000>;
|
|
clocks = <&k3_clks 187 0>;
|
|
clock-names = "core";
|
|
interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
|
|
power-domains = <&k3_pds 187 TI_SCI_PD_EXCLUSIVE>;
|
|
power-domain-names = "a";
|
|
};
|