- add PowerOnSensor() virtual,
- Add Or/And reg helpers. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31626 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -305,6 +305,13 @@ CamDevice::Lock()
|
||||
}
|
||||
|
||||
|
||||
status_t
|
||||
CamDevice::PowerOnSensor(bool on)
|
||||
{
|
||||
return B_OK;
|
||||
}
|
||||
|
||||
|
||||
ssize_t
|
||||
CamDevice::WriteReg(uint16 address, uint8 *data, size_t count)
|
||||
{
|
||||
@@ -337,6 +344,29 @@ CamDevice::ReadReg(uint16 address, uint8 *data, size_t count, bool cached)
|
||||
}
|
||||
|
||||
|
||||
ssize_t
|
||||
CamDevice::OrReg8(uint16 address, uint8 data, uint8 mask)
|
||||
{
|
||||
uint8 value;
|
||||
if (ReadReg(address, &value, 1, true) < 1)
|
||||
return EIO;
|
||||
value &= mask;
|
||||
value |= data;
|
||||
return WriteReg8(address, value);
|
||||
}
|
||||
|
||||
|
||||
ssize_t
|
||||
CamDevice::AndReg8(uint16 address, uint8 data)
|
||||
{
|
||||
uint8 value;
|
||||
if (ReadReg(address, &value, 1, true) < 1)
|
||||
return EIO;
|
||||
value &= data;
|
||||
return WriteReg8(address, value);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
status_t
|
||||
CamDevice::GetStatusIIC()
|
||||
|
||||
@@ -91,11 +91,16 @@ class CamDevice {
|
||||
// sensor chip handling
|
||||
CamSensor* Sensor() const { return fSensor; };
|
||||
|
||||
virtual status_t PowerOnSensor(bool on);
|
||||
|
||||
// generic register-like access
|
||||
virtual ssize_t WriteReg(uint16 address, uint8 *data, size_t count=1);
|
||||
virtual ssize_t WriteReg8(uint16 address, uint8 data);
|
||||
virtual ssize_t WriteReg16(uint16 address, uint16 data);
|
||||
virtual ssize_t ReadReg(uint16 address, uint8 *data, size_t count=1, bool cached=false);
|
||||
|
||||
ssize_t OrReg8(uint16 address, uint8 data, uint8 mask=0xff);
|
||||
ssize_t AndReg8(uint16 address, uint8 data);
|
||||
|
||||
// I2C-like access
|
||||
//virtual status_t GetStatusIIC();
|
||||
|
||||
Reference in New Issue
Block a user