support complex modules for camera

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/twl_wrapsdk/trunk@265 4ee2a332-4b2b-5046-8439-1ba90f034370
This commit is contained in:
yutaka 2007-08-31 09:53:38 +00:00
parent 358eba0633
commit f9dffc8721
6 changed files with 123 additions and 276 deletions

View File

@ -17,20 +17,10 @@
#include <twl/camera/ARM7/i2c_micron.h>
#include <twl/camera/ARM7/i2c_sharp.h>
typedef enum
{
CAMERA_TYPE_MICRON,
CAMERA_TYPE_SHARP,
static CameraSelect cameraSharp = CAMERA_SELECT_NONE;
CAMERA_TYPE_UNKNOWN
}
CAMERAType;
static CAMERAType cameraType = CAMERA_TYPE_MICRON;
#if 0
CAMERA_I2CInit()
#endif
#define GET_MICRON(camera) (CameraSelect)(camera & ~cameraSharp)
#define GET_SHARP(camera) (CameraSelect)(camera & cameraSharp)
/*---------------------------------------------------------------------------*
Name: CAMERA_I2CInit
@ -43,27 +33,33 @@ static CAMERAType cameraType = CAMERA_TYPE_MICRON;
*---------------------------------------------------------------------------*/
BOOL CAMERA_I2CInit(CameraSelect camera)
{
BOOL result = FALSE;
BOOL ri = TRUE;
BOOL ro = TRUE;
(void)I2C_Lock();
if (cameraType == CAMERA_TYPE_MICRON)
if (camera & CAMERA_SELECT_IN)
{
result = CAMERAi_M_I2CInit(camera);
if (result == FALSE)
if (FALSE == (ri = CAMERAi_M_I2CInit(CAMERA_SELECT_IN)))
{
cameraType = CAMERA_TYPE_SHARP;
cameraSharp |= CAMERA_SELECT_IN;
if (FALSE == (ri = CAMERAi_S_I2CInit(CAMERA_SELECT_IN)))
{
cameraSharp &= ~CAMERA_SELECT_IN;
}
}
}
if (cameraType == CAMERA_TYPE_SHARP)
if (camera & CAMERA_SELECT_OUT)
{
result = CAMERAi_S_I2CInit(camera);
if (result == FALSE)
if (FALSE == (ro = CAMERAi_M_I2CInit(CAMERA_SELECT_OUT)))
{
//cameraType = CAMERA_TYPE_MICRON; // rotate for next try
//cameraType = CAMERA_TYPE_UNKNOWN; // annihilate camera I2C
cameraSharp |= CAMERA_SELECT_OUT;
if (FALSE == (ro = CAMERAi_S_I2CInit(CAMERA_SELECT_OUT)))
{
cameraSharp &= ~CAMERA_SELECT_OUT;
}
}
}
(void)I2C_Unlock();
return result;
return ri & ro;
}
/*---------------------------------------------------------------------------*
@ -77,19 +73,14 @@ BOOL CAMERA_I2CInit(CameraSelect camera)
*---------------------------------------------------------------------------*/
BOOL CAMERA_I2CStandby(CameraSelect camera)
{
BOOL result = FALSE;
BOOL rm, rs;
(void)I2C_Lock();
switch (cameraType)
{
case CAMERA_TYPE_MICRON:
result = CAMERAi_M_I2CStandby(camera);
break;
case CAMERA_TYPE_SHARP:
result = CAMERAi_S_I2CStandby(camera);
break;
}
rm = GET_MICRON(camera) != CAMERA_SELECT_NONE ?
CAMERAi_M_I2CStandby(GET_MICRON(camera)) : TRUE;
rs = GET_SHARP(camera) != CAMERA_SELECT_NONE ?
CAMERAi_S_I2CStandby(GET_SHARP(camera)) : TRUE;
(void)I2C_Unlock();
return result;
return rm & rs;
}
/*---------------------------------------------------------------------------*
@ -103,19 +94,14 @@ BOOL CAMERA_I2CStandby(CameraSelect camera)
*---------------------------------------------------------------------------*/
BOOL CAMERA_I2CResume(CameraSelect camera)
{
BOOL result = FALSE;
BOOL rm, rs;
(void)I2C_Lock();
switch (cameraType)
{
case CAMERA_TYPE_MICRON:
result = CAMERAi_M_I2CResume(camera);
break;
case CAMERA_TYPE_SHARP:
result = CAMERAi_S_I2CResume(camera);
break;
}
rm = GET_MICRON(camera) != CAMERA_SELECT_NONE ?
CAMERAi_M_I2CResume(GET_MICRON(camera)) : TRUE;
rs = GET_SHARP(camera) != CAMERA_SELECT_NONE ?
CAMERAi_S_I2CResume(GET_SHARP(camera)) : TRUE;
(void)I2C_Unlock();
return result;
return rm & rs;
}
/*---------------------------------------------------------------------------*
@ -129,19 +115,14 @@ BOOL CAMERA_I2CResume(CameraSelect camera)
*---------------------------------------------------------------------------*/
BOOL CAMERA_I2CResumeBoth(CameraSelect camera)
{
BOOL result = FALSE;
BOOL rm, rs;
(void)I2C_Lock();
switch (cameraType)
{
case CAMERA_TYPE_MICRON:
result = CAMERAi_S_I2CResumeBoth(camera);
break;
case CAMERA_TYPE_SHARP:
result = CAMERAi_S_I2CResumeBoth(camera);
break;
}
rm = GET_MICRON(camera) != CAMERA_SELECT_NONE ?
CAMERAi_M_I2CResumeBoth(GET_MICRON(camera)) : TRUE;
rs = GET_SHARP(camera) != CAMERA_SELECT_NONE ?
CAMERAi_S_I2CResumeBoth(GET_SHARP(camera)) : TRUE;
(void)I2C_Unlock();
return result;
return rm & rs;
}
/*---------------------------------------------------------------------------*
@ -157,19 +138,14 @@ BOOL CAMERA_I2CResumeBoth(CameraSelect camera)
*---------------------------------------------------------------------------*/
BOOL CAMERA_I2CResize(CameraSelect camera, u16 width, u16 height)
{
BOOL result = FALSE;
BOOL rm, rs;
(void)I2C_Lock();
switch (cameraType)
{
case CAMERA_TYPE_MICRON:
result = CAMERAi_M_I2CResize(camera, width, height);
break;
case CAMERA_TYPE_SHARP:
result = CAMERAi_S_I2CResize(camera, width, height);
break;
}
rm = GET_MICRON(camera) != CAMERA_SELECT_NONE ?
CAMERAi_M_I2CResize(GET_MICRON(camera), width, height) : TRUE;
rs = GET_SHARP(camera) != CAMERA_SELECT_NONE ?
CAMERAi_S_I2CResize(GET_SHARP(camera), width, height) : TRUE;
(void)I2C_Unlock();
return result;
return rm & rs;
}
/*---------------------------------------------------------------------------*
@ -184,19 +160,14 @@ BOOL CAMERA_I2CResize(CameraSelect camera, u16 width, u16 height)
*---------------------------------------------------------------------------*/
BOOL CAMERA_I2CFrameRate(CameraSelect camera, int rate)
{
BOOL result = FALSE;
BOOL rm, rs;
(void)I2C_Lock();
switch (cameraType)
{
case CAMERA_TYPE_MICRON:
result = CAMERAi_M_I2CFrameRate(camera, rate);
break;
case CAMERA_TYPE_SHARP:
result = CAMERAi_S_I2CFrameRate(camera, rate);
break;
}
rm = GET_MICRON(camera) != CAMERA_SELECT_NONE ?
CAMERAi_M_I2CFrameRate(GET_MICRON(camera), rate) : TRUE;
rs = GET_SHARP(camera) != CAMERA_SELECT_NONE ?
CAMERAi_S_I2CFrameRate(GET_SHARP(camera), rate) : TRUE;
(void)I2C_Unlock();
return result;
return rm & rs;
}
/*---------------------------------------------------------------------------*
@ -211,19 +182,14 @@ BOOL CAMERA_I2CFrameRate(CameraSelect camera, int rate)
*---------------------------------------------------------------------------*/
BOOL CAMERA_I2CEffect(CameraSelect camera, CameraEffect effect)
{
BOOL result = FALSE;
BOOL rm, rs;
(void)I2C_Lock();
switch (cameraType)
{
case CAMERA_TYPE_MICRON:
result = CAMERAi_M_I2CEffect(camera, effect);
break;
case CAMERA_TYPE_SHARP:
result = CAMERAi_S_I2CEffect(camera, effect);
break;
}
rm = GET_MICRON(camera) != CAMERA_SELECT_NONE ?
CAMERAi_M_I2CEffect(GET_MICRON(camera), effect) : TRUE;
rs = GET_SHARP(camera) != CAMERA_SELECT_NONE ?
CAMERAi_S_I2CEffect(GET_SHARP(camera), effect) : TRUE;
(void)I2C_Unlock();
return result;
return rm & rs;
}
/*---------------------------------------------------------------------------*
@ -238,19 +204,14 @@ BOOL CAMERA_I2CEffect(CameraSelect camera, CameraEffect effect)
*---------------------------------------------------------------------------*/
BOOL CAMERA_I2CFlip(CameraSelect camera, CameraFlip flip)
{
BOOL result = FALSE;
BOOL rm, rs;
(void)I2C_Lock();
switch (cameraType)
{
case CAMERA_TYPE_MICRON:
result = CAMERAi_M_I2CFlip(camera, flip);
break;
case CAMERA_TYPE_SHARP:
result = CAMERAi_S_I2CFlip(camera, flip);
break;
}
rm = GET_MICRON(camera) != CAMERA_SELECT_NONE ?
CAMERAi_M_I2CFlip(GET_MICRON(camera), flip) : TRUE;
rs = GET_SHARP(camera) != CAMERA_SELECT_NONE ?
CAMERAi_S_I2CFlip(GET_SHARP(camera), flip) : TRUE;
(void)I2C_Unlock();
return result;
return rm & rs;
}
#if 0

