piSmasher Configuration Libraries
piSmasher peripheral device configuration libraries

Functions

static int tda998x_write (struct tda998x_dev *dev, enum tda998x_hdmi_reg reg, uint8_t len, uint8_t *data)
 Write Data. More...
 
static int write_reg (struct tda998x_dev *dev, enum tda998x_hdmi_reg reg, uint8_t data)
 Write Register. More...
 
static int write_reg16 (struct tda998x_dev *dev, enum tda998x_hdmi_reg reg, uint16_t data)
 Write 16-bit Register. More...
 
static int tda998x_read (struct tda998x_dev *dev, enum tda998x_hdmi_reg reg, uint8_t len, uint8_t *data)
 Read Data. More...
 
static int read_reg (struct tda998x_dev *dev, enum tda998x_hdmi_reg reg, uint8_t *data)
 Read Register. More...
 
static int write_reg_mask (struct tda998x_dev *dev, enum tda998x_hdmi_reg reg, uint8_t mask, uint8_t val)
 Register Mask Write Write a value with mask bits to a register. More...
 
static int tda998x_cec_write (struct tda998x_dev *dev, enum tda998x_cec_reg reg, uint8_t len, uint8_t *data)
 CEC Write Data. More...
 
static int cec_write_reg (struct tda998x_dev *dev, enum tda998x_cec_reg reg, uint8_t data)
 CEC Write Register. More...
 
static int tda998x_cec_read (struct tda998x_dev *dev, enum tda998x_cec_reg reg, uint8_t len, uint8_t *data)
 CEC Read Data. More...
 
static int cec_read_reg (struct tda998x_dev *dev, enum tda998x_cec_reg reg, uint8_t *data)
 CEC Read Register. More...
 
static int cec_write_reg_mask (struct tda998x_dev *dev, enum tda998x_cec_reg reg, uint8_t mask, uint8_t val)
 CEC Register Mask Write Write a specified value with specified mask bits to a register. More...
 

Detailed Description

Function Documentation

◆ cec_read_reg()

static int cec_read_reg ( struct tda998x_dev dev,
enum tda998x_cec_reg  reg,
uint8_t *  data 
)
static

#include <projects/lib/tda998x.c>

CEC Read Register.

Parameters
devTDA998X device structure pointer
regRegister and page address
dataPointer to data to read to
Returns
Number of bytes read or less-than-zero error status
1469 {
1470  return tda998x_cec_read(dev, reg, 1, data);
1471 }
static int tda998x_cec_read(struct tda998x_dev *dev, enum tda998x_cec_reg reg, uint8_t len, uint8_t *data)
CEC Read Data.
Definition: tda998x.c:1442

◆ cec_write_reg()

static int cec_write_reg ( struct tda998x_dev dev,
enum tda998x_cec_reg  reg,
uint8_t  data 
)
static

#include <projects/lib/tda998x.c>

CEC Write Register.

Parameters
devTDA998X device structure pointer
regRegister and page address
dataData value to write to register
Returns
Number of bytes written or less-than-zero error status
1426 {
1427  uint8_t tmp = data;
1428 
1429  return tda998x_cec_write(dev, reg, 1, &tmp);
1430 }
static int tda998x_cec_write(struct tda998x_dev *dev, enum tda998x_cec_reg reg, uint8_t len, uint8_t *data)
CEC Write Data.
Definition: tda998x.c:1399

◆ cec_write_reg_mask()

static int cec_write_reg_mask ( struct tda998x_dev dev,
enum tda998x_cec_reg  reg,
uint8_t  mask,
uint8_t  val 
)
static

#include <projects/lib/tda998x.c>

CEC Register Mask Write Write a specified value with specified mask bits to a register.

