xref: /freebsd/sys/contrib/device-tree/Bindings/media/i2c/adv7604.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel Vadot* Analog Devices ADV7604/11/12 video decoder with HDMI receiver
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotThe ADV7604 and ADV7611/12 are multiformat video decoders with an integrated
4*c66ec88fSEmmanuel VadotHDMI receiver. The ADV7604 has four multiplexed HDMI inputs and one analog
5*c66ec88fSEmmanuel Vadotinput, and the ADV7611 has one HDMI input and no analog input. The 7612 is
6*c66ec88fSEmmanuel Vadotsimilar to the 7611 but has 2 HDMI inputs.
7*c66ec88fSEmmanuel Vadot
8*c66ec88fSEmmanuel VadotThese device tree bindings support the ADV7611/12 only at the moment.
9*c66ec88fSEmmanuel Vadot
10*c66ec88fSEmmanuel VadotRequired Properties:
11*c66ec88fSEmmanuel Vadot
12*c66ec88fSEmmanuel Vadot  - compatible: Must contain one of the following
13*c66ec88fSEmmanuel Vadot    - "adi,adv7611" for the ADV7611
14*c66ec88fSEmmanuel Vadot    - "adi,adv7612" for the ADV7612
15*c66ec88fSEmmanuel Vadot
16*c66ec88fSEmmanuel Vadot  - reg: I2C slave addresses
17*c66ec88fSEmmanuel Vadot    The ADV76xx has up to thirteen 256-byte maps that can be accessed via the
18*c66ec88fSEmmanuel Vadot    main I2C ports. Each map has it own I2C address and acts as a standard
19*c66ec88fSEmmanuel Vadot    slave device on the I2C bus. The main address is mandatory, others are
20*c66ec88fSEmmanuel Vadot    optional and revert to defaults if not specified.
21*c66ec88fSEmmanuel Vadot
22*c66ec88fSEmmanuel Vadot  - hpd-gpios: References to the GPIOs that control the HDMI hot-plug
23*c66ec88fSEmmanuel Vadot    detection pins, one per HDMI input. The active flag indicates the GPIO
24*c66ec88fSEmmanuel Vadot    level that enables hot-plug detection.
25*c66ec88fSEmmanuel Vadot
26*c66ec88fSEmmanuel VadotThe device node must contain one 'port' child node per device input and output
27*c66ec88fSEmmanuel Vadotport, in accordance with the video interface bindings defined in
28*c66ec88fSEmmanuel VadotDocumentation/devicetree/bindings/media/video-interfaces.txt. The port nodes
29*c66ec88fSEmmanuel Vadotare numbered as follows.
30*c66ec88fSEmmanuel Vadot
31*c66ec88fSEmmanuel Vadot  Port			ADV7611    ADV7612
32*c66ec88fSEmmanuel Vadot------------------------------------------------------------
33*c66ec88fSEmmanuel Vadot  HDMI			0             0, 1
34*c66ec88fSEmmanuel Vadot  Digital output	1                2
35*c66ec88fSEmmanuel Vadot
36*c66ec88fSEmmanuel VadotThe digital output port node must contain at least one endpoint.
37*c66ec88fSEmmanuel Vadot
38*c66ec88fSEmmanuel VadotOptional Properties:
39*c66ec88fSEmmanuel Vadot
40*c66ec88fSEmmanuel Vadot  - reset-gpios: Reference to the GPIO connected to the device's reset pin.
41*c66ec88fSEmmanuel Vadot  - default-input: Select which input is selected after reset.
42*c66ec88fSEmmanuel Vadot  - reg-names : Names of maps with programmable addresses.
43*c66ec88fSEmmanuel Vadot		It can contain any map needing a non-default address.
44*c66ec88fSEmmanuel Vadot		Possible maps names are :
45*c66ec88fSEmmanuel Vadot		  "main", "avlink", "cec", "infoframe", "esdp", "dpp", "afe",
46*c66ec88fSEmmanuel Vadot		  "rep", "edid", "hdmi", "test", "cp", "vdp"
47*c66ec88fSEmmanuel Vadot
48*c66ec88fSEmmanuel VadotOptional Endpoint Properties:
49*c66ec88fSEmmanuel Vadot
50*c66ec88fSEmmanuel Vadot  The following three properties are defined in video-interfaces.txt and are
51*c66ec88fSEmmanuel Vadot  valid for source endpoints only.
52*c66ec88fSEmmanuel Vadot
53*c66ec88fSEmmanuel Vadot  - hsync-active: Horizontal synchronization polarity. Defaults to active low.
54*c66ec88fSEmmanuel Vadot  - vsync-active: Vertical synchronization polarity. Defaults to active low.
55*c66ec88fSEmmanuel Vadot  - pclk-sample: Pixel clock polarity. Defaults to output on the falling edge.
56*c66ec88fSEmmanuel Vadot
57*c66ec88fSEmmanuel Vadot  If none of hsync-active, vsync-active and pclk-sample is specified the
58*c66ec88fSEmmanuel Vadot  endpoint will use embedded BT.656 synchronization.
59*c66ec88fSEmmanuel Vadot
60*c66ec88fSEmmanuel VadotExample:
61*c66ec88fSEmmanuel Vadot
62*c66ec88fSEmmanuel Vadot	hdmi_receiver@4c {
63*c66ec88fSEmmanuel Vadot		compatible = "adi,adv7611";
64*c66ec88fSEmmanuel Vadot		/*
65*c66ec88fSEmmanuel Vadot		 * The edid page will be accessible @ 0x66 on the I2C bus. All
66*c66ec88fSEmmanuel Vadot		 * other maps will retain their default addresses.
67*c66ec88fSEmmanuel Vadot		 */
68*c66ec88fSEmmanuel Vadot		reg = <0x4c>, <0x66>;
69*c66ec88fSEmmanuel Vadot		reg-names = "main", "edid";
70*c66ec88fSEmmanuel Vadot
71*c66ec88fSEmmanuel Vadot		reset-gpios = <&ioexp 0 GPIO_ACTIVE_LOW>;
72*c66ec88fSEmmanuel Vadot		hpd-gpios = <&ioexp 2 GPIO_ACTIVE_HIGH>;
73*c66ec88fSEmmanuel Vadot
74*c66ec88fSEmmanuel Vadot		#address-cells = <1>;
75*c66ec88fSEmmanuel Vadot		#size-cells = <0>;
76*c66ec88fSEmmanuel Vadot
77*c66ec88fSEmmanuel Vadot		default-input = <0>;
78*c66ec88fSEmmanuel Vadot
79*c66ec88fSEmmanuel Vadot		port@0 {
80*c66ec88fSEmmanuel Vadot			reg = <0>;
81*c66ec88fSEmmanuel Vadot		};
82*c66ec88fSEmmanuel Vadot		port@1 {
83*c66ec88fSEmmanuel Vadot			reg = <1>;
84*c66ec88fSEmmanuel Vadot			hdmi_in: endpoint {
85*c66ec88fSEmmanuel Vadot				remote-endpoint = <&ccdc_in>;
86*c66ec88fSEmmanuel Vadot			};
87*c66ec88fSEmmanuel Vadot		};
88*c66ec88fSEmmanuel Vadot	};
89