1*1db8125eSLiu Ying# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*1db8125eSLiu Ying%YAML 1.2 3*1db8125eSLiu Ying--- 4*1db8125eSLiu Ying$id: http://devicetree.org/schemas/display/bridge/fsl,imx8qxp-pixel-combiner.yaml# 5*1db8125eSLiu Ying$schema: http://devicetree.org/meta-schemas/core.yaml# 6*1db8125eSLiu Ying 7*1db8125eSLiu Yingtitle: Freescale i.MX8qm/qxp Pixel Combiner 8*1db8125eSLiu Ying 9*1db8125eSLiu Yingmaintainers: 10*1db8125eSLiu Ying - Liu Ying <victor.liu@nxp.com> 11*1db8125eSLiu Ying 12*1db8125eSLiu Yingdescription: | 13*1db8125eSLiu Ying The Freescale i.MX8qm/qxp Pixel Combiner takes two output streams from a 14*1db8125eSLiu Ying single display controller and manipulates the two streams to support a number 15*1db8125eSLiu Ying of modes(bypass, pixel combine, YUV444 to YUV422, split_RGB) configured as 16*1db8125eSLiu Ying either one screen, two screens, or virtual screens. The pixel combiner is 17*1db8125eSLiu Ying also responsible for generating some of the control signals for the pixel link 18*1db8125eSLiu Ying output channel. 19*1db8125eSLiu Ying 20*1db8125eSLiu Yingproperties: 21*1db8125eSLiu Ying compatible: 22*1db8125eSLiu Ying enum: 23*1db8125eSLiu Ying - fsl,imx8qm-pixel-combiner 24*1db8125eSLiu Ying - fsl,imx8qxp-pixel-combiner 25*1db8125eSLiu Ying 26*1db8125eSLiu Ying "#address-cells": 27*1db8125eSLiu Ying const: 1 28*1db8125eSLiu Ying 29*1db8125eSLiu Ying "#size-cells": 30*1db8125eSLiu Ying const: 0 31*1db8125eSLiu Ying 32*1db8125eSLiu Ying reg: 33*1db8125eSLiu Ying maxItems: 1 34*1db8125eSLiu Ying 35*1db8125eSLiu Ying clocks: 36*1db8125eSLiu Ying maxItems: 1 37*1db8125eSLiu Ying 38*1db8125eSLiu Ying clock-names: 39*1db8125eSLiu Ying const: apb 40*1db8125eSLiu Ying 41*1db8125eSLiu Ying power-domains: 42*1db8125eSLiu Ying maxItems: 1 43*1db8125eSLiu Ying 44*1db8125eSLiu YingpatternProperties: 45*1db8125eSLiu Ying "^channel@[0-1]$": 46*1db8125eSLiu Ying type: object 47*1db8125eSLiu Ying description: Represents a display stream of pixel combiner. 48*1db8125eSLiu Ying 49*1db8125eSLiu Ying properties: 50*1db8125eSLiu Ying "#address-cells": 51*1db8125eSLiu Ying const: 1 52*1db8125eSLiu Ying 53*1db8125eSLiu Ying "#size-cells": 54*1db8125eSLiu Ying const: 0 55*1db8125eSLiu Ying 56*1db8125eSLiu Ying reg: 57*1db8125eSLiu Ying description: The display stream index. 58*1db8125eSLiu Ying enum: [ 0, 1 ] 59*1db8125eSLiu Ying 60*1db8125eSLiu Ying port@0: 61*1db8125eSLiu Ying $ref: /schemas/graph.yaml#/properties/port 62*1db8125eSLiu Ying description: Input endpoint of the display stream. 63*1db8125eSLiu Ying 64*1db8125eSLiu Ying port@1: 65*1db8125eSLiu Ying $ref: /schemas/graph.yaml#/properties/port 66*1db8125eSLiu Ying description: Output endpoint of the display stream. 67*1db8125eSLiu Ying 68*1db8125eSLiu Ying required: 69*1db8125eSLiu Ying - "#address-cells" 70*1db8125eSLiu Ying - "#size-cells" 71*1db8125eSLiu Ying - reg 72*1db8125eSLiu Ying - port@0 73*1db8125eSLiu Ying - port@1 74*1db8125eSLiu Ying 75*1db8125eSLiu Ying additionalProperties: false 76*1db8125eSLiu Ying 77*1db8125eSLiu Yingrequired: 78*1db8125eSLiu Ying - compatible 79*1db8125eSLiu Ying - "#address-cells" 80*1db8125eSLiu Ying - "#size-cells" 81*1db8125eSLiu Ying - reg 82*1db8125eSLiu Ying - clocks 83*1db8125eSLiu Ying - clock-names 84*1db8125eSLiu Ying - power-domains 85*1db8125eSLiu Ying 86*1db8125eSLiu YingadditionalProperties: false 87*1db8125eSLiu Ying 88*1db8125eSLiu Yingexamples: 89*1db8125eSLiu Ying - | 90*1db8125eSLiu Ying #include <dt-bindings/clock/imx8-lpcg.h> 91*1db8125eSLiu Ying #include <dt-bindings/firmware/imx/rsrc.h> 92*1db8125eSLiu Ying pixel-combiner@56020000 { 93*1db8125eSLiu Ying compatible = "fsl,imx8qxp-pixel-combiner"; 94*1db8125eSLiu Ying #address-cells = <1>; 95*1db8125eSLiu Ying #size-cells = <0>; 96*1db8125eSLiu Ying reg = <0x56020000 0x10000>; 97*1db8125eSLiu Ying clocks = <&dc0_pixel_combiner_lpcg IMX_LPCG_CLK_4>; 98*1db8125eSLiu Ying clock-names = "apb"; 99*1db8125eSLiu Ying power-domains = <&pd IMX_SC_R_DC_0>; 100*1db8125eSLiu Ying 101*1db8125eSLiu Ying channel@0 { 102*1db8125eSLiu Ying #address-cells = <1>; 103*1db8125eSLiu Ying #size-cells = <0>; 104*1db8125eSLiu Ying reg = <0>; 105*1db8125eSLiu Ying 106*1db8125eSLiu Ying port@0 { 107*1db8125eSLiu Ying reg = <0>; 108*1db8125eSLiu Ying 109*1db8125eSLiu Ying dc0_pixel_combiner_ch0_dc0_dpu_disp0: endpoint { 110*1db8125eSLiu Ying remote-endpoint = <&dc0_dpu_disp0_dc0_pixel_combiner_ch0>; 111*1db8125eSLiu Ying }; 112*1db8125eSLiu Ying }; 113*1db8125eSLiu Ying 114*1db8125eSLiu Ying port@1 { 115*1db8125eSLiu Ying reg = <1>; 116*1db8125eSLiu Ying 117*1db8125eSLiu Ying dc0_pixel_combiner_ch0_dc0_pixel_link0: endpoint { 118*1db8125eSLiu Ying remote-endpoint = <&dc0_pixel_link0_dc0_pixel_combiner_ch0>; 119*1db8125eSLiu Ying }; 120*1db8125eSLiu Ying }; 121*1db8125eSLiu Ying }; 122*1db8125eSLiu Ying 123*1db8125eSLiu Ying channel@1 { 124*1db8125eSLiu Ying #address-cells = <1>; 125*1db8125eSLiu Ying #size-cells = <0>; 126*1db8125eSLiu Ying reg = <1>; 127*1db8125eSLiu Ying 128*1db8125eSLiu Ying port@0 { 129*1db8125eSLiu Ying reg = <0>; 130*1db8125eSLiu Ying 131*1db8125eSLiu Ying dc0_pixel_combiner_ch1_dc0_dpu_disp1: endpoint { 132*1db8125eSLiu Ying remote-endpoint = <&dc0_dpu_disp1_dc0_pixel_combiner_ch1>; 133*1db8125eSLiu Ying }; 134*1db8125eSLiu Ying }; 135*1db8125eSLiu Ying 136*1db8125eSLiu Ying port@1 { 137*1db8125eSLiu Ying reg = <1>; 138*1db8125eSLiu Ying 139*1db8125eSLiu Ying dc0_pixel_combiner_ch1_dc0_pixel_link1: endpoint { 140*1db8125eSLiu Ying remote-endpoint = <&dc0_pixel_link1_dc0_pixel_combiner_ch1>; 141*1db8125eSLiu Ying }; 142*1db8125eSLiu Ying }; 143*1db8125eSLiu Ying }; 144*1db8125eSLiu Ying }; 145