xref: /openbmc/linux/Documentation/devicetree/bindings/display/allwinner,sun6i-a31-drc.yaml (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
1f5a98bfeSMaxime Ripard# SPDX-License-Identifier: GPL-2.0
2f5a98bfeSMaxime Ripard%YAML 1.2
3f5a98bfeSMaxime Ripard---
4f5a98bfeSMaxime Ripard$id: http://devicetree.org/schemas/display/allwinner,sun6i-a31-drc.yaml#
5f5a98bfeSMaxime Ripard$schema: http://devicetree.org/meta-schemas/core.yaml#
6f5a98bfeSMaxime Ripard
7*dd3cb467SAndrew Lunntitle: Allwinner A31 Dynamic Range Controller
8f5a98bfeSMaxime Ripard
9f5a98bfeSMaxime Ripardmaintainers:
10f5a98bfeSMaxime Ripard  - Chen-Yu Tsai <wens@csie.org>
11f5a98bfeSMaxime Ripard  - Maxime Ripard <mripard@kernel.org>
12f5a98bfeSMaxime Ripard
13f5a98bfeSMaxime Riparddescription: |
14f5a98bfeSMaxime Ripard  The DRC (Dynamic Range Controller) allows to dynamically adjust
15f5a98bfeSMaxime Ripard  pixel brightness/contrast based on histogram measurements for LCD
16f5a98bfeSMaxime Ripard  content adaptive backlight control.
17f5a98bfeSMaxime Ripard
18f5a98bfeSMaxime Ripardproperties:
19f5a98bfeSMaxime Ripard  compatible:
20f5a98bfeSMaxime Ripard    enum:
21f5a98bfeSMaxime Ripard      - allwinner,sun6i-a31-drc
22f5a98bfeSMaxime Ripard      - allwinner,sun6i-a31s-drc
23f5a98bfeSMaxime Ripard      - allwinner,sun8i-a23-drc
24f5a98bfeSMaxime Ripard      - allwinner,sun8i-a33-drc
25f5a98bfeSMaxime Ripard      - allwinner,sun9i-a80-drc
26f5a98bfeSMaxime Ripard
27f5a98bfeSMaxime Ripard  reg:
28f5a98bfeSMaxime Ripard    maxItems: 1
29f5a98bfeSMaxime Ripard
30f5a98bfeSMaxime Ripard  interrupts:
31f5a98bfeSMaxime Ripard    maxItems: 1
32f5a98bfeSMaxime Ripard
33f5a98bfeSMaxime Ripard  clocks:
34f5a98bfeSMaxime Ripard    items:
35f5a98bfeSMaxime Ripard      - description: The DRC interface clock
36f5a98bfeSMaxime Ripard      - description: The DRC module clock
37f5a98bfeSMaxime Ripard      - description: The DRC DRAM clock
38f5a98bfeSMaxime Ripard
39f5a98bfeSMaxime Ripard  clock-names:
40f5a98bfeSMaxime Ripard    items:
41f5a98bfeSMaxime Ripard      - const: ahb
42f5a98bfeSMaxime Ripard      - const: mod
43f5a98bfeSMaxime Ripard      - const: ram
44f5a98bfeSMaxime Ripard
45f5a98bfeSMaxime Ripard  resets:
46f5a98bfeSMaxime Ripard    maxItems: 1
47f5a98bfeSMaxime Ripard
48f5a98bfeSMaxime Ripard  ports:
49b6755423SRob Herring    $ref: /schemas/graph.yaml#/properties/ports
50f5a98bfeSMaxime Ripard
51f5a98bfeSMaxime Ripard    properties:
52f5a98bfeSMaxime Ripard      port@0:
53b6755423SRob Herring        $ref: /schemas/graph.yaml#/properties/port
54f5a98bfeSMaxime Ripard        description: |
55f5a98bfeSMaxime Ripard          Input endpoints of the controller.
56f5a98bfeSMaxime Ripard
57f5a98bfeSMaxime Ripard      port@1:
58b6755423SRob Herring        $ref: /schemas/graph.yaml#/properties/port
59f5a98bfeSMaxime Ripard        description: |
60f5a98bfeSMaxime Ripard          Output endpoints of the controller.
61f5a98bfeSMaxime Ripard
62f5a98bfeSMaxime Ripard    required:
63f5a98bfeSMaxime Ripard      - port@0
64f5a98bfeSMaxime Ripard      - port@1
65f5a98bfeSMaxime Ripard
66f5a98bfeSMaxime Ripardrequired:
67f5a98bfeSMaxime Ripard  - compatible
68f5a98bfeSMaxime Ripard  - reg
69f5a98bfeSMaxime Ripard  - interrupts
70f5a98bfeSMaxime Ripard  - clocks
71f5a98bfeSMaxime Ripard  - clock-names
72f5a98bfeSMaxime Ripard  - resets
73f5a98bfeSMaxime Ripard  - ports
74f5a98bfeSMaxime Ripard
75f5a98bfeSMaxime RipardadditionalProperties: false
76f5a98bfeSMaxime Ripard
77f5a98bfeSMaxime Ripardexamples:
78f5a98bfeSMaxime Ripard  - |
79f5a98bfeSMaxime Ripard    #include <dt-bindings/interrupt-controller/arm-gic.h>
80f5a98bfeSMaxime Ripard
81f5a98bfeSMaxime Ripard    #include <dt-bindings/clock/sun6i-a31-ccu.h>
82f5a98bfeSMaxime Ripard    #include <dt-bindings/reset/sun6i-a31-ccu.h>
83f5a98bfeSMaxime Ripard
84f5a98bfeSMaxime Ripard    drc0: drc@1e70000 {
85f5a98bfeSMaxime Ripard        compatible = "allwinner,sun6i-a31-drc";
86f5a98bfeSMaxime Ripard        reg = <0x01e70000 0x10000>;
87f5a98bfeSMaxime Ripard        interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
88f5a98bfeSMaxime Ripard        clocks = <&ccu CLK_AHB1_DRC0>, <&ccu CLK_IEP_DRC0>,
89f5a98bfeSMaxime Ripard                 <&ccu CLK_DRAM_DRC0>;
90f5a98bfeSMaxime Ripard        clock-names = "ahb", "mod",
91f5a98bfeSMaxime Ripard                      "ram";
92f5a98bfeSMaxime Ripard        resets = <&ccu RST_AHB1_DRC0>;
93f5a98bfeSMaxime Ripard
94f5a98bfeSMaxime Ripard        ports {
95f5a98bfeSMaxime Ripard            #address-cells = <1>;
96f5a98bfeSMaxime Ripard            #size-cells = <0>;
97f5a98bfeSMaxime Ripard
98f5a98bfeSMaxime Ripard            drc0_in: port@0 {
99f5a98bfeSMaxime Ripard                reg = <0>;
100f5a98bfeSMaxime Ripard
101f5a98bfeSMaxime Ripard                drc0_in_be0: endpoint {
102f5a98bfeSMaxime Ripard                    remote-endpoint = <&be0_out_drc0>;
103f5a98bfeSMaxime Ripard                };
104f5a98bfeSMaxime Ripard            };
105f5a98bfeSMaxime Ripard
106f5a98bfeSMaxime Ripard            drc0_out: port@1 {
107f5a98bfeSMaxime Ripard                #address-cells = <1>;
108f5a98bfeSMaxime Ripard                #size-cells = <0>;
109f5a98bfeSMaxime Ripard                reg = <1>;
110f5a98bfeSMaxime Ripard
111f5a98bfeSMaxime Ripard                drc0_out_tcon0: endpoint@0 {
112f5a98bfeSMaxime Ripard                    reg = <0>;
113f5a98bfeSMaxime Ripard                    remote-endpoint = <&tcon0_in_drc0>;
114f5a98bfeSMaxime Ripard                };
115f5a98bfeSMaxime Ripard
116f5a98bfeSMaxime Ripard                drc0_out_tcon1: endpoint@1 {
117f5a98bfeSMaxime Ripard                    reg = <1>;
118f5a98bfeSMaxime Ripard                    remote-endpoint = <&tcon1_in_drc0>;
119f5a98bfeSMaxime Ripard                };
120f5a98bfeSMaxime Ripard            };
121f5a98bfeSMaxime Ripard        };
122f5a98bfeSMaxime Ripard    };
123f5a98bfeSMaxime Ripard
124f5a98bfeSMaxime Ripard
125f5a98bfeSMaxime Ripard...
126