← Documents Documentation/devicetree/bindings/media/stih407-c8sectpfe.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings

STiH407 C8SECTPFE Transport Stream Input

최대 7개 TS 입력을 외부 DVB 프런트엔드에서 DDR까지 전달하는 컨트롤러 바인딩입니다.

Source pathDocumentation/devicetree/bindings/media/stih407-c8sectpfe.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약과 해설

stih407-c8sectpfe.txt:1-88

상위 레지스터·클록·핀 상태와 각 TS 입력의 I2C·리셋·버스 모드를 설명합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 STMicroelectronics STi c8sectpfe binding
2 ============================================
3
4 This document describes the c8sectpfe device bindings that is used to get transport
5 stream data into the SoC on the TS pins, and into DDR for further processing.
6
7 It is typically used in conjunction with one or more demodulator and tuner devices
8 which converts from the RF to digital domain. Demodulators and tuners are usually
9 located on an external DVB frontend card connected to SoC TS input pins.
10
11 Currently 7 TS input (tsin) channels are supported on the stih407 family SoC.
12
13 Required properties (controller (parent) node):
14 - compatible : Should be "stih407-c8sectpfe"
15
16 - reg : Address and length of register sets for each device in
17 "reg-names"
18
19 - reg-names : The names of the register addresses corresponding to the
20 registers filled in "reg":
21 - c8sectpfe: c8sectpfe registers
22 - c8sectpfe-ram: c8sectpfe internal sram
23
24 - clocks : phandle list of c8sectpfe clocks
25 - clock-names : should be "c8sectpfe"
26 See: Documentation/devicetree/bindings/clock/clock-bindings.txt
27
28 - pinctrl-names : a pinctrl state named tsin%d-serial or tsin%d-parallel (where %d is tsin-num)
29 must be defined for each tsin child node.
30 - pinctrl-0 : phandle referencing pin configuration for this tsin configuration
31 See: Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
32
33
34 Required properties (tsin (child) node):
35
36 - tsin-num : tsin id of the InputBlock (must be between 0 to 6)
37 - i2c-bus : phandle to the I2C bus DT node which the demodulators & tuners on this tsin channel are connected.
38 - reset-gpios : reset gpio for this tsin channel.
39
40 Optional properties (tsin (child) node):
41
42 - invert-ts-clk : Bool property to control sense of ts input clock (data stored on falling edge of clk).
43 - serial-not-parallel : Bool property to configure input bus width (serial on ts_data<7>).
44 - async-not-sync : Bool property to control if data is received in asynchronous mode
45 (all bits/bytes with ts_valid or ts_packet asserted are valid).
46
47 - dvb-card : Describes the NIM card connected to this tsin channel.
48
49 Example:
50
51 /* stih410 SoC b2120 + b2004a + stv0367-pll(NIMB) + stv0367-tda18212 (NIMA) DT example) */
52
53 c8sectpfe@8a20000 {
54 compatible = "st,stih407-c8sectpfe";
55 reg = <0x08a20000 0x10000>, <0x08a00000 0x4000>;
56 reg-names = "stfe", "stfe-ram";
57 interrupts = <GIC_SPI 34 IRQ_TYPE_NONE>, <GIC_SPI 35 IRQ_TYPE_NONE>;
58 interrupt-names = "stfe-error-irq", "stfe-idle-irq";
59 pinctrl-0 = <&pinctrl_tsin0_serial>;
60 pinctrl-1 = <&pinctrl_tsin0_parallel>;
61 pinctrl-2 = <&pinctrl_tsin3_serial>;
62 pinctrl-3 = <&pinctrl_tsin4_serial_alt3>;
63 pinctrl-4 = <&pinctrl_tsin5_serial_alt1>;
64 pinctrl-names = "tsin0-serial",
65 "tsin0-parallel",
66 "tsin3-serial",
67 "tsin4-serial",
68 "tsin5-serial";
69 clocks = <&clk_s_c0_flexgen CLK_PROC_STFE>;
70 clock-names = "c8sectpfe";
71
72 /* tsin0 is TSA on NIMA */
73 tsin0: port@0 {
74 tsin-num = <0>;
75 serial-not-parallel;
76 i2c-bus = <&ssc2>;
77 reset-gpios = <&pio15 4 GPIO_ACTIVE_HIGH>;
78 dvb-card = <STV0367_TDA18212_NIMA_1>;
79 };
80
81 tsin3: port@3 {
82 tsin-num = <3>;
83 serial-not-parallel;
84 i2c-bus = <&ssc3>;
85 reset-gpios = <&pio15 7 GPIO_ACTIVE_HIGH>;
86 dvb-card = <STV0367_TDA18212_NIMB_1>;
87 };
88 };
89

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

STi C8SECTPFE 전송 스트림 입력

1-12

이 바인딩은 TS 핀에서 SoC로 전송 스트림을 받아 DDR에 저장해 후속 처리하는 `c8sectpfe` 장치를 설명합니다. 보통 RF 신호를 디지털 영역으로 변환하는 하나 이상의 복조기 및 튜너와 함께 사용합니다. 이 장치들은 대개 SoC의 TS 입력 핀에 연결된 외부 DVB 프런트엔드 카드에 있습니다.

현재 STiH407 계열 SoC는 TS 입력(`tsin`) 채널 7개를 지원합니다.

C8SECTPFE 전송 스트림 경로
RF signalDemodulator and tuner
External DVB frontendTS input pins
tsin0..tsin6C8SECTPFE
Internal SRAMDDR for further processing

외부 RF 프런트엔드에서 변환한 디지털 전송 스트림이 TS 입력 블록과 내부 SRAM을 거쳐 DDR로 이동합니다.

컨트롤러 노드의 필수 속성

13-33

상위 컨트롤러 노드의 `compatible`은 원문 표기상 `stih407-c8sectpfe`여야 합니다. 다만 뒤의 예제는 `st,stih407-c8sectpfe`를 사용하므로 실제 트리 작성 시 스키마와 드라이버가 요구하는 문자열을 함께 확인해야 합니다. `reg`는 `reg-names`에 적은 각 레지스터 집합의 주소와 길이를 담습니다. 이름은 C8SECTPFE 레지스터용 `c8sectpfe`와 내부 SRAM용 `c8sectpfe-ram`입니다.

`clocks`는 C8SECTPFE 클록의 phandle 목록이고 `clock-names`는 `c8sectpfe`여야 합니다. 클록 형식은 `Documentation/devicetree/bindings/clock/clock-bindings.txt`를 따릅니다.

각 `tsin` 자식 노드마다 `tsin%d-serial` 또는 `tsin%d-parallel`이라는 핀 제어 상태를 정의해야 하며 `%d`는 `tsin-num`입니다. `pinctrl-0`은 해당 TS 입력 구성의 핀 설정을 가리키는 phandle입니다. 자세한 형식은 `Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt`를 따릅니다.

TS 입력 자식의 필수 속성

34-39

`tsin-num`은 InputBlock의 TS 입력 ID이며 0부터 6 사이여야 합니다. `i2c-bus`는 이 채널의 복조기와 튜너가 연결된 I2C 버스 DT 노드를 가리킵니다. `reset-gpios`는 해당 채널의 리셋 GPIO입니다.

TS 입력 자식의 선택 속성

40-48

불리언 `invert-ts-clk`는 TS 입력 클록의 감지 방향을 바꾸어 클록 하강 에지에서 데이터를 저장하게 합니다. `serial-not-parallel`은 입력 버스 폭을 `ts_data<7>`의 직렬 방식으로 설정합니다. `async-not-sync`는 비동기 수신을 선택하며, 이 모드에서는 `ts_valid` 또는 `ts_packet`이 단언된 모든 비트나 바이트가 유효합니다.

`dvb-card`는 해당 TS 입력 채널에 연결된 NIM 카드를 기술합니다.

STiH410 다중 TS 입력 예제

49-88

예제는 STiH410 SoC의 B2120, B2004A 보드와 STV0367 기반 NIM 구성을 보여 줍니다. 컨트롤러에는 두 레지스터 영역, 오류 및 유휴 인터럽트, 여러 직렬·병렬 핀 상태, `CLK_PROC_STFE` 클록이 지정됩니다. 예제의 `reg-names`는 앞 설명의 이름과 달리 `stfe`, `stfe-ram`을 쓰므로 이 차이도 원문 그대로 보존합니다.

`tsin0`은 NIMA의 TSA로서 SSC2 I2C 버스, PIO15_4 리셋, `STV0367_TDA18212_NIMA_1` 카드를 사용합니다. `tsin3`은 SSC3, PIO15_7, `STV0367_TDA18212_NIMB_1`을 사용하며 두 입력 모두 직렬 모드입니다.

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

        c8sectpfe@8a20000 {
                compatible = "st,stih407-c8sectpfe";
                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>;
                };
        };