hc
2023-10-25 6c2073b7aa40e29d0eca7d571dd7bc590c7ecaa7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
Device-Tree bindings for Samsung SoC display controller (FIMD)
 
FIMD (Fully Interactive Mobile Display) is the Display Controller for the
Samsung series of SoCs which transfers the image data from a video memory
buffer to an external LCD interface.
 
Required properties:
- compatible: value should be one of the following
       "samsung,s3c2443-fimd"; /* for S3C24XX SoCs */
       "samsung,s3c6400-fimd"; /* for S3C64XX SoCs */
       "samsung,s5pv210-fimd"; /* for S5PV210 SoC */
       "samsung,exynos3250-fimd"; /* for Exynos3250/3472 SoCs */
       "samsung,exynos4210-fimd"; /* for Exynos4 SoCs */
       "samsung,exynos5250-fimd"; /* for Exynos5250 SoCs */
       "samsung,exynos5420-fimd"; /* for Exynos5420/5422/5800 SoCs */
 
- reg: physical base address and length of the FIMD registers set.
 
- interrupts: should contain a list of all FIMD IP block interrupts in the
        order: FIFO Level, VSYNC, LCD_SYSTEM. The interrupt specifier
        format depends on the interrupt controller used.
 
- interrupt-names: should contain the interrupt names: "fifo", "vsync",
   "lcd_sys", in the same order as they were listed in the interrupts
        property.
 
- pinctrl-0: pin control group to be used for this controller.
 
- pinctrl-names: must contain a "default" entry.
 
- clocks: must include clock specifiers corresponding to entries in the
         clock-names property.
 
- clock-names: list of clock names sorted in the same order as the clocks
               property. Must contain "sclk_fimd" and "fimd".
 
Optional Properties:
- power-domains: a phandle to FIMD power domain node.
- samsung,invert-vden: video enable signal is inverted
- samsung,invert-vclk: video clock signal is inverted
- display-timings: timing settings for FIMD, as described in document [1].
       Can be used in case timings cannot be provided otherwise
       or to override timings provided by the panel.
- samsung,sysreg: handle to syscon used to control the system registers
- i80-if-timings: timing configuration for lcd i80 interface support.
  - cs-setup: clock cycles for the active period of address signal is enabled
              until chip select is enabled.
              If not specified, the default value(0) will be used.
  - wr-setup: clock cycles for the active period of CS signal is enabled until
              write signal is enabled.
              If not specified, the default value(0) will be used.
  - wr-active: clock cycles for the active period of CS is enabled.
               If not specified, the default value(1) will be used.
  - wr-hold: clock cycles for the active period of CS is disabled until write
             signal is disabled.
             If not specified, the default value(0) will be used.
 
  The parameters are defined as:
 
    VCLK(internal)  __|??????|_____|??????|_____|??????|_____|??????|_____|??
                      :            :            :            :            :
    Address Output  --:<XXXXXXXXXXX:XXXXXXXXXXXX:XXXXXXXXXXXX:XXXXXXXXXXXX:XX
                      | cs-setup+1 |            :            :            :
                      |<---------->|            :            :            :
    Chip Select     ???????????????|____________:____________:____________|??
                                   | wr-setup+1 |            | wr-hold+1  |
                                   |<---------->|            |<---------->|
    Write Enable    ????????????????????????????|____________|???????????????
                                                | wr-active+1|
                                                |<---------->|
    Video Data      ----------------------------<XXXXXXXXXXXXXXXXXXXXXXXXX>--
 
The device node can contain 'port' child nodes according to the bindings defined
in [2]. The following are properties specific to those nodes:
- reg: (required) port index, can be:
       0 - for CAMIF0 input,
       1 - for CAMIF1 input,
       2 - for CAMIF2 input,
       3 - for parallel output,
       4 - for write-back interface
 
[1]: Documentation/devicetree/bindings/display/panel/display-timing.txt
[2]: Documentation/devicetree/bindings/media/video-interfaces.txt
 
Example:
 
SoC specific DT entry:
 
   fimd@11c00000 {
       compatible = "samsung,exynos4210-fimd";
       interrupt-parent = <&combiner>;
       reg = <0x11c00000 0x20000>;
       interrupt-names = "fifo", "vsync", "lcd_sys";
       interrupts = <11 0>, <11 1>, <11 2>;
       clocks = <&clock 140>, <&clock 283>;
       clock-names = "sclk_fimd", "fimd";
       power-domains = <&pd_lcd0>;
       status = "disabled";
   };
 
Board specific DT entry:
 
   fimd@11c00000 {
       pinctrl-0 = <&lcd_clk &lcd_data24 &pwm1_out>;
       pinctrl-names = "default";
       status = "okay";
   };