1) Tuner Programming
====================
There are some flavors of Tuner programming APIs.
These differ mainly by the bandswitch byte.

    L= LG_API       (VHF_LO=0x01, VHF_HI=0x02, UHF=0x08, radio=0x04)
    P= PHILIPS_API  (VHF_LO=0xA0, VHF_HI=0x90, UHF=0x30, radio=0x04)
    T= TEMIC_API    (VHF_LO=0x02, VHF_HI=0x04, UHF=0x01)
    A= ALPS_API     (VHF_LO=0x14, VHF_HI=0x12, UHF=0x11)
    M= PHILIPS_MK3  (VHF_LO=0x01, VHF_HI=0x02, UHF=0x04, radio=0x19)

2) Tuner Manufacturers
======================

SAMSUNG Tuner identification: (e.g. TCPM9091PD27)
  TCP [ABCJLMNQ] 90[89][125] [DP] [ACD] 27 [ABCD]
 [ABCJLMNQ]:
   A= BG+DK
   B= BG
   C= I+DK
   J= NTSC-Japan
   L= Secam LL
   M= BG+I+DK
   N= NTSC
   Q= BG+I+DK+LL
 [89]: ?
 [125]:
   2: No FM
   5: With FM
 [DP]:
   D= NTSC
   P= PAL
 [ACD]:
   A= F-connector
   C= Phono connector
   D= Din Jack
 [ABCD]:
   3-wire/I2C tuning, 2-band/3-band

 These Tuners are PHILIPS_API compatible.

Philips Tuner identification: (e.g. FM1216MF)
  F[IRMQ]12[1345]6{MF|ME|MP}
  F[IRMQ]:
   FI12x6: Tuner Series
   FR12x6: Tuner + Radio IF
   FM12x6: Tuner + FM
   FQ12x6: special
   FMR12x6: special
   TD15xx: Digital Tuner ATSC
  12[1345]6:
   1216: PAL BG
   1236: NTSC
   1246: PAL I
   1256: Pal DK
  {MF|ME|MP}
   MF: BG LL w/ Secam (Multi France)
   ME: BG DK I LL   (Multi Europe)
   MP: BG DK I      (Multi PAL)
   MR: BG DK M (?)
   MG: BG DKI M (?)
  MK2 series PHILIPS_API, most tuners are compatible to this one !
  MK3 series introduced in 2002 w/ PHILIPS_MK3_API

Temic Tuner identification: (.e.g 4006FH5)
   4[01][0136][269]F[HYNR]5
    40x2: Tuner (5V/33V), TEMIC_API.
    40x6: Tuner 5V
    41xx: Tuner compact
    40x9: Tuner+FM compact
   [0136]
    xx0x: PAL BG
    xx1x: Pal DK, Secam LL
    xx3x: NTSC
    xx6x: PAL I
   F[HYNR]5
    FH5: Pal BG
    FY5: others
    FN5: multistandard
    FR5: w/ FM radio
   3X xxxx: order number with specific connector
  Note: Only 40x2 series has TEMIC_API, all newer tuners have PHILIPS_API.

LG Innotek Tuner:
  TPI8NSR11 : NTSC J/M    (TPI8NSR01 w/FM)  (P,210/497)
  TPI8PSB11 : PAL B/G     (TPI8PSB01 w/FM)  (P,170/450)
  TAPC-I701 : PAL I       (TAPC-I001 w/FM)  (P,170/450)
  TPI8PSB12 : PAL D/K+B/G (TPI8PSB02 w/FM)  (P,170/450)
  TAPC-H701P: NTSC_JP     (TAPC-H001P w/FM) (L,170/450)
  TAPC-G701P: PAL B/G     (TAPC-G001P w/FM) (L,170/450)
  TAPC-W701P: PAL I       (TAPC-W001P w/FM) (L,170/450)
  TAPC-Q703P: PAL D/K     (TAPC-Q001P w/FM) (L,170/450)
  TAPC-Q704P: PAL D/K+I   (L,170/450)
  TAPC-G702P: PAL D/K+B/G (L,170/450)

  TADC-H002F: NTSC (L,175/410?; 2-B, C-W+11, W+12-69)
  TADC-M201D: PAL D/K+B/G+I (L,143/425)  (sound control at I2C address 0xc8)
  TADC-T003F: NTSC Taiwan  (L,175/410?; 2-B, C-W+11, W+12-69)
  Suffix:
    P= Standard phono female socket
    D= IEC female socket
    F= F-connector

Other Tuners:
TCL2002MB-1 : PAL BG + DK       =TUNER_LG_PAL_NEW_TAPC
TCL2002MB-1F: PAL BG + DK w/FM  =PHILIPS_PAL
TCL2002MI-2 : PAL I		= ??

ALPS Tuners:
   Most are LG_API compatible
   TSCH6 has ALPS_API (TSCH5 ?)
   TSBE1 has extra API 05,02,08 Control_byte=0xCB Source:(1)

Lit.
(1) conexant100029b-PCI-Decoder-ApplicationNote.pdf
