mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-09-01 06:39:05 +00:00

Convert ldb.txt to yaml format. Additional changes - fix clock-names order to match existed dts file. - remove lvds-panel and iomuxc-gpr node in examples. - fsl,imx6q-ldb fail back to fsl,imx53-ldb. - add fsl,panel property to match existed dts. Signed-off-by: Frank Li <Frank.Li@nxp.com> Link: https://lore.kernel.org/r/20250417145742.3568572-1-Frank.Li@nxp.com [robh: Use #/properties/port schema for port] Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
194 lines
4.9 KiB
YAML
194 lines
4.9 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/display/imx/fsl,imx6q-ldb.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Freescale LVDS Display Bridge (ldb)
|
|
|
|
description:
|
|
The LVDS Display Bridge device tree node contains up to two lvds-channel
|
|
nodes describing each of the two LVDS encoder channels of the bridge.
|
|
|
|
maintainers:
|
|
- Frank Li <Frank.Li@nxp.com>
|
|
|
|
properties:
|
|
compatible:
|
|
oneOf:
|
|
- enum:
|
|
- fsl,imx53-ldb
|
|
- items:
|
|
- enum:
|
|
- fsl,imx6q-ldb
|
|
- const: fsl,imx53-ldb
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
'#address-cells':
|
|
const: 1
|
|
|
|
'#size-cells':
|
|
const: 0
|
|
|
|
gpr:
|
|
$ref: /schemas/types.yaml#/definitions/phandle
|
|
description:
|
|
The phandle points to the iomuxc-gpr region containing the LVDS
|
|
control register.
|
|
|
|
clocks:
|
|
minItems: 6
|
|
maxItems: 8
|
|
|
|
clock-names:
|
|
oneOf:
|
|
- items:
|
|
- const: di0_pll
|
|
- const: di1_pll
|
|
- const: di0_sel
|
|
- const: di1_sel
|
|
- const: di0
|
|
- const: di1
|
|
- items:
|
|
- const: di0_pll
|
|
- const: di1_pll
|
|
- const: di0_sel
|
|
- const: di1_sel
|
|
- const: di2_sel
|
|
- const: di3_sel
|
|
- const: di0
|
|
- const: di1
|
|
|
|
fsl,dual-channel:
|
|
$ref: /schemas/types.yaml#/definitions/flag
|
|
description:
|
|
if it exists, only LVDS channel 0 should
|
|
be configured - one input will be distributed on both outputs in dual
|
|
channel mode
|
|
|
|
patternProperties:
|
|
'^lvds-channel@[0-1]$':
|
|
type: object
|
|
description:
|
|
Each LVDS Channel has to contain either an of graph link to a panel device node
|
|
or a display-timings node that describes the video timings for the connected
|
|
LVDS display as well as the fsl,data-mapping and fsl,data-width properties.
|
|
|
|
properties:
|
|
reg:
|
|
maxItems: 1
|
|
|
|
'#address-cells':
|
|
const: 1
|
|
|
|
'#size-cells':
|
|
const: 0
|
|
|
|
display-timings:
|
|
$ref: /schemas/display/panel/display-timings.yaml#
|
|
|
|
fsl,data-mapping:
|
|
enum:
|
|
- spwg
|
|
- jeida
|
|
|
|
fsl,data-width:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
description: should be <18> or <24>
|
|
enum:
|
|
- 18
|
|
- 24
|
|
|
|
fsl,panel:
|
|
$ref: /schemas/types.yaml#/definitions/phandle
|
|
description: phandle to lcd panel
|
|
|
|
patternProperties:
|
|
'^port@[0-4]$':
|
|
$ref: /schemas/graph.yaml#/properties/port
|
|
description:
|
|
On i.MX5, the internal two-input-multiplexer is used. Due to hardware
|
|
limitations, only one input port (port@[0,1]) can be used for each channel
|
|
(lvds-channel@[0,1], respectively).
|
|
On i.MX6, there should be four input ports (port@[0-3]) that correspond
|
|
to the four LVDS multiplexer inputs.
|
|
A single output port (port@2 on i.MX5, port@4 on i.MX6) must be connected
|
|
to a panel input port. Optionally, the output port can be left out if
|
|
display-timings are used instead.
|
|
|
|
additionalProperties: false
|
|
|
|
required:
|
|
- compatible
|
|
- gpr
|
|
- clocks
|
|
- clock-names
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/clock/imx5-clock.h>
|
|
|
|
ldb@53fa8008 {
|
|
compatible = "fsl,imx53-ldb";
|
|
reg = <0x53fa8008 0x4>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
gpr = <&gpr>;
|
|
clocks = <&clks IMX5_CLK_LDB_DI0_SEL>,
|
|
<&clks IMX5_CLK_LDB_DI1_SEL>,
|
|
<&clks IMX5_CLK_IPU_DI0_SEL>,
|
|
<&clks IMX5_CLK_IPU_DI1_SEL>,
|
|
<&clks IMX5_CLK_LDB_DI0_GATE>,
|
|
<&clks IMX5_CLK_LDB_DI1_GATE>;
|
|
clock-names = "di0_pll", "di1_pll",
|
|
"di0_sel", "di1_sel",
|
|
"di0", "di1";
|
|
|
|
/* Using an of-graph endpoint link to connect the panel */
|
|
lvds-channel@0 {
|
|
reg = <0>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
port@0 {
|
|
reg = <0>;
|
|
|
|
endpoint {
|
|
remote-endpoint = <&ipu_di0_lvds0>;
|
|
};
|
|
};
|
|
|
|
port@2 {
|
|
reg = <2>;
|
|
|
|
endpoint {
|
|
remote-endpoint = <&panel_in>;
|
|
};
|
|
};
|
|
};
|
|
|
|
/* Using display-timings and fsl,data-mapping/width instead */
|
|
lvds-channel@1 {
|
|
reg = <1>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
fsl,data-mapping = "spwg";
|
|
fsl,data-width = <24>;
|
|
|
|
display-timings {/* ... */
|
|
};
|
|
|
|
port@1 {
|
|
reg = <1>;
|
|
|
|
endpoint {
|
|
remote-endpoint = <&ipu_di1_lvds1>;
|
|
};
|
|
};
|
|
};
|
|
};
|