STMicroelectronics STi c8sectpfe binding
============================================

This document describes the c8sectpfe device bindings that is used to get transport
stream data into the SoC on the TS pins, and into DDR for further processing.

It is typically used in conjunction with one or more demodulator and tuner devices
which converts from the RF to digital domain. Demodulators and tuners are usually
located on an external DVB frontend card connected to SoC TS input pins.

Currently 7 TS input (tsin) channels are supported on the stih407 family SoC.

Required properties (controller (parent) node):
- compatible	: Should be "stih407-c8sectpfe"

- reg		: Address and length of register sets for each device in
		  "reg-names"

- reg-names	: The names of the register addresses corresponding to the
		  registers filled in "reg":
			- c8sectpfe: c8sectpfe registers
			- c8sectpfe-ram: c8sectpfe internal sram

- clocks	: phandle list of c8sectpfe clocks
- clock-names	: should be "c8sectpfe"
See: Documentation/devicetree/bindings/clock/clock-bindings.txt

- pinctrl-names	: a pinctrl state named tsin%d-serial or tsin%d-parallel (where %d is tsin-num)
		   must be defined for each tsin child node.
- pinctrl-0	: phandle referencing pin configuration for this tsin configuration
See: Documentation/devicetree/bindings/pinctrl/pinctrl-binding.txt


Required properties (tsin (child) node):

- tsin-num	: tsin id of the InputBlock (must be between 0 to 6)
- i2c-bus	: phandle to the I2C bus DT node which the demodulators & tuners on this tsin channel are connected.
- reset-gpios	: reset gpio for this tsin channel.

Optional properties (tsin (child) node):

- invert-ts-clk		: Bool property to control sense of ts input clock (data stored on falling edge of clk).
- serial-not-parallel	: Bool property to configure input bus width (serial on ts_data<7>).
- async-not-sync	: Bool property to control if data is received in asynchronous mode
			   (all bits/bytes with ts_valid or ts_packet asserted are valid).

- dvb-card		: Describes the NIM card connected to this tsin channel.

Example:

/* stih410 SoC b2120 + b2004a + stv0367-pll(NIMB) + stv0367-tda18212 (NIMA) DT example) */

	c8sectpfe@08a20000 {
		compatible = "st,stih407-c8sectpfe";
		status = "okay";
		reg = <0x08a20000 0x10000>, <0x08a00000 0x4000>;
		reg-names = "stfe", "stfe-ram";
		interrupts = <GIC_SPI 34 IRQ_TYPE_NONE>, <GIC_SPI 35 IRQ_TYPE_NONE>;
		interrupt-names = "stfe-error-irq", "stfe-idle-irq";
		pinctrl-0	= <&pinctrl_tsin0_serial>;
		pinctrl-1	= <&pinctrl_tsin0_parallel>;
		pinctrl-2	= <&pinctrl_tsin3_serial>;
		pinctrl-3	= <&pinctrl_tsin4_serial_alt3>;
		pinctrl-4	= <&pinctrl_tsin5_serial_alt1>;
		pinctrl-names	= "tsin0-serial",
				  "tsin0-parallel",
				  "tsin3-serial",
				  "tsin4-serial",
				  "tsin5-serial";
		clocks = <&clk_s_c0_flexgen CLK_PROC_STFE>;
		clock-names = "c8sectpfe";

		/* tsin0 is TSA on NIMA */
		tsin0: port@0 {
			tsin-num		= <0>;
			serial-not-parallel;
			i2c-bus			= <&ssc2>;
			reset-gpios		= <&pio15 4 GPIO_ACTIVE_HIGH>;
			dvb-card		= <STV0367_TDA18212_NIMA_1>;
		};

		tsin3: port@3 {
			tsin-num		= <3>;
			serial-not-parallel;
			i2c-bus			= <&ssc3>;
			reset-gpios		= <&pio15 7 GPIO_ACTIVE_HIGH>;
			dvb-card		= <STV0367_TDA18212_NIMB_1>;
		};
	};