Parameters
devTDA99X device structure pointer
regRegister and page address
maskMask of bits to be transformed
valBitfield to be written within mask
Returns
Number of bytes written or less-than-zero error status
1488 {
1489  int err;
1490  uint8_t reg_val;
1491 
1492  err = cec_read_reg(dev, reg, &reg_val);
1493  if (err < 0)
1494  return err;
1495 
1496  reg_val &= ~(mask);
1497  reg_val |= val & mask;
1498 
1499  return cec_write_reg(dev, reg, reg_val);
1500 }
static int cec_read_reg(struct tda998x_dev *dev, enum tda998x_cec_reg reg, uint8_t *data)
CEC Read Register.
Definition: tda998x.c:1468
static int cec_write_reg(struct tda998x_dev *dev, enum tda998x_cec_reg reg, uint8_t data)
CEC Write Register.
Definition: tda998x.c:1425

◆ read_reg()

static int read_reg ( struct tda998x_dev dev,
enum tda998x_hdmi_reg  reg,
uint8_t *  data 
)
static

#include <projects/lib/tda998x.c>

Read Register.

Parameters
devTDA998X device structure pointer
regRegister and page address
dataPointer to data to read to
Returns
Number of bytes read or less-than-zero error status
1356 {
1357  return tda998x_read(dev, reg, 1, data);
1358 }
static int tda998x_read(struct tda998x_dev *dev, enum tda998x_hdmi_reg reg, uint8_t len, uint8_t *data)
Read Data.
Definition: tda998x.c:1319

◆ tda998x_cec_read()

static int tda998x_cec_read ( struct tda998x_dev dev,
enum tda998x_cec_reg  reg,
uint8_t  len,
uint8_t *  data 
)
static

#include <projects/lib/tda998x.c>

CEC Read Data.

Parameters
devTDA998X device structure pointer
regStart register and page address
lenLength of data to read from device
dataPointer to data to read to
Returns
Number of bytes read or less-than-zero error status
1446 {
1447  int i, err;
1448  struct tda998x_cfg *cfg = dev->cfg;
1449 
1450  for (i = 0; i < len; i++, data++) {
1451  err = cfg->i2c_read(cfg->cec_addr, (uint8_t)reg + i, data);
1452  if (err < 0)
1453  return err;
1454  }
1455 
1456  return i;
1457 }
TDA998X driver configuration.
Definition: tda998x.h:463

◆ tda998x_cec_write()

static int tda998x_cec_write ( struct tda998x_dev dev,
enum tda998x_cec_reg  reg,
uint8_t  len,
uint8_t *  data 
)
static

#include <projects/lib/tda998x.c>

CEC Write Data.

Parameters
devTDA998X device structure pointer
regStart register and page address
lenLength of data to write to device
dataPointer to data to write from
Returns
Number of bytes written or less-than-zero error status
1403 {
1404  int i, err;
1405  struct tda998x_cfg *cfg = dev->cfg;
1406 
1407  for (i = 0; i < len; i++, data++) {
1408  err = cfg->i2c_write(cfg->cec_addr, (uint8_t)reg + i, data);
1409  if (err < 0)
1410  return err;
1411  }
1412 
1413  return i;
1414 }
TDA998X driver configuration.
Definition: tda998x.h:463

◆ tda998x_read()

static int tda998x_read ( struct tda998x_dev dev,
enum tda998x_hdmi_reg  reg,
uint8_t  len,
uint8_t *  data 
)
static

#include <projects/lib/tda998x.c>

Read Data.

Parameters
devTDA998X device structure pointer
regStart register and page address
lenLength of data to read from device
dataPointer to data to read to
Returns
Number of bytes read or less-than-zero error status
1323 {
1324  int i, err;
1325  struct tda998x_cfg *cfg = dev->cfg;
1326  uint8_t page = PAGE_OF(reg);
1327 
1328  if (dev->cfg->cur_page != page) {
1329  /* Change the page */
1330  err = cfg->i2c_write(cfg->hdmi_addr, (uint8_t) CURPAGE, &page);
1331  if (err < 0)
1332  return err;
1333 
1334  dev->cfg->cur_page = page;
1335  }
1336 
1337  for (i = 0; i < len; i++, data++) {
1338  err = cfg->i2c_read(cfg->hdmi_addr, (uint8_t) reg + i, data);
1339  if (err < 0)
1340  return err;
1341  }
1342 
1343  return i;
1344 }
TDA998X driver configuration.
Definition: tda998x.h:463

◆ tda998x_write()

static int tda998x_write ( struct tda998x_dev dev,
enum tda998x_hdmi_reg  reg,
uint8_t  len,
uint8_t *  data 
)
static

#include <projects/lib/tda998x.c>

Write Data.

Parameters
devTDA998X device structure pointer
regStart register and page address
lenLength of data to write to device
dataPointer to data to write from
Returns
Number of bytes written or less-than-zero error status
1251 {
1252  int i, err;
1253  struct tda998x_cfg *cfg = dev->cfg;
1254  uint8_t page = PAGE_OF(reg);
1255 
1256  if (dev->cfg->cur_page != page) {
1257  /* Change the page */
1258  err = cfg->i2c_write(cfg->hdmi_addr, (uint8_t) CURPAGE, &page);
1259  if (err < 0)
1260  return err;
1261 
1262  dev->cfg->cur_page = page;
1263  }
1264 
1265  for (i = 0; i < len; i++, data++) {
1266  err = cfg->i2c_write(cfg->hdmi_addr, (uint8_t)reg + i, data);
1267  if (err < 0)
1268  return err;
1269  }
1270 
1271  return i;
1272 }
TDA998X driver configuration.
Definition: tda998x.h:463

◆ write_reg()

static int write_reg ( struct tda998x_dev dev,
enum tda998x_hdmi_reg  reg,
uint8_t  data 
)
static

#include <projects/lib/tda998x.c>

Write Register.

Parameters
devTDA998X device structure pointer
regRegister and page address
dataData value to write to register
Returns
Number of bytes written or less-than-zero error status
1284 {
1285  uint8_t tmp = data;
1286 
1287  return tda998x_write(dev, reg, 1, &tmp);
1288 }
static int tda998x_write(struct tda998x_dev *dev, enum tda998x_hdmi_reg reg, uint8_t len, uint8_t *data)
Write Data.
Definition: tda998x.c:1247

◆ write_reg16()

static int write_reg16 ( struct tda998x_dev dev,
enum tda998x_hdmi_reg  reg,
uint16_t  data 
)
static

#include <projects/lib/tda998x.c>

Write 16-bit Register.

Parameters
devTDA998x device structure pointer
regRegister and page address enumeration
data16-bit data value to write
Returns
Number of bytes written or less-than-zero error status
1300 {
1301  uint8_t buf[2];
1302 
1303  buf[0] = (data & 0xFF00U) >> 8;
1304  buf[1] = (uint8_t) data & 0x00FFU;
1305 
1306  return tda998x_write(dev, reg, 2, buf);
1307 }
static int tda998x_write(struct tda998x_dev *dev, enum tda998x_hdmi_reg reg, uint8_t len, uint8_t *data)
Write Data.
Definition: tda998x.c:1247

◆ write_reg_mask()

static int write_reg_mask ( struct tda998x_dev dev,
enum tda998x_hdmi_reg  reg,
uint8_t  mask,
uint8_t  val 
)
static

#include <projects/lib/tda998x.c>

Register Mask Write Write a value with mask bits to a register.

Parameters
devTDA998X device structure pointer
regRegister and page address
maskMask of bits to be transformed
valBitfield to be written within mask
Returns
Number of bytes written or less-than-zero error status
1375 {
1376  int err;
1377  uint8_t reg_val;
1378 
1379  err = read_reg(dev, reg, &reg_val);
1380  if (err < 0)
1381  return err;
1382 
1383  reg_val &= ~(mask); /* clear bits in the mask */
1384  reg_val |= val & mask; /* set masked value bits */
1385 
1386  return write_reg(dev, reg, reg_val);
1387 }
static int read_reg(struct tda998x_dev *dev, enum tda998x_hdmi_reg reg, uint8_t *data)
Read Register.
Definition: tda998x.c:1355
static int write_reg(struct tda998x_dev *dev, enum tda998x_hdmi_reg reg, uint8_t data)
Write Register.
Definition: tda998x.c:1283