Lines Matching +full:tx +full:- +full:buffer +full:- +full:elements
5 * SPDX-License-Identifier: Apache-2.0
305 /* Rx Buffer Configuration register */
328 /* Rx Buffer/FIFO Element Size Configuration register */
334 /* Tx Buffer Configuration register */
341 /* Tx FIFO/Queue Status register */
348 /* Tx Buffer Element Size Configuration register */
352 /* Tx Buffer Request Pending register */
356 /* Tx Buffer Add Request register */
360 /* Tx Buffer Cancellation Request register */
364 /* Tx Buffer Transmission Occurred register */
368 /* Tx Buffer Cancellation Finished register */
372 /* Tx Buffer Transmission Interrupt Enable register */
376 /* Tx Buffer Cancellation Finished Interrupt Enable register */
380 /* Tx Event FIFO Configuration register */
386 /* Tx Event FIFO Status register */
394 /* Tx Event FIFO Acknowledge register */
399 * @name Indexes for the cells in the devicetree bosch,mram-cfg property
402 * These match the description of the cells in the bosch,m_can-base devicetree binding.
408 /** std-filter-elements cell index */
410 /** ext-filter-elements cell index */
412 /** rx-fifo0-elements cell index */
414 /** rx-fifo1-elements cell index */
416 /** rx-buffer-elements cell index */
418 /** tx-event-fifo-elements cell index */
420 /** tx-buffer-elements cell index */
422 /** Total number of cells in bosch,mram-cfg property */
437 * @brief Get the number of standard (11-bit) filter elements in Bosch M_CAN Message RAM
440 * @return the number of standard (11-bit) filter elements
446 * @brief Get the number of extended (29-bit) filter elements in Bosch M_CAN Message RAM
449 * @return the number of extended (29-bit) filter elements
455 * @brief Get the number of Rx FIFO 0 elements in Bosch M_CAN Message RAM
458 * @return the number of Rx FIFO 0 elements
464 * @brief Get the number of Rx FIFO 1 elements in Bosch M_CAN Message RAM
467 * @return the number of Rx FIFO 1 elements
473 * @brief Get the number of Rx Buffer elements in Bosch M_CAN Message RAM
476 * @return the number of Rx Buffer elements
482 * @brief Get the number of Tx Event FIFO elements in Bosch M_CAN Message RAM
485 * @return the number of Tx Event FIFO elements
491 * @brief Get the number of Tx Buffer elements in Bosch M_CAN Message RAM
494 * @return the number of Tx Buffer elements
500 * @brief Get the base offset of standard (11-bit) filter elements in Bosch M_CAN Message RAM
503 * @return the base offset of standard (11-bit) filter elements in bytes
508 * @brief Get the base offset of extended (29-bit) filter elements in Bosch M_CAN Message RAM
511 * @return the base offset of extended (29-bit) filter elements in bytes
518 * @brief Get the base offset of Rx FIFO 0 elements in Bosch M_CAN Message RAM
521 * @return the base offset of Rx FIFO 0 elements in bytes
528 * @brief Get the base offset of Rx FIFO 1 elements in Bosch M_CAN Message RAM
531 * @return the base offset of Rx FIFO 1 elements in bytes
538 * @brief Get the base offset of Rx Buffer elements in Bosch M_CAN Message RAM
541 * @return the base offset of Rx Buffer elements in bytes
548 * @brief Get the base offset of Tx Event FIFO elements in Bosch M_CAN Message RAM
551 * @return the base offset of Tx Event FIFO elements in bytes
558 * @brief Get the base offset of Tx Buffer elements in Bosch M_CAN Message RAM
561 * @return the base offset of Tx Buffer elements in bytes
618 (mem_addr_t)(DT_REG_SIZE_BY_NAME(node_id, message_ram) - CAN_MCAN_DT_MRAM_OFFSET(node_id))
621 * @brief Get the total size of all Bosch M_CAN Message RAM elements
624 * @return the total size of all Message RAM elements in bytes
632 * @brief Define a RAM buffer for Bosch M_CAN Message RAM
634 * For devicetree nodes without dedicated Message RAM area, this macro defines a suitable RAM buffer
635 * to hold the Message RAM elements. Since this buffer cannot be shared between multiple Bosch M_CAN
639 * @param _name buffer variable name
652 "Maximum Standard filter elements exceeded"); \
654 "Maximum Extended filter elements exceeded"); \
656 "Maximum Rx FIFO 0 elements exceeded"); \
658 "Maximum Rx FIFO 1 elements exceeded"); \
660 "Maximum Rx Buffer elements exceeded"); \
662 "Maximum Tx Buffer elements exceeded"); \
664 "Maximum Tx Buffer elements exceeded");
677 * @return the number of standard (11-bit) elements
686 * @return the number of extended (29-bit) elements
695 * @return the number of Rx FIFO 0 elements
704 * @return the number of Rx FIFO 1 elements
713 * @return the number of Rx Buffer elements
722 * @return the number of Tx Event FIFO elements
731 * @return the number of Tx Buffer elements
740 * @return the base offset of standard (11-bit) filter elements in bytes
749 * @return the base offset of extended (29-bit) filter elements in bytes
758 * @return the base offset of Rx FIFO 0 elements in bytes
767 * @return the base offset of Rx FIFO 1 elements in bytes
776 * @return the base offset of Rx Buffer elements in bytes
785 * @return the base offset of Tx Event FIFO elements in bytes
794 * @return the base offset of Tx Buffer elements in bytes
835 * @return the total size of all Message RAM elements in bytes
843 * @param _name buffer variable name
905 * @brief Bosch M_CAN Rx Buffer and FIFO Element header
933 * @brief Bosch M_CAN Rx Buffer and FIFO Element
946 * @brief Bosch M_CAN Tx Buffer Element header
974 * @brief Bosch M_CAN Tx Buffer Element
987 * @brief Bosch M_CAN Tx Event FIFO Element
1072 * @brief Bosch M_CAN driver front-end callback for reading a register value
1079 * @retval -ENOTSUP Register not supported.
1080 * @retval -EIO General input/output error.
1085 * @brief Bosch M_CAN driver front-end callback for writing a register value
1092 * @retval -ENOTSUP Register not supported.
1093 * @retval -EIO General input/output error.
1098 * @brief Bosch M_CAN driver front-end callback for reading from Message RAM
1102 * offset must be 32-bit aligned.
1103 * @param[out] dst Destination for the data read. The destination address must be 32-bit aligned.
1107 * @retval -EIO General input/output error.
1113 * @brief Bosch M_CAN driver front-end callback for writing to Message RAM
1117 * offset must be 32-bit aligned.
1118 * @param src Source for the data to be written. The source address must be 32-bit aligned.
1122 * @retval -EIO General input/output error.
1128 * @brief Bosch M_CAN driver front-end callback for clearing Message RAM
1134 * offset must be 32-bit aligned.
1138 * @retval -EIO General input/output error.
1143 * @brief Bosch M_CAN driver front-end operations.
1154 * @brief Bosch M_CAN driver internal Tx callback structure.
1170 * @brief Bosch M_CAN driver internal Tx + Rx callbacks structure.
1173 struct can_mcan_tx_callback *tx; member
1182 * @brief Define Bosch M_CAN TX and RX callbacks
1185 * the required software resources (e.g. limit the number of the standard (11-bit) or extended
1186 * (29-bit) filters in use).
1192 * @param _tx Number of Tx callbacks
1193 * @param _std Number of standard (11-bit) filter callbacks
1194 * @param _ext Number of extended (29-bit) filter callbacks
1202 .tx = _name##_tx_cbs, \
1211 * @brief Define Bosch M_CAN TX and RX callbacks
1244 * @brief Get an array containing the number of elements in Bosch M_CAN Message RAM
1249 * @return array of number of elements
1269 * @return array of base offsets for elements
1288 * @param _ops Pointer to front-end @a can_mcan_ops
1289 * @param _cbs Pointer to front-end @a can_mcan_callbacks
1320 * @param _ops Pointer to front-end @a can_mcan_ops
1321 * @param _cbs Pointer to front-end @a can_mcan_callbacks
1337 * @brief Bosch M_CAN driver front-end callback helper for reading a memory mapped register
1353 * @brief Bosch M_CAN driver front-end callback helper for writing a memory mapped register
1369 * @brief Bosch M_CAN driver front-end callback helper for reading from memory mapped Message RAM
1372 * must be 32-bit aligned.
1374 * offset must be 32-bit aligned.
1375 * @param[out] dst Destination for the data read. The destination address must be 32-bit aligned.
1379 * @retval -EIO General input/output error.
1389 __ASSERT(POINTER_TO_UINT(dst) % 4U == 0U, "dst must be 32-bit aligned"); in can_mcan_sys_read_mram()
1401 while (len32-- > 0) { in can_mcan_sys_read_mram()
1409 * @brief Bosch M_CAN driver front-end callback helper for writing to memory mapped Message RAM
1412 * must be 32-bit aligned.
1414 * offset must be 32-bit aligned.
1415 * @param src Source for the data to be written. The source address must be 32-bit aligned.
1419 * @retval -EIO General input/output error.
1430 __ASSERT(POINTER_TO_UINT(src) % 4U == 0U, "src must be 32-bit aligned"); in can_mcan_sys_write_mram()
1433 while (len32-- > 0) { in can_mcan_sys_write_mram()
1445 * @brief Bosch M_CAN driver front-end callback helper for clearing memory mapped Message RAM
1450 * must be 32-bit aligned.
1452 * offset must be 32-bit aligned.
1456 * @retval -EIO General input/output error.
1467 while (len32-- > 0) { in can_mcan_sys_clear_mram()
1486 * @retval -ENOTSUP Register not supported.
1487 * @retval -EIO General input/output error.
1499 * @retval -ENOTSUP Register not supported.
1500 * @retval -EIO General input/output error.
1509 * offset must be 32-bit aligned.
1514 * @retval -EIO General input/output error.
1519 const struct can_mcan_config *config = dev->config; in can_mcan_read_mram()
1521 return config->ops->read_mram(dev, offset, dst, len); in can_mcan_read_mram()
1529 * offset must be 32-bit aligned.
1534 * @retval -EIO General input/output error.
1539 const struct can_mcan_config *config = dev->config; in can_mcan_write_mram()
1541 return config->ops->write_mram(dev, offset, src, len); in can_mcan_write_mram()
1551 * offset must be 32-bit aligned.
1555 * @retval -EIO General input/output error.
1559 const struct can_mcan_config *config = dev->config; in can_mcan_clear_mram()
1561 return config->ops->clear_mram(dev, offset, len); in can_mcan_clear_mram()
1567 * Bosch M_CAN driver front-end callback helper function for configuring the start addresses of the
1568 * Bosch M_CAN Rx FIFO0 (RXFOC), Rx FIFO1 (RXF1C), Rx Buffer (RXBCC), Tx Buffer (TXBC), and Tx Event
1576 * RAM. It is the responsibility of the front-end driver to call this function during driver
1584 * @retval -EIO General input/output error.