View File

@ -31,28 +31,9 @@
*---------------------------------------------------------------------------*/
BOOL CAMERAi_M_I2CInit(CameraSelect camera)
{
#if 0
BOOL rIn = TRUE;
BOOL rOut = TRUE;
// should not send init command same time (TODO:出力なしで初期化できるなら同時に処理するように変える)
if (camera & CAMERA_SELECT_IN)
{
rIn = CAMERAi_M_Default_Registers(CAMERA_SELECT_IN)
&& CAMERAi_M_WriteMCU(CAMERA_SELECT_IN, 0x2755, 0x0002) // YUYV format (required to refresh)
&& CAMERAi_M_I2CStandby(CAMERA_SELECT_IN);
}
if (camera & CAMERA_SELECT_OUT)
{
rOut = CAMERAi_M_Default_Registers(CAMERA_SELECT_OUT)
&& CAMERAi_M_WriteMCU(CAMERA_SELECT_OUT, 0x2755, 0x0002) // YUYV format (required to refresh)
&& CAMERAi_M_I2CStandby(CAMERA_SELECT_OUT);
}
return (rIn && rOut);
#else
return CAMERAi_M_Default_Registers(camera)
&& CAMERAi_M_WriteMCU(camera, 0x2755, 0x0002) // YUYV format (required to refresh)
&& CAMERAi_M_SetFlags(camera, 0x0018, 0x0001); // goto standby
#endif
}
/*---------------------------------------------------------------------------*

View File

@ -41,34 +41,11 @@ BankGroup;
*---------------------------------------------------------------------------*/
BOOL CAMERAi_S_I2CInit(CameraSelect camera)
{
#if 0
BOOL rIn = TRUE;
BOOL rOut = TRUE;
// should not send init command same time (TODO:出力なしで初期化できるなら同時に処理するように変える)
if (camera & CAMERA_SELECT_IN)
{
rIn = CAMERAi_S_Initialize(CAMERA_SELECT_IN)
&& CAMERAi_S_WriteRegister(CAMERA_SELECT_IN, BANK_ADDR, BANK_GROUP_B)
&& CAMERAi_S_SetFlags(CAMERA_SELECT_IN, 0x1A, 0x08) // reverse RCLK polarity
&& CAMERAi_S_WriteRegister(CAMERA_SELECT_IN, 0x18, 0x02) // force to order YUYV
&& CAMERAi_S_I2CStandby(CAMERA_SELECT_IN);
}
if (camera & CAMERA_SELECT_OUT)
{
rOut = CAMERAi_S_Initialize(CAMERA_SELECT_OUT)
&& CAMERAi_S_WriteRegister(CAMERA_SELECT_OUT, BANK_ADDR, BANK_GROUP_B)
&& CAMERAi_S_SetFlags(CAMERA_SELECT_OUT, 0x1A, 0x08) // reverse RCLK polarity
&& CAMERAi_S_WriteRegister(CAMERA_SELECT_OUT, 0x18, 0x02) // force to order YUYV
&& CAMERAi_S_I2CStandby(CAMERA_SELECT_OUT);
}
return (rIn && rOut);
#else
return CAMERAi_S_Initialize(camera)
&& CAMERAi_S_WriteRegister(camera, BANK_ADDR, BANK_GROUP_B)
&& CAMERAi_S_SetFlags(camera, 0x1A, 0x08) // reverse RCLK polarity
&& CAMERAi_S_WriteRegister(camera, 0x18, 0x02) // force to order YUYV
&& CAMERAi_S_ClearFlags(camera, 0x04, 0x88); // goto standby (maybe already into)
#endif
}
/*---------------------------------------------------------------------------*

View File

@ -1,6 +1,6 @@
#! make -f
#----------------------------------------------------------------------------
# Project: TwlSDK - libraries - aes
# Project: TwlSDK - libraries - camera
# File: Makefile
#
# Copyright 2007 Nintendo. All rights reserved.

View File

@ -44,31 +44,19 @@ extern "C" {
*---------------------------------------------------------------------------*/
static inline BOOL CAMERAi_M_WriteRegister( CameraSelect camera, u16 reg, u16 data )
{
BOOL rIn = TRUE;
BOOL rOut = TRUE;
if (camera & CAMERA_SELECT_IN)
{
rIn = I2Ci_WriteRegister16( I2C_SLAVE_CAMERA_MICRON_IN, reg, data );
}
if (camera & CAMERA_SELECT_OUT)
{
rOut = I2Ci_WriteRegister16( I2C_SLAVE_CAMERA_MICRON_OUT, reg, data );
}
return (rIn && rOut);
BOOL ri = camera & CAMERA_SELECT_IN ?
I2Ci_WriteRegister16( I2C_SLAVE_CAMERA_MICRON_IN, reg, data ) : TRUE;
BOOL ro = camera & CAMERA_SELECT_OUT ?
I2Ci_WriteRegister16( I2C_SLAVE_CAMERA_MICRON_OUT, reg, data ) : TRUE;
return ri & ro;
}
static inline BOOL CAMERA_M_WriteRegister( CameraSelect camera, u16 reg, u16 data )
{
BOOL rIn = TRUE;
BOOL rOut = TRUE;
if (camera & CAMERA_SELECT_IN)
{
rIn = I2C_WriteRegister16( I2C_SLAVE_CAMERA_MICRON_IN, reg, data );
}
if (camera & CAMERA_SELECT_OUT)
{
rOut = I2C_WriteRegister16( I2C_SLAVE_CAMERA_MICRON_OUT, reg, data );
}
return (rIn && rOut);
BOOL ri = camera & CAMERA_SELECT_IN ?
I2C_WriteRegister16( I2C_SLAVE_CAMERA_MICRON_IN, reg, data ) : TRUE;
BOOL ro = camera & CAMERA_SELECT_OUT ?
I2C_WriteRegister16( I2C_SLAVE_CAMERA_MICRON_OUT, reg, data ) : TRUE;
return ri & ro;
}
/*---------------------------------------------------------------------------*
@ -118,31 +106,19 @@ static inline u16 CAMERA_M_ReadRegister( CameraSelect camera, u16 reg )
*---------------------------------------------------------------------------*/
static inline BOOL CAMERAi_M_WriteRegisters( CameraSelect camera, u16 reg, const u16 *bufp, size_t size )
{
BOOL rIn = TRUE;
BOOL rOut = TRUE;
if (camera & CAMERA_SELECT_IN)
{
rIn = I2Ci_WriteRegisters16( I2C_SLAVE_CAMERA_MICRON_IN, reg, bufp, size );
}
if (camera & CAMERA_SELECT_OUT)
{
rOut = I2Ci_WriteRegisters16( I2C_SLAVE_CAMERA_MICRON_OUT, reg, bufp, size );
}
return (rIn && rOut);
BOOL ri = camera & CAMERA_SELECT_IN ?
I2Ci_WriteRegisters16( I2C_SLAVE_CAMERA_MICRON_IN, reg, bufp, size ) : TRUE;
BOOL ro = camera & CAMERA_SELECT_OUT ?
I2Ci_WriteRegisters16( I2C_SLAVE_CAMERA_MICRON_OUT, reg, bufp, size ) : TRUE;
return ri & ro;
}
static inline BOOL CAMERA_M_WriteRegisters( CameraSelect camera, u16 reg, const u16 *bufp, size_t size )
{
BOOL rIn = TRUE;
BOOL rOut = TRUE;
if (camera & CAMERA_SELECT_IN)
{
rIn = I2C_WriteRegisters16( I2C_SLAVE_CAMERA_MICRON_IN, reg, bufp, size );
}
if (camera & CAMERA_SELECT_OUT)
{
rOut = I2C_WriteRegisters16( I2C_SLAVE_CAMERA_MICRON_OUT, reg, bufp, size );
}
return (rIn && rOut);
BOOL ri = camera & CAMERA_SELECT_IN ?
I2C_WriteRegisters16( I2C_SLAVE_CAMERA_MICRON_IN, reg, bufp, size ) : TRUE;
BOOL ro = camera & CAMERA_SELECT_OUT ?
I2C_WriteRegisters16( I2C_SLAVE_CAMERA_MICRON_OUT, reg, bufp, size ) : TRUE;
return ri & ro;
}
/*---------------------------------------------------------------------------*
@ -197,31 +173,19 @@ static inline BOOL CAMERA_M_ReadRegisters( CameraSelect camera, u16 reg, u16 *bu
*---------------------------------------------------------------------------*/
static inline BOOL CAMERAi_M_SetParams( CameraSelect camera, u16 reg, u16 setBits, u16 maskBits )
{
BOOL rIn = TRUE;
BOOL rOut = TRUE;
if (camera & CAMERA_SELECT_IN)
{
rIn = I2Ci_SetParams16( I2C_SLAVE_CAMERA_MICRON_IN, reg, setBits, maskBits );
}
if (camera & CAMERA_SELECT_OUT)
{
rOut = I2Ci_SetParams16( I2C_SLAVE_CAMERA_MICRON_OUT, reg, setBits, maskBits );
}
return (rIn && rOut);
BOOL ri = camera & CAMERA_SELECT_IN ?
I2Ci_SetParams16( I2C_SLAVE_CAMERA_MICRON_IN, reg, setBits, maskBits ) : TRUE;
BOOL ro = camera & CAMERA_SELECT_OUT ?
I2Ci_SetParams16( I2C_SLAVE_CAMERA_MICRON_OUT, reg, setBits, maskBits ) : TRUE;
return ri & ro;
}
static inline BOOL CAMERA_M_SetParams( CameraSelect camera, u16 reg, u16 setBits, u16 maskBits )
{
BOOL rIn = TRUE;
BOOL rOut = TRUE;
if (camera & CAMERA_SELECT_IN)
{
rIn = I2C_SetParams16( I2C_SLAVE_CAMERA_MICRON_IN, reg, setBits, maskBits );
}
if (camera & CAMERA_SELECT_OUT)
{
rOut = I2C_SetParams16( I2C_SLAVE_CAMERA_MICRON_OUT, reg, setBits, maskBits );
}
return (rIn && rOut);
BOOL ri = camera & CAMERA_SELECT_IN ?
I2C_SetParams16( I2C_SLAVE_CAMERA_MICRON_IN, reg, setBits, maskBits ) : TRUE;
BOOL ro = camera & CAMERA_SELECT_OUT ?
I2C_SetParams16( I2C_SLAVE_CAMERA_MICRON_OUT, reg, setBits, maskBits ) : TRUE;
return ri & ro;
}
/*---------------------------------------------------------------------------*

View File

@ -44,31 +44,19 @@ extern "C" {
*---------------------------------------------------------------------------*/
static inline BOOL CAMERAi_S_WriteRegister( CameraSelect camera, u8 reg, u8 data )
{
BOOL rIn = TRUE;
BOOL rOut = TRUE;
if (camera & CAMERA_SELECT_IN)
{
rIn = I2Ci_WriteRegister( I2C_SLAVE_CAMERA_SHARP_IN, reg, data );
}
if (camera & CAMERA_SELECT_OUT)
{
rOut = I2Ci_WriteRegister( I2C_SLAVE_CAMERA_SHARP_OUT, reg, data );
}
return (rIn && rOut);
BOOL ri = camera & CAMERA_SELECT_IN ?
I2Ci_WriteRegister( I2C_SLAVE_CAMERA_SHARP_IN, reg, data ) : TRUE;
BOOL ro = camera & CAMERA_SELECT_OUT ?
I2Ci_WriteRegister( I2C_SLAVE_CAMERA_SHARP_OUT, reg, data ) : TRUE;
return ri & ro;
}
static inline BOOL CAMERA_S_WriteRegister( CameraSelect camera, u8 reg, u8 data )
{
BOOL rIn = TRUE;
BOOL rOut = TRUE;
if (camera & CAMERA_SELECT_IN)
{
rIn = I2C_WriteRegister( I2C_SLAVE_CAMERA_SHARP_IN, reg, data );
}
if (camera & CAMERA_SELECT_OUT)
{
rOut = I2C_WriteRegister( I2C_SLAVE_CAMERA_SHARP_OUT, reg, data );
}
return (rIn && rOut);
BOOL ri = camera & CAMERA_SELECT_IN ?
I2C_WriteRegister( I2C_SLAVE_CAMERA_SHARP_IN, reg, data ) : TRUE;
BOOL ro = camera & CAMERA_SELECT_OUT ?
I2C_WriteRegister( I2C_SLAVE_CAMERA_SHARP_OUT, reg, data ) : TRUE;
return ri & ro;
}
/*---------------------------------------------------------------------------*
@ -118,31 +106,19 @@ static inline u8 CAMERA_S_ReadRegister( CameraSelect camera, u8 reg )
*---------------------------------------------------------------------------*/
static inline BOOL CAMERAi_S_WriteRegisters( CameraSelect camera, u8 reg, const u8 *bufp, size_t size )
{
BOOL rIn = TRUE;
BOOL rOut = TRUE;
if (camera & CAMERA_SELECT_IN)
{
rIn = I2Ci_WriteRegisters( I2C_SLAVE_CAMERA_SHARP_IN, reg, bufp, size );
}
if (camera & CAMERA_SELECT_OUT)
{
rOut = I2Ci_WriteRegisters( I2C_SLAVE_CAMERA_SHARP_OUT, reg, bufp, size );
}
return (rIn && rOut);
BOOL ri = camera & CAMERA_SELECT_IN ?
I2Ci_WriteRegisters( I2C_SLAVE_CAMERA_SHARP_IN, reg, bufp, size ) : TRUE;
BOOL ro = camera & CAMERA_SELECT_OUT ?
I2Ci_WriteRegisters( I2C_SLAVE_CAMERA_SHARP_OUT, reg, bufp, size ) : TRUE;
return ri & ro;
}
static inline BOOL CAMERA_S_WriteRegisters( CameraSelect camera, u8 reg, const u8 *bufp, size_t size )
{
BOOL rIn = TRUE;
BOOL rOut = TRUE;
if (camera & CAMERA_SELECT_IN)
{
rIn = I2C_WriteRegisters( I2C_SLAVE_CAMERA_SHARP_IN, reg, bufp, size );
}
if (camera & CAMERA_SELECT_OUT)
{
rOut = I2C_WriteRegisters( I2C_SLAVE_CAMERA_SHARP_OUT, reg, bufp, size );
}
return (rIn && rOut);
BOOL ri = camera & CAMERA_SELECT_IN ?
I2C_WriteRegisters( I2C_SLAVE_CAMERA_SHARP_IN, reg, bufp, size ) : TRUE;
BOOL ro = camera & CAMERA_SELECT_OUT ?
I2C_WriteRegisters( I2C_SLAVE_CAMERA_SHARP_OUT, reg, bufp, size ) : TRUE;
return ri & ro;
}
/*---------------------------------------------------------------------------*
@ -197,31 +173,19 @@ static inline BOOL CAMERA_S_ReadRegisters( CameraSelect camera, u8 reg, u8 *bufp
*---------------------------------------------------------------------------*/
static inline BOOL CAMERAi_S_SetParams( CameraSelect camera, u8 reg, u8 setBits, u8 maskBits )
{
BOOL rIn = TRUE;
BOOL rOut = TRUE;
if (camera & CAMERA_SELECT_IN)
{
rIn = I2Ci_SetParams( I2C_SLAVE_CAMERA_SHARP_IN, reg, setBits, maskBits );
}
if (camera & CAMERA_SELECT_OUT)
{
rOut = I2Ci_SetParams( I2C_SLAVE_CAMERA_SHARP_OUT, reg, setBits, maskBits );
}
return (rIn && rOut);
BOOL ri = camera & CAMERA_SELECT_IN ?
I2Ci_SetParams( I2C_SLAVE_CAMERA_SHARP_IN, reg, setBits, maskBits ) : TRUE;
BOOL ro = camera & CAMERA_SELECT_OUT ?
I2Ci_SetParams( I2C_SLAVE_CAMERA_SHARP_OUT, reg, setBits, maskBits ) : TRUE;
return ri & ro;
}
static inline BOOL CAMERA_S_SetParams( CameraSelect camera, u8 reg, u8 setBits, u8 maskBits )
{
BOOL rIn = TRUE;
BOOL rOut = TRUE;
if (camera & CAMERA_SELECT_IN)
{
rIn = I2C_SetParams( I2C_SLAVE_CAMERA_SHARP_IN, reg, setBits, maskBits );
}
if (camera & CAMERA_SELECT_OUT)
{
rOut = I2C_SetParams( I2C_SLAVE_CAMERA_SHARP_OUT, reg, setBits, maskBits );
}
return (rIn && rOut);
BOOL ri = camera & CAMERA_SELECT_IN ?
I2C_SetParams( I2C_SLAVE_CAMERA_SHARP_IN, reg, setBits, maskBits ) : TRUE;
BOOL ro = camera & CAMERA_SELECT_OUT ?
I2C_SetParams( I2C_SLAVE_CAMERA_SHARP_OUT, reg, setBits, maskBits ) : TRUE;
return ri & ro;
}
/*---------------------------------------------------------------------------*