added enabling I2C buses for NV40 arch cards. hopefully this makes the buses work on GF6100 (noted in bug #2780) and maybe others. added a few registerdefines (wip).

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30938 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Rudolf Cornelissen
2009-06-01 20:06:21 +00:00
parent fa773c0ae5
commit dd67a9b2d4
2 changed files with 8 additions and 1 deletions
@@ -759,6 +759,9 @@
#define NVCRTCX_WR_I2CBUS_0 0x3f #define NVCRTCX_WR_I2CBUS_0 0x3f
#define NVCRTCX_EXTRA 0x41 #define NVCRTCX_EXTRA 0x41
#define NVCRTCX_OWNER 0x44 #define NVCRTCX_OWNER 0x44
#define NVCRTCX_I2C_LOCK 0x49
#define NVCRTCX_RD_I2CBUS_2 0x50
#define NVCRTCX_WR_I2CBUS_2 0x51
#define NVCRTCX_FP_HTIMING 0x53 #define NVCRTCX_FP_HTIMING 0x53
#define NVCRTCX_FP_VTIMING 0x54 #define NVCRTCX_FP_VTIMING 0x54
#define NVCRTCX_0x59 0x59 #define NVCRTCX_0x59 0x59
@@ -2,7 +2,7 @@
* i2c interface. * i2c interface.
* Bus should be run at max. 100kHz: see original Philips I2C specification * Bus should be run at max. 100kHz: see original Philips I2C specification
* *
* Rudolf Cornelissen 12/2002-5/2009 * Rudolf Cornelissen 12/2002-6/2009
*/ */
#define MODULE_BIT 0x00004000 #define MODULE_BIT 0x00004000
@@ -296,6 +296,10 @@ status_t i2c_init(void)
/* enable access to primary head */ /* enable access to primary head */
set_crtc_owner(0); set_crtc_owner(0);
/* on some NV40 architecture cards the i2c busses can be disabled: enable them */
if (si->ps.card_arch == NV40A)
CRTCW(I2C_LOCK ,(CRTCR(I2C_LOCK) | 0x04));
/* preset no board wired buses */ /* preset no board wired buses */
si->ps.i2c_bus0 = false; si->ps.i2c_bus0 = false;
si->ps.i2c_bus1 = false; si->ps.i2c_bus1 = false;