| 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,exynos4415-fimd"; /* for Exynos4415 SoC */ |
| "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. |
| |
| - interrupt-parent: should be the phandle of the fimd controller's |
| parent interrupt controller. |
| |
| - 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"; |
| }; |