stm32f7: add CANIOC_SET_NART and CANIOC_SET_ABOM ioctl's to can driver
This commit is contained in:
parent
676a2b77f8
commit
f6039bbfa7
@ -1134,6 +1134,50 @@ static int stm32can_ioctl(FAR struct can_dev_s *dev, int cmd,
|
||||
}
|
||||
break;
|
||||
|
||||
case CANIOC_SET_NART:
|
||||
{
|
||||
uint32_t regval;
|
||||
ret = stm32can_enterinitmode(priv);
|
||||
if (ret != 0)
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
regval = stm32can_getreg(priv, STM32_CAN_MCR_OFFSET);
|
||||
if (arg == 1)
|
||||
{
|
||||
regval |= CAN_MCR_NART;
|
||||
}
|
||||
else
|
||||
{
|
||||
regval &= ~CAN_MCR_NART;
|
||||
}
|
||||
stm32can_putreg(priv, STM32_CAN_MCR_OFFSET, regval);
|
||||
return stm32can_exitinitmode(priv);
|
||||
}
|
||||
break;
|
||||
|
||||
case CANIOC_SET_ABOM:
|
||||
{
|
||||
uint32_t regval;
|
||||
ret = stm32can_enterinitmode(priv);
|
||||
if (ret != 0)
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
regval = stm32can_getreg(priv, STM32_CAN_MCR_OFFSET);
|
||||
if (arg == 1)
|
||||
{
|
||||
regval |= CAN_MCR_ABOM;
|
||||
}
|
||||
else
|
||||
{
|
||||
regval &= ~CAN_MCR_ABOM;
|
||||
}
|
||||
stm32can_putreg(priv, STM32_CAN_MCR_OFFSET, regval);
|
||||
return stm32can_exitinitmode(priv);
|
||||
}
|
||||
break;
|
||||
|
||||
/* Unsupported/unrecognized command */
|
||||
|
||||
default:
|
||||
|
@ -197,6 +197,24 @@
|
||||
* is returned with the errno variable set to indicate the
|
||||
* nature of the error.
|
||||
* Dependencies: None
|
||||
*
|
||||
* CANIOC_SET_NART:
|
||||
* Description: Enable/Disable NART (No Automatic Retry)
|
||||
* Argument: Set to 1 to enable NART, 0 to disable. Default is
|
||||
* disabled.
|
||||
* Returned Value: Zero (OK) is returned on success. Otherwise -1 (ERROR)
|
||||
* is returned with the errno variable set to indicate the
|
||||
* nature of the error.
|
||||
* Dependencies: None
|
||||
*
|
||||
* CANIOC_SET_ABOM:
|
||||
* Description: Enable/Disable ABOM (Automatic Bus-off Management)
|
||||
* Argument: Set to 1 to enable ABOM, 0 to disable. Default is
|
||||
* disabled.
|
||||
* Returned Value: Zero (OK) is returned on success. Otherwise -1 (ERROR)
|
||||
* is returned with the errno variable set to indicate the
|
||||
* nature of the error.
|
||||
* Dependencies: None
|
||||
*/
|
||||
|
||||
#define CANIOC_RTR _CANIOC(1)
|
||||
@ -209,9 +227,11 @@
|
||||
#define CANIOC_GET_CONNMODES _CANIOC(8)
|
||||
#define CANIOC_SET_CONNMODES _CANIOC(9)
|
||||
#define CANIOC_BUSOFF_RECOVERY _CANIOC(10)
|
||||
#define CANIOC_SET_NART _CANIOC(11)
|
||||
#define CANIOC_SET_ABOM _CANIOC(12)
|
||||
|
||||
#define CAN_FIRST 0x0001 /* First common command */
|
||||
#define CAN_NCMDS 10 /* Ten common commands */
|
||||
#define CAN_NCMDS 12 /* Ten common commands */
|
||||
|
||||
/* User defined ioctl commands are also supported. These will be forwarded
|
||||
* by the upper-half CAN driver to the lower-half CAN driver via the co_ioctl()
|
||||
|
Loading…
Reference in New Issue
Block a user