mirror of
https://github.com/torvalds/linux.git
synced 2026-04-22 08:44:02 -04:00
Current port description doesn't cover all possible cases. It currently
expects one single port with two endpoints.
When the HDMI connector is described in the device tree there can be two
ports, first one going to the VOP and the second one going to the connector.
Also on SoCs which only have a single VOP there will be only one
endpoint instead of two.
This patch addresses both issues. With this there can either be a single
port ("port") , or two of them ("port@0", "port@1") when the connector
is also in the device tree. Also the first or only port can either have
one endpoint ("endpoint") for single VOP SoCs or two ("endpoint@0",
"endpoint@1") for dual VOP SoCs.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Reviewed-by: Rob Herring <robh@kernel.org>
Tested-by: Michael Riesch <michael.riesch@wolfvision.net>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20220422072841.2206452-25-s.hauer@pengutronix.de
167 lines
4.2 KiB
YAML
167 lines
4.2 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/display/rockchip/rockchip,dw-hdmi.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Rockchip DWC HDMI TX Encoder
|
|
|
|
maintainers:
|
|
- Mark Yao <markyao0591@gmail.com>
|
|
|
|
description: |
|
|
The HDMI transmitter is a Synopsys DesignWare HDMI 1.4 TX controller IP
|
|
with a companion PHY IP.
|
|
|
|
allOf:
|
|
- $ref: ../bridge/synopsys,dw-hdmi.yaml#
|
|
|
|
properties:
|
|
compatible:
|
|
enum:
|
|
- rockchip,rk3228-dw-hdmi
|
|
- rockchip,rk3288-dw-hdmi
|
|
- rockchip,rk3328-dw-hdmi
|
|
- rockchip,rk3399-dw-hdmi
|
|
- rockchip,rk3568-dw-hdmi
|
|
|
|
reg-io-width:
|
|
const: 4
|
|
|
|
avdd-0v9-supply:
|
|
description:
|
|
A 0.9V supply that powers up the SoC internal circuitry. The actual pin name
|
|
varies between the different SoCs and is usually HDMI_TX_AVDD_0V9 or sometimes
|
|
HDMI_AVDD_1V0.
|
|
|
|
avdd-1v8-supply:
|
|
description:
|
|
A 1.8V supply that powers up the SoC internal circuitry. The pin name on the
|
|
SoC usually is HDMI_TX_AVDD_1V8.
|
|
|
|
clocks:
|
|
minItems: 2
|
|
items:
|
|
- {}
|
|
- {}
|
|
# The next three clocks are all optional, but shall be specified in this
|
|
# order when present.
|
|
- description: The HDMI CEC controller main clock
|
|
- description: Power for GRF IO
|
|
- description: External clock for some HDMI PHY (old clock name, deprecated)
|
|
- description: External clock for some HDMI PHY (new name)
|
|
|
|
clock-names:
|
|
minItems: 2
|
|
items:
|
|
- {}
|
|
- {}
|
|
- enum:
|
|
- cec
|
|
- grf
|
|
- vpll
|
|
- ref
|
|
- enum:
|
|
- grf
|
|
- vpll
|
|
- ref
|
|
- enum:
|
|
- vpll
|
|
- ref
|
|
|
|
ddc-i2c-bus:
|
|
$ref: /schemas/types.yaml#/definitions/phandle
|
|
description:
|
|
The HDMI DDC bus can be connected to either a system I2C master or the
|
|
functionally-reduced I2C master contained in the DWC HDMI. When connected
|
|
to a system I2C master this property contains a phandle to that I2C
|
|
master controller.
|
|
|
|
phys:
|
|
maxItems: 1
|
|
description: The HDMI PHY
|
|
|
|
phy-names:
|
|
const: hdmi
|
|
|
|
pinctrl-names:
|
|
description:
|
|
The unwedge pinctrl entry shall drive the DDC SDA line low. This is
|
|
intended to work around a hardware errata that can cause the DDC I2C
|
|
bus to be wedged.
|
|
minItems: 1
|
|
items:
|
|
- const: default
|
|
- const: unwedge
|
|
|
|
ports:
|
|
$ref: /schemas/graph.yaml#/properties/ports
|
|
|
|
patternProperties:
|
|
"^port(@0)?$":
|
|
$ref: /schemas/graph.yaml#/properties/port
|
|
description: Input of the DWC HDMI TX
|
|
properties:
|
|
endpoint:
|
|
description: Connection to the VOP
|
|
endpoint@0:
|
|
description: Connection to the VOPB
|
|
endpoint@1:
|
|
description: Connection to the VOPL
|
|
properties:
|
|
port@1:
|
|
$ref: /schemas/graph.yaml#/properties/port
|
|
description: Output of the DWC HDMI TX
|
|
|
|
rockchip,grf:
|
|
$ref: /schemas/types.yaml#/definitions/phandle
|
|
description:
|
|
phandle to the GRF to mux vopl/vopb.
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- reg-io-width
|
|
- clocks
|
|
- clock-names
|
|
- interrupts
|
|
- ports
|
|
- rockchip,grf
|
|
|
|
unevaluatedProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/clock/rk3288-cru.h>
|
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
#include <dt-bindings/interrupt-controller/irq.h>
|
|
|
|
hdmi: hdmi@ff980000 {
|
|
compatible = "rockchip,rk3288-dw-hdmi";
|
|
reg = <0xff980000 0x20000>;
|
|
reg-io-width = <4>;
|
|
ddc-i2c-bus = <&i2c5>;
|
|
rockchip,grf = <&grf>;
|
|
interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
|
|
clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>;
|
|
clock-names = "iahb", "isfr";
|
|
|
|
ports {
|
|
port {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
hdmi_in_vopb: endpoint@0 {
|
|
reg = <0>;
|
|
remote-endpoint = <&vopb_out_hdmi>;
|
|
};
|
|
hdmi_in_vopl: endpoint@1 {
|
|
reg = <1>;
|
|
remote-endpoint = <&vopl_out_hdmi>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
...
|