Naming rationalization.

git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@15673 27425a3e-05d8-49a3-a47f-9c15f0e5edd8
This commit is contained in:
Giovanni Di Sirio 2022-07-02 06:47:53 +00:00
parent d39e30fc10
commit e0d0d5bee1
4 changed files with 33 additions and 29 deletions

View File

@ -31,9 +31,9 @@
/*===========================================================================*/
static vio_gpio_inst_t gpio_inst1 = {
.n = 1U,
.ports = {
[0] = {
.n = 1U,
.units = {
[0] = {
.permissions = VIO_GPIO_PERM_WRITE,
.port = GPIOA,
.mask = 1U,
@ -43,15 +43,19 @@ static vio_gpio_inst_t gpio_inst1 = {
};
static vio_gpio_inst_t gpio_inst2 = {
.n = 0U
.n = 0U
};
static vio_conf_t vio_config1 = {
.gpios = &gpio_inst1
.gpios = &gpio_inst1,
.uarts = NULL,
.uartconfs = NULL
};
static vio_conf_t vio_config2 = {
.gpios = &gpio_inst2
.gpios = &gpio_inst2,
.uarts = NULL,
.uartconfs = NULL
};
/*===========================================================================*/

View File

@ -57,51 +57,51 @@ void sb_api_vio_gpio(struct port_extctx *ectxp) {
sb_class_t *sbp = (sb_class_t *)chThdGetSelfX()->ctx.syscall.p;
uint32_t sub = (unsigned)ectxp->r0;
uint32_t vport = (unsigned)ectxp->r1;
const vio_port_t *vportp;
const vio_gpio_unit_t *unitp;
ectxp->r0 = 0U;
if (vport >= sbp->config->vioconf->gpios->n) {
return;
}
vportp = &sbp->config->vioconf->gpios->ports[vport];
unitp = &sbp->config->vioconf->gpios->units[vport];
switch (sub) {
case SB_VGPIO_WRITE:
if ((vportp->permissions & VIO_GPIO_PERM_WRITE) != 0U) {
palWriteGroup(vportp->port, vportp->mask, vportp->offset, ectxp->r2);
if ((unitp->permissions & VIO_GPIO_PERM_WRITE) != 0U) {
palWriteGroup(unitp->port, unitp->mask, unitp->offset, ectxp->r2);
}
break;
case SB_VGPIO_SET:
if ((vportp->permissions & VIO_GPIO_PERM_WRITE) != 0U) {
uint32_t val = palReadGroup(vportp->port, vportp->mask, vportp->offset);
palWriteGroup(vportp->port, vportp->mask, vportp->offset, ectxp->r2 | val);
if ((unitp->permissions & VIO_GPIO_PERM_WRITE) != 0U) {
uint32_t val = palReadGroup(unitp->port, unitp->mask, unitp->offset);
palWriteGroup(unitp->port, unitp->mask, unitp->offset, ectxp->r2 | val);
}
break;
case SB_VGPIO_CLEAR:
if ((vportp->permissions & VIO_GPIO_PERM_WRITE) != 0U) {
uint32_t val = palReadGroup(vportp->port, vportp->mask, vportp->offset);
palWriteGroup(vportp->port, vportp->mask, vportp->offset, ectxp->r2 & ~val);
if ((unitp->permissions & VIO_GPIO_PERM_WRITE) != 0U) {
uint32_t val = palReadGroup(unitp->port, unitp->mask, unitp->offset);
palWriteGroup(unitp->port, unitp->mask, unitp->offset, ectxp->r2 & ~val);
}
break;
case SB_VGPIO_TOGGLE:
if ((vportp->permissions & VIO_GPIO_PERM_WRITE) != 0U) {
uint32_t val = palReadGroup(vportp->port, vportp->mask, vportp->offset);
palWriteGroup(vportp->port, vportp->mask, vportp->offset, ectxp->r2 ^ val);
if ((unitp->permissions & VIO_GPIO_PERM_WRITE) != 0U) {
uint32_t val = palReadGroup(unitp->port, unitp->mask, unitp->offset);
palWriteGroup(unitp->port, unitp->mask, unitp->offset, ectxp->r2 ^ val);
}
break;
case SB_VGPIO_READLATCH:
if ((vportp->permissions & VIO_GPIO_PERM_WRITE) != 0U) {
ectxp->r0 = palReadGroupLatch(vportp->port, vportp->mask, vportp->offset);
if ((unitp->permissions & VIO_GPIO_PERM_WRITE) != 0U) {
ectxp->r0 = palReadGroupLatch(unitp->port, unitp->mask, unitp->offset);
}
break;
case SB_VGPIO_READ:
if ((vportp->permissions & VIO_GPIO_PERM_READ) != 0U) {
ectxp->r0 = palReadGroup(vportp->port, vportp->mask, vportp->offset);
if ((unitp->permissions & VIO_GPIO_PERM_READ) != 0U) {
ectxp->r0 = palReadGroup(unitp->port, unitp->mask, unitp->offset);
}
break;
case SB_VGPIO_SETMODE:
if ((vportp->permissions & VIO_GPIO_PERM_SETMODE) != 0U) {
if ((unitp->permissions & VIO_GPIO_PERM_SETMODE) != 0U) {
/* TODO */
}
break;

View File

@ -61,21 +61,21 @@
/*===========================================================================*/
/**
* @brief Type of a VIO GPIO configuration structure.
* @brief Type of a VIO GPIO unit representation.
*/
typedef struct vio_port {
typedef struct vio_gpio_unit {
uint32_t permissions;
ioportid_t port;
ioportmask_t mask;
uint32_t offset;
} vio_port_t;
} vio_gpio_unit_t;
/**
* @brief Type of a VIO GPIOs configuration structure.
*/
typedef struct vio_gpio_inst {
uint32_t n;
vio_port_t ports[];
vio_gpio_unit_t units[];
} vio_gpio_inst_t;
/*===========================================================================*/

View File

@ -64,7 +64,7 @@ typedef struct vio_uart_inst {
*/
typedef struct vio_uart_conf {
uint32_t n;
// vio_port_conf_t uarts[];
// vio_port_conf_t cfgs[];
} vio_uart_conf_t;
/*===========================================================================*/