- 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
|
ssize_t
|
||||||
CamDevice::WriteReg(uint16 address, uint8 *data, size_t count)
|
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
|
status_t
|
||||||
CamDevice::GetStatusIIC()
|
CamDevice::GetStatusIIC()
|
||||||
|
|||||||
@@ -91,11 +91,16 @@ class CamDevice {
|
|||||||
// sensor chip handling
|
// sensor chip handling
|
||||||
CamSensor* Sensor() const { return fSensor; };
|
CamSensor* Sensor() const { return fSensor; };
|
||||||
|
|
||||||
|
virtual status_t PowerOnSensor(bool on);
|
||||||
|
|
||||||
// generic register-like access
|
// generic register-like access
|
||||||
virtual ssize_t WriteReg(uint16 address, uint8 *data, size_t count=1);
|
virtual ssize_t WriteReg(uint16 address, uint8 *data, size_t count=1);
|
||||||
virtual ssize_t WriteReg8(uint16 address, uint8 data);
|
virtual ssize_t WriteReg8(uint16 address, uint8 data);
|
||||||
virtual ssize_t WriteReg16(uint16 address, uint16 data);
|
virtual ssize_t WriteReg16(uint16 address, uint16 data);
|
||||||
virtual ssize_t ReadReg(uint16 address, uint8 *data, size_t count=1, bool cached=false);
|
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
|
// I2C-like access
|
||||||
//virtual status_t GetStatusIIC();
|
//virtual status_t GetStatusIIC();
|
||||||
|
|||||||
Reference in New Issue
Block a user