1*c942fddfSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */ 25740f4e7SHans Verkuil /* 35740f4e7SHans Verkuil * tw68-reg.h - TW68xx register offsets 45740f4e7SHans Verkuil * 55740f4e7SHans Verkuil * Much of this code is derived from the cx88 and sa7134 drivers, which 65740f4e7SHans Verkuil * were in turn derived from the bt87x driver. The original work was by 75740f4e7SHans Verkuil * Gerd Knorr; more recently the code was enhanced by Mauro Carvalho Chehab, 85740f4e7SHans Verkuil * Hans Verkuil, Andy Walls and many others. Their work is gratefully 95740f4e7SHans Verkuil * acknowledged. Full credit goes to them - any problems within this code 105740f4e7SHans Verkuil * are mine. 115740f4e7SHans Verkuil * 12e15d1c12SHans Verkuil * Copyright (C) William M. Brack 13e15d1c12SHans Verkuil * 14e15d1c12SHans Verkuil * Refactored and updated to the latest v4l core frameworks: 15e15d1c12SHans Verkuil * 16e15d1c12SHans Verkuil * Copyright (C) 2014 Hans Verkuil <hverkuil@xs4all.nl> 175740f4e7SHans Verkuil */ 185740f4e7SHans Verkuil 195740f4e7SHans Verkuil #ifndef _TW68_REG_H_ 205740f4e7SHans Verkuil #define _TW68_REG_H_ 215740f4e7SHans Verkuil 225740f4e7SHans Verkuil /* ---------------------------------------------------------------------- */ 235740f4e7SHans Verkuil #define TW68_DMAC 0x000 245740f4e7SHans Verkuil #define TW68_DMAP_SA 0x004 255740f4e7SHans Verkuil #define TW68_DMAP_EXE 0x008 265740f4e7SHans Verkuil #define TW68_DMAP_PP 0x00c 275740f4e7SHans Verkuil #define TW68_VBIC 0x010 285740f4e7SHans Verkuil #define TW68_SBUSC 0x014 295740f4e7SHans Verkuil #define TW68_SBUSSD 0x018 305740f4e7SHans Verkuil #define TW68_INTSTAT 0x01C 315740f4e7SHans Verkuil #define TW68_INTMASK 0x020 325740f4e7SHans Verkuil #define TW68_GPIOC 0x024 335740f4e7SHans Verkuil #define TW68_GPOE 0x028 345740f4e7SHans Verkuil #define TW68_TESTREG 0x02C 355740f4e7SHans Verkuil #define TW68_SBUSRD 0x030 365740f4e7SHans Verkuil #define TW68_SBUS_TRIG 0x034 375740f4e7SHans Verkuil #define TW68_CAP_CTL 0x040 385740f4e7SHans Verkuil #define TW68_SUBSYS 0x054 395740f4e7SHans Verkuil #define TW68_I2C_RST 0x064 405740f4e7SHans Verkuil #define TW68_VBIINST 0x06C 415740f4e7SHans Verkuil /* define bits in FIFO and DMAP Control reg */ 425740f4e7SHans Verkuil #define TW68_DMAP_EN (1 << 0) 435740f4e7SHans Verkuil #define TW68_FIFO_EN (1 << 1) 445740f4e7SHans Verkuil /* define the Interrupt Status Register bits */ 455740f4e7SHans Verkuil #define TW68_SBDONE (1 << 0) 465740f4e7SHans Verkuil #define TW68_DMAPI (1 << 1) 475740f4e7SHans Verkuil #define TW68_GPINT (1 << 2) 485740f4e7SHans Verkuil #define TW68_FFOF (1 << 3) 495740f4e7SHans Verkuil #define TW68_FDMIS (1 << 4) 505740f4e7SHans Verkuil #define TW68_DMAPERR (1 << 5) 515740f4e7SHans Verkuil #define TW68_PABORT (1 << 6) 525740f4e7SHans Verkuil #define TW68_SBDONE2 (1 << 12) 535740f4e7SHans Verkuil #define TW68_SBERR2 (1 << 13) 545740f4e7SHans Verkuil #define TW68_PPERR (1 << 14) 555740f4e7SHans Verkuil #define TW68_FFERR (1 << 15) 565740f4e7SHans Verkuil #define TW68_DET50 (1 << 16) 575740f4e7SHans Verkuil #define TW68_FLOCK (1 << 17) 585740f4e7SHans Verkuil #define TW68_CCVALID (1 << 18) 595740f4e7SHans Verkuil #define TW68_VLOCK (1 << 19) 605740f4e7SHans Verkuil #define TW68_FIELD (1 << 20) 615740f4e7SHans Verkuil #define TW68_SLOCK (1 << 21) 625740f4e7SHans Verkuil #define TW68_HLOCK (1 << 22) 635740f4e7SHans Verkuil #define TW68_VDLOSS (1 << 23) 645740f4e7SHans Verkuil #define TW68_SBERR (1 << 24) 655740f4e7SHans Verkuil /* define the i2c control register bits */ 665740f4e7SHans Verkuil #define TW68_SBMODE (0) 675740f4e7SHans Verkuil #define TW68_WREN (1) 685740f4e7SHans Verkuil #define TW68_SSCLK (6) 695740f4e7SHans Verkuil #define TW68_SSDAT (7) 705740f4e7SHans Verkuil #define TW68_SBCLK (8) 715740f4e7SHans Verkuil #define TW68_WDLEN (16) 725740f4e7SHans Verkuil #define TW68_RDLEN (20) 735740f4e7SHans Verkuil #define TW68_SBRW (24) 745740f4e7SHans Verkuil #define TW68_SBDEV (25) 755740f4e7SHans Verkuil 765740f4e7SHans Verkuil #define TW68_SBMODE_B (1 << TW68_SBMODE) 775740f4e7SHans Verkuil #define TW68_WREN_B (1 << TW68_WREN) 785740f4e7SHans Verkuil #define TW68_SSCLK_B (1 << TW68_SSCLK) 795740f4e7SHans Verkuil #define TW68_SSDAT_B (1 << TW68_SSDAT) 805740f4e7SHans Verkuil #define TW68_SBRW_B (1 << TW68_SBRW) 815740f4e7SHans Verkuil 825740f4e7SHans Verkuil #define TW68_GPDATA 0x100 835740f4e7SHans Verkuil #define TW68_STATUS1 0x204 845740f4e7SHans Verkuil #define TW68_INFORM 0x208 855740f4e7SHans Verkuil #define TW68_OPFORM 0x20C 865740f4e7SHans Verkuil #define TW68_HSYNC 0x210 875740f4e7SHans Verkuil #define TW68_ACNTL 0x218 885740f4e7SHans Verkuil #define TW68_CROP_HI 0x21C 895740f4e7SHans Verkuil #define TW68_VDELAY_LO 0x220 905740f4e7SHans Verkuil #define TW68_VACTIVE_LO 0x224 915740f4e7SHans Verkuil #define TW68_HDELAY_LO 0x228 925740f4e7SHans Verkuil #define TW68_HACTIVE_LO 0x22C 935740f4e7SHans Verkuil #define TW68_CNTRL1 0x230 945740f4e7SHans Verkuil #define TW68_VSCALE_LO 0x234 955740f4e7SHans Verkuil #define TW68_SCALE_HI 0x238 965740f4e7SHans Verkuil #define TW68_HSCALE_LO 0x23C 975740f4e7SHans Verkuil #define TW68_BRIGHT 0x240 985740f4e7SHans Verkuil #define TW68_CONTRAST 0x244 995740f4e7SHans Verkuil #define TW68_SHARPNESS 0x248 1005740f4e7SHans Verkuil #define TW68_SAT_U 0x24C 1015740f4e7SHans Verkuil #define TW68_SAT_V 0x250 1025740f4e7SHans Verkuil #define TW68_HUE 0x254 1035740f4e7SHans Verkuil #define TW68_SHARP2 0x258 1045740f4e7SHans Verkuil #define TW68_VSHARP 0x25C 1055740f4e7SHans Verkuil #define TW68_CORING 0x260 1065740f4e7SHans Verkuil #define TW68_VBICNTL 0x264 1075740f4e7SHans Verkuil #define TW68_CNTRL2 0x268 1085740f4e7SHans Verkuil #define TW68_CC_DATA 0x26C 1095740f4e7SHans Verkuil #define TW68_SDT 0x270 1105740f4e7SHans Verkuil #define TW68_SDTR 0x274 1115740f4e7SHans Verkuil #define TW68_RESERV2 0x278 1125740f4e7SHans Verkuil #define TW68_RESERV3 0x27C 1135740f4e7SHans Verkuil #define TW68_CLMPG 0x280 1145740f4e7SHans Verkuil #define TW68_IAGC 0x284 1155740f4e7SHans Verkuil #define TW68_AGCGAIN 0x288 1165740f4e7SHans Verkuil #define TW68_PEAKWT 0x28C 1175740f4e7SHans Verkuil #define TW68_CLMPL 0x290 1185740f4e7SHans Verkuil #define TW68_SYNCT 0x294 1195740f4e7SHans Verkuil #define TW68_MISSCNT 0x298 1205740f4e7SHans Verkuil #define TW68_PCLAMP 0x29C 1215740f4e7SHans Verkuil #define TW68_VCNTL1 0x2A0 1225740f4e7SHans Verkuil #define TW68_VCNTL2 0x2A4 1235740f4e7SHans Verkuil #define TW68_CKILL 0x2A8 1245740f4e7SHans Verkuil #define TW68_COMB 0x2AC 1255740f4e7SHans Verkuil #define TW68_LDLY 0x2B0 1265740f4e7SHans Verkuil #define TW68_MISC1 0x2B4 1275740f4e7SHans Verkuil #define TW68_LOOP 0x2B8 1285740f4e7SHans Verkuil #define TW68_MISC2 0x2BC 1295740f4e7SHans Verkuil #define TW68_MVSN 0x2C0 1305740f4e7SHans Verkuil #define TW68_STATUS2 0x2C4 1315740f4e7SHans Verkuil #define TW68_HFREF 0x2C8 1325740f4e7SHans Verkuil #define TW68_CLMD 0x2CC 1335740f4e7SHans Verkuil #define TW68_IDCNTL 0x2D0 1345740f4e7SHans Verkuil #define TW68_CLCNTL1 0x2D4 1355740f4e7SHans Verkuil 1365740f4e7SHans Verkuil /* Audio */ 1375740f4e7SHans Verkuil #define TW68_ACKI1 0x300 1385740f4e7SHans Verkuil #define TW68_ACKI2 0x304 1395740f4e7SHans Verkuil #define TW68_ACKI3 0x308 1405740f4e7SHans Verkuil #define TW68_ACKN1 0x30C 1415740f4e7SHans Verkuil #define TW68_ACKN2 0x310 1425740f4e7SHans Verkuil #define TW68_ACKN3 0x314 1435740f4e7SHans Verkuil #define TW68_SDIV 0x318 1445740f4e7SHans Verkuil #define TW68_LRDIV 0x31C 1455740f4e7SHans Verkuil #define TW68_ACCNTL 0x320 1465740f4e7SHans Verkuil 1475740f4e7SHans Verkuil #define TW68_VSCTL 0x3B8 1485740f4e7SHans Verkuil #define TW68_CHROMAGVAL 0x3BC 1495740f4e7SHans Verkuil 1505740f4e7SHans Verkuil #define TW68_F2CROP_HI 0x3DC 1515740f4e7SHans Verkuil #define TW68_F2VDELAY_LO 0x3E0 1525740f4e7SHans Verkuil #define TW68_F2VACTIVE_LO 0x3E4 1535740f4e7SHans Verkuil #define TW68_F2HDELAY_LO 0x3E8 1545740f4e7SHans Verkuil #define TW68_F2HACTIVE_LO 0x3EC 1555740f4e7SHans Verkuil #define TW68_F2CNT 0x3F0 1565740f4e7SHans Verkuil #define TW68_F2VSCALE_LO 0x3F4 1575740f4e7SHans Verkuil #define TW68_F2SCALE_HI 0x3F8 1585740f4e7SHans Verkuil #define TW68_F2HSCALE_LO 0x3FC 1595740f4e7SHans Verkuil 1605740f4e7SHans Verkuil #define RISC_INT_BIT 0x08000000 1615740f4e7SHans Verkuil #define RISC_SYNCO 0xC0000000 1625740f4e7SHans Verkuil #define RISC_SYNCE 0xD0000000 1635740f4e7SHans Verkuil #define RISC_JUMP 0xB0000000 1645740f4e7SHans Verkuil #define RISC_LINESTART 0x90000000 1655740f4e7SHans Verkuil #define RISC_INLINE 0xA0000000 1665740f4e7SHans Verkuil 1675740f4e7SHans Verkuil #define VideoFormatNTSC 0 1685740f4e7SHans Verkuil #define VideoFormatNTSCJapan 0 1695740f4e7SHans Verkuil #define VideoFormatPALBDGHI 1 1705740f4e7SHans Verkuil #define VideoFormatSECAM 2 1715740f4e7SHans Verkuil #define VideoFormatNTSC443 3 1725740f4e7SHans Verkuil #define VideoFormatPALM 4 1735740f4e7SHans Verkuil #define VideoFormatPALN 5 1745740f4e7SHans Verkuil #define VideoFormatPALNC 5 1755740f4e7SHans Verkuil #define VideoFormatPAL60 6 1765740f4e7SHans Verkuil #define VideoFormatAuto 7 1775740f4e7SHans Verkuil 1785740f4e7SHans Verkuil #define ColorFormatRGB32 0x00 1795740f4e7SHans Verkuil #define ColorFormatRGB24 0x10 1805740f4e7SHans Verkuil #define ColorFormatRGB16 0x20 1815740f4e7SHans Verkuil #define ColorFormatRGB15 0x30 1825740f4e7SHans Verkuil #define ColorFormatYUY2 0x40 1835740f4e7SHans Verkuil #define ColorFormatBSWAP 0x04 1845740f4e7SHans Verkuil #define ColorFormatWSWAP 0x08 1855740f4e7SHans Verkuil #define ColorFormatGamma 0x80 1865740f4e7SHans Verkuil #endif 187