1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2# Copyright 2019 Analogix Semiconductor, Inc.
3%YAML 1.2
4---
5$id: http://devicetree.org/schemas/display/bridge/analogix,anx7625.yaml#
6$schema: http://devicetree.org/meta-schemas/core.yaml#
7
8title: Analogix ANX7625 SlimPort (4K Mobile HD Transmitter)
9
10maintainers:
11  - Xin Ji <xji@analogixsemi.com>
12
13description: |
14  The ANX7625 is an ultra-low power 4K Mobile HD Transmitter
15  designed for portable devices.
16
17properties:
18  compatible:
19    const: analogix,anx7625
20
21  reg:
22    maxItems: 1
23
24  interrupts:
25    description: used for interrupt pin B8.
26    maxItems: 1
27
28  enable-gpios:
29    description: used for power on chip control, POWER_EN pin D2.
30    maxItems: 1
31
32  reset-gpios:
33    description: used for reset chip control, RESET_N pin B7.
34    maxItems: 1
35
36  vdd10-supply:
37    description: Regulator that provides the supply 1.0V power.
38
39  vdd18-supply:
40    description: Regulator that provides the supply 1.8V power.
41
42  vdd33-supply:
43    description: Regulator that provides the supply 3.3V power.
44
45  analogix,lane0-swing:
46    $ref: /schemas/types.yaml#/definitions/uint8-array
47    minItems: 1
48    maxItems: 20
49    description:
50      an array of swing register setting for DP tx lane0 PHY.
51      Registers 0~9 are Swing0_Pre0, Swing1_Pre0, Swing2_Pre0,
52      Swing3_Pre0, Swing0_Pre1, Swing1_Pre1, Swing2_Pre1, Swing0_Pre2,
53      Swing1_Pre2, Swing0_Pre3, they are for [Boost control] and
54      [Swing control] setting.
55      Registers 0~9, bit 3:0 is [Boost control], these bits control
56      post cursor manual, increase the [Boost control] to increase
57      Pre-emphasis value.
58      Registers 0~9, bit 6:4 is [Swing control], these bits control
59      swing manual, increase [Swing control] setting to add Vp-p value
60      for each Swing, Pre.
61      Registers 10~19 are Swing0_Pre0, Swing1_Pre0, Swing2_Pre0,
62      Swing3_Pre0, Swing0_Pre1, Swing1_Pre1, Swing2_Pre1, Swing0_Pre2,
63      Swing1_Pre2, Swing0_Pre3, they are for [R select control] and
64      [R Termination control] setting.
65      Registers 10~19, bit 4:0 is [R select control], these bits are
66      compensation manual, increase it can enhance IO driven strength
67      and Vp-p.
68      Registers 10~19, bit 5:6 is [R termination control], these bits
69      adjust 50ohm impedance of DP tx termination. 00:55 ohm,
70      01:50 ohm(default), 10:45 ohm, 11:40 ohm.
71
72  analogix,lane1-swing:
73    $ref: /schemas/types.yaml#/definitions/uint8-array
74    minItems: 1
75    maxItems: 20
76    description:
77      an array of swing register setting for DP tx lane1 PHY.
78      DP TX lane1 swing register setting same with lane0
79      swing, please refer lane0-swing property description.
80
81  analogix,audio-enable:
82    type: boolean
83    description: let the driver enable audio HDMI codec function or not.
84
85  aux-bus:
86    $ref: /schemas/display/dp-aux-bus.yaml#
87
88  ports:
89    $ref: /schemas/graph.yaml#/properties/ports
90
91    properties:
92      port@0:
93        $ref: /schemas/graph.yaml#/$defs/port-base
94        unevaluatedProperties: false
95        description:
96          MIPI DSI/DPI input.
97
98        properties:
99          endpoint:
100            $ref: /schemas/media/video-interfaces.yaml#
101            type: object
102            additionalProperties: false
103
104            properties:
105              remote-endpoint: true
106
107              bus-type:
108                enum: [7]
109                default: 1
110
111              data-lanes: true
112
113      port@1:
114        $ref: /schemas/graph.yaml#/properties/port
115        description:
116          Video port for panel or connector.
117
118    required:
119      - port@0
120      - port@1
121
122required:
123  - compatible
124  - reg
125  - vdd10-supply
126  - vdd18-supply
127  - vdd33-supply
128  - ports
129
130additionalProperties: false
131
132examples:
133  - |
134    #include <dt-bindings/gpio/gpio.h>
135
136    i2c {
137        #address-cells = <1>;
138        #size-cells = <0>;
139
140        encoder@58 {
141            compatible = "analogix,anx7625";
142            reg = <0x58>;
143            enable-gpios = <&pio 45 GPIO_ACTIVE_HIGH>;
144            reset-gpios = <&pio 73 GPIO_ACTIVE_HIGH>;
145            vdd10-supply = <&pp1000_mipibrdg>;
146            vdd18-supply = <&pp1800_mipibrdg>;
147            vdd33-supply = <&pp3300_mipibrdg>;
148            analogix,audio-enable;
149            analogix,lane0-swing = /bits/ 8 <0x14 0x54 0x64 0x74>;
150            analogix,lane1-swing = /bits/ 8 <0x14 0x54 0x64 0x74>;
151
152            ports {
153                #address-cells = <1>;
154                #size-cells = <0>;
155
156                mipi2dp_bridge_in: port@0 {
157                    reg = <0>;
158                    anx7625_in: endpoint {
159                        remote-endpoint = <&mipi_dsi>;
160                        bus-type = <7>;
161                        data-lanes = <0 1 2 3>;
162                    };
163                };
164
165                mipi2dp_bridge_out: port@1 {
166                    reg = <1>;
167                    anx7625_out: endpoint {
168                        remote-endpoint = <&panel_in>;
169                    };
170                };
171            };
172
173            aux-bus {
174                panel {
175                    compatible = "innolux,n125hce-gn1";
176                    power-supply = <&pp3300_disp_x>;
177                    backlight = <&backlight_lcd0>;
178
179                    port {
180                        panel_in: endpoint {
181                            remote-endpoint = <&anx7625_out>;
182                        };
183                    };
184                };
185            };
186        };
187    };
188