120 lines
3.0 KiB
YAML
120 lines
3.0 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/display/st,stm32mp25-lvds.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: STMicroelectronics STM32 LVDS Display Interface Transmitter
|
|
|
|
maintainers:
|
|
- Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
|
|
- Yannick Fertre <yannick.fertre@foss.st.com>
|
|
|
|
description: |
|
|
The STMicroelectronics STM32 LVDS Display Interface Transmitter handles the
|
|
LVDS protocol: it maps the pixels received from the upstream Pixel-DMA (LTDC)
|
|
onto the LVDS PHY.
|
|
|
|
It is composed of three sub blocks:
|
|
- LVDS host: handles the LVDS protocol (FPD / OpenLDI) and maps its input
|
|
pixels onto the data lanes of the PHY
|
|
- LVDS PHY: parallelize the data and drives the LVDS data lanes
|
|
- LVDS wrapper: handles top-level settings
|
|
|
|
The LVDS controller driver supports the following high-level features:
|
|
- FDP-Link-I and OpenLDI (v0.95) protocols
|
|
- Single-Link or Dual-Link operation
|
|
- Single-Display or Double-Display (with the same content duplicated on both)
|
|
- Flexible Bit-Mapping, including JEIDA and VESA
|
|
- RGB888 or RGB666 output
|
|
- Synchronous design, with one input pixel per clock cycle
|
|
|
|
properties:
|
|
compatible:
|
|
const: st,stm32mp25-lvds
|
|
|
|
"#clock-cells":
|
|
const: 0
|
|
description:
|
|
Provides the internal LVDS PHY clock to the framework.
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
clocks:
|
|
items:
|
|
- description: APB peripheral clock
|
|
- description: Reference clock for the internal PLL
|
|
|
|
clock-names:
|
|
items:
|
|
- const: pclk
|
|
- const: ref
|
|
|
|
resets:
|
|
maxItems: 1
|
|
|
|
ports:
|
|
$ref: /schemas/graph.yaml#/properties/ports
|
|
|
|
properties:
|
|
port@0:
|
|
$ref: /schemas/graph.yaml#/properties/port
|
|
description:
|
|
LVDS input port node, connected to the LTDC RGB output port.
|
|
|
|
port@1:
|
|
$ref: /schemas/graph.yaml#/properties/port
|
|
description:
|
|
LVDS output port node, connected to a panel or bridge input port.
|
|
|
|
required:
|
|
- port@0
|
|
- port@1
|
|
|
|
required:
|
|
- compatible
|
|
- "#clock-cells"
|
|
- reg
|
|
- clocks
|
|
- clock-names
|
|
- resets
|
|
- ports
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/clock/st,stm32mp25-rcc.h>
|
|
#include <dt-bindings/reset/st,stm32mp25-rcc.h>
|
|
|
|
lvds: lvds@48060000 {
|
|
compatible = "st,stm32mp25-lvds";
|
|
reg = <0x48060000 0x2000>;
|
|
#clock-cells = <0>;
|
|
clocks = <&rcc CK_BUS_LVDS>, <&rcc CK_KER_LVDSPHY>;
|
|
clock-names = "pclk", "ref";
|
|
resets = <&rcc LVDS_R>;
|
|
|
|
ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
port@0 {
|
|
reg = <0>;
|
|
lvds_in: endpoint {
|
|
remote-endpoint = <<dc_ep1_out>;
|
|
};
|
|
};
|
|
|
|
port@1 {
|
|
reg = <1>;
|
|
lvds_out0: endpoint {
|
|
remote-endpoint = <&lvds_panel_in>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
...
|