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