13#ifndef INCLUDE_ZEPHYR_DRIVERS_TISCI_H_
14#define INCLUDE_ZEPHYR_DRIVERS_TISCI_H_
18#define MAILBOX_MBOX_SIZE 60
98#define TISCI_MSG_VALUE_RM_UDMAP_CH_TX_FILT_EINFO_VALID BIT(9)
99#define TISCI_MSG_VALUE_RM_UDMAP_CH_TX_FILT_PSWORDS_VALID BIT(10)
100#define TISCI_MSG_VALUE_RM_UDMAP_CH_TX_SUPR_TDPKT_VALID BIT(11)
101#define TISCI_MSG_VALUE_RM_UDMAP_CH_TX_CREDIT_COUNT_VALID BIT(12)
102#define TISCI_MSG_VALUE_RM_UDMAP_CH_TX_FDEPTH_VALID BIT(13)
103#define TISCI_MSG_VALUE_RM_UDMAP_CH_TX_TDTYPE_VALID BIT(15)
104#define TISCI_MSG_VALUE_RM_UDMAP_CH_EXTENDED_CH_TYPE_VALID BIT(16)
134#define TISCI_MSG_VALUE_RM_UDMAP_CH_RX_FLOWID_START_VALID BIT(9)
135#define TISCI_MSG_VALUE_RM_UDMAP_CH_RX_FLOWID_CNT_VALID BIT(10)
136#define TISCI_MSG_VALUE_RM_UDMAP_CH_RX_IGNORE_SHORT_VALID BIT(11)
137#define TISCI_MSG_VALUE_RM_UDMAP_CH_RX_IGNORE_LONG_VALID BIT(12)
156#define TISCI_MSG_VALUE_RM_DST_ID_VALID (1u << 0u)
157#define TISCI_MSG_VALUE_RM_DST_HOST_IRQ_VALID (1u << 1u)
158#define TISCI_MSG_VALUE_RM_IA_ID_VALID (1u << 2u)
159#define TISCI_MSG_VALUE_RM_VINT_VALID (1u << 3u)
160#define TISCI_MSG_VALUE_RM_GLOBAL_EVENT_VALID (1u << 4u)
161#define TISCI_MSG_VALUE_RM_VINT_STATUS_BIT_INDEX_VALID (1u << 5u)
422 bool can_change_freq,
bool enable_input_term);
773 uint8_t delay_per_iteration_us,
774 uint8_t delay_before_iterations_us,
775 uint32_t status_flags_1_set_all_wait,
776 uint32_t status_flags_1_set_any_wait,
777 uint32_t status_flags_1_clr_all_wait,
778 uint32_t status_flags_1_clr_any_wait);
flags
Definition parser.h:97
state
Definition parser_state.h:29
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__UINT64_TYPE__ uint64_t
Definition stdint.h:91
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
__UINT16_TYPE__ uint16_t
Definition stdint.h:89
Runtime device structure (in ROM) per driver instance.
Definition device.h:510
Request to release interrupt peripheral resources.
Definition tisci.h:224
uint8_t secondary_host
Definition tisci.h:234
uint32_t valid_params
Definition tisci.h:225
uint16_t global_event
Definition tisci.h:232
uint16_t dst_host_irq
Definition tisci.h:229
uint16_t vint
Definition tisci.h:231
uint16_t ia_id
Definition tisci.h:230
uint16_t src_index
Definition tisci.h:227
uint16_t src_id
Definition tisci.h:226
uint16_t dst_id
Definition tisci.h:228
uint8_t vint_status_bit_index
Definition tisci.h:233
Request to set up an interrupt route.
Definition tisci.h:187
uint16_t dst_host_irq
Definition tisci.h:192
uint16_t src_index
Definition tisci.h:190
uint16_t dst_id
Definition tisci.h:191
uint16_t ia_id
Definition tisci.h:193
uint16_t vint
Definition tisci.h:194
uint8_t vint_status_bit_index
Definition tisci.h:196
uint16_t global_event
Definition tisci.h:195
uint32_t valid_params
Definition tisci.h:188
uint8_t secondary_host
Definition tisci.h:197
uint16_t src_id
Definition tisci.h:189
Request and Response for firewall owner change.
Definition tisci.h:82
uint8_t owner_index
Definition tisci.h:85
uint16_t owner_permission_bits
Definition tisci.h:87
uint16_t fwl_id
Definition tisci.h:83
uint8_t owner_privid
Definition tisci.h:86
uint16_t region
Definition tisci.h:84
uint16_t region
Definition tisci.h:56
uint64_t start_address
Definition tisci.h:60
uint32_t permissions[3]
Definition tisci.h:59
uint32_t control
Definition tisci.h:58
uint64_t end_address
Definition tisci.h:61
uint32_t n_permission_regs
Definition tisci.h:57
uint16_t fwl_id
Definition tisci.h:55
Configures a Navigator Subsystem UDMAP receive channel.
Definition tisci.h:132
uint8_t rx_priority
Definition tisci.h:142
uint16_t index
Definition tisci.h:139
uint8_t rx_sched_priority
Definition tisci.h:145
uint8_t rx_qos
Definition tisci.h:143
uint16_t rxcq_qnum
Definition tisci.h:141
uint8_t rx_burst_size
Definition tisci.h:153
uint16_t nav_id
Definition tisci.h:138
uint8_t rx_atype
Definition tisci.h:149
uint32_t valid_params
Definition tisci.h:133
uint8_t rx_ignore_long
Definition tisci.h:152
uint8_t rx_orderid
Definition tisci.h:144
uint8_t rx_ignore_short
Definition tisci.h:151
uint16_t flowid_start
Definition tisci.h:146
uint16_t flowid_cnt
Definition tisci.h:147
uint8_t rx_pause_on_err
Definition tisci.h:148
uint16_t rx_fetch_size
Definition tisci.h:140
uint8_t rx_chan_type
Definition tisci.h:150
Configures a Navigator Subsystem UDMAP transmit channel.
Definition tisci.h:96
uint8_t tx_sched_priority
Definition tisci.h:120
uint8_t tx_chan_type
Definition tisci.h:111
uint8_t extended_ch_type
Definition tisci.h:123
uint16_t nav_id
Definition tisci.h:105
uint8_t tx_atype
Definition tisci.h:110
uint8_t tx_burst_size
Definition tisci.h:121
uint16_t txcq_qnum
Definition tisci.h:115
uint8_t tx_credit_count
Definition tisci.h:114
uint8_t tx_filt_einfo
Definition tisci.h:108
uint8_t tx_supr_tdpkt
Definition tisci.h:112
uint8_t tx_tdtype
Definition tisci.h:122
uint16_t index
Definition tisci.h:106
uint8_t tx_filt_pswords
Definition tisci.h:109
uint32_t valid_params
Definition tisci.h:97
uint8_t tx_pause_on_err
Definition tisci.h:107
uint16_t fdepth
Definition tisci.h:119
uint8_t tx_orderid
Definition tisci.h:118
uint8_t tx_priority
Definition tisci.h:116
uint8_t tx_qos
Definition tisci.h:117
uint16_t tx_fetch_size
Definition tisci.h:113
version information structure
Definition tisci.h:30
char firmware_description[32]
Definition tisci.h:34
uint16_t firmware_revision
Definition tisci.h:33
uint8_t abi_major
Definition tisci.h:31
uint8_t abi_minor
Definition tisci.h:32
int tisci_cmd_dev_get_clcnt(const struct device *dev, uint32_t dev_id, uint32_t *count)
Get the context loss counter for a device.
int tisci_cmd_query_msmc(const struct device *dev, uint64_t *msmc_start, uint64_t *msmc_end)
Query the available MSMC memory range.
int tisci_set_device_state_no_wait(const struct device *dev, uint32_t dev_id, uint32_t flags, uint8_t state)
Set the state of a device without waiting for a response.
int tisci_set_clock_state(const struct device *dev, uint32_t dev_id, uint8_t clk_id, uint32_t flags, uint8_t state)
Set the state of a clock.
int tisci_cmd_rm_irq_set(const struct device *dev, struct tisci_irq_set_req *req)
Set a Navigator Subsystem IRQ.
int tisci_cmd_dev_is_stop(const struct device *dev, uint32_t dev_id, bool *r_state, bool *curr_state)
Check if the device is requested to be stopped.
int tisci_cmd_proc_handover(const struct device *dev, uint8_t proc_id, uint8_t host_id)
Command to handover a physical processor control to a host in the processor's access control list.
int tisci_cmd_clk_is_off(const struct device *dev, uint32_t dev_id, uint8_t clk_id, bool *req_state, bool *curr_state)
Check if the clock is OFF.
int tisci_cmd_set_fwl_region(const struct device *dev, const struct tisci_msg_fwl_region *region)
Configure a firewall region.
int tisci_cmd_proc_release(const struct device *dev, uint8_t proc_id)
Command to release a physical processor control.
int tisci_cmd_proc_request(const struct device *dev, uint8_t proc_id)
Command to request a physical processor control.
int tisci_cmd_set_proc_boot_cfg(const struct device *dev, uint8_t proc_id, uint64_t bootvector, uint32_t config_flags_set, uint32_t config_flags_clear)
Command to set the processor boot configuration flags.
int tisci_cmd_idle_clock(const struct device *dev, uint32_t dev_id, uint8_t clk_id)
Idle a clock that is under control of TI SCI.
int tisci_cmd_get_clock_state(const struct device *dev, uint32_t dev_id, uint8_t clk_id, uint8_t *programmed_state, uint8_t *current_state)
Get the state of a clock.
int tisci_cmd_get_device(const struct device *dev, uint32_t dev_id)
Request exclusive access to a device managed by TISCI.
int tisci_cmd_dev_is_trans(const struct device *dev, uint32_t dev_id, bool *curr_state)
Check if the device is currently transitioning.
int tisci_cmd_dev_is_valid(const struct device *dev, uint32_t dev_id)
Check if a device ID is valid.
int tisci_cmd_rm_udmap_rx_ch_cfg(const struct device *dev, const struct tisci_msg_rm_udmap_rx_ch_cfg *params)
Configure a UDMAP receive channel.
int tisci_cmd_put_device(const struct device *dev, uint32_t dev_id)
Command to release a device managed by TISCI.
int tisci_cmd_clk_get_freq(const struct device *dev, uint32_t dev_id, uint8_t clk_id, uint64_t *freq)
Get the current frequency of a clock.
int tisci_cmd_rm_psil_unpair(const struct device *dev, uint32_t nav_id, uint32_t src_thread, uint32_t dst_thread)
Unpair PSI-L source thread from destination thread.
int tisci_cmd_rm_psil_pair(const struct device *dev, uint32_t nav_id, uint32_t src_thread, uint32_t dst_thread)
Pair PSI-L source thread to destination thread.
int tisci_cmd_clk_set_parent(const struct device *dev, uint32_t dev_id, uint8_t clk_id, uint8_t parent_id)
Set the parent clock for a clock.
int tisci_cmd_clk_is_on(const struct device *dev, uint32_t dev_id, uint8_t clk_id, bool *req_state, bool *curr_state)
Check if the clock is ON.
int tisci_cmd_clk_get_parent(const struct device *dev, uint32_t dev_id, uint8_t clk_id, uint8_t *parent_id)
Get the parent clock for a clock.
int tisci_proc_wait_boot_status_no_wait(const struct device *dev, uint8_t proc_id, uint8_t num_wait_iterations, uint8_t num_match_iterations, uint8_t delay_per_iteration_us, uint8_t delay_before_iterations_us, uint32_t status_flags_1_set_all_wait, uint32_t status_flags_1_set_any_wait, uint32_t status_flags_1_clr_all_wait, uint32_t status_flags_1_clr_any_wait)
Helper function to wait for a processor boot status without requesting or waiting for a response.
int tisci_set_device_state(const struct device *dev, uint32_t dev_id, uint32_t flags, uint8_t state)
Set the state of a device.
int tisci_get_resource_range(const struct device *dev, uint32_t dev_id, uint8_t subtype, uint8_t s_host, uint16_t *range_start, uint16_t *range_num)
Get a range of resources assigned to a host.
int tisci_cmd_get_device_resets(const struct device *dev, uint32_t dev_id, uint32_t *reset_state)
Get reset state for a device managed by TISCI.
int tisci_cmd_ring_config(const struct device *dev, uint32_t valid_params, uint16_t nav_id, uint16_t index, uint32_t addr_lo, uint32_t addr_hi, uint32_t count, uint8_t mode, uint8_t size, uint8_t order_id)
Configure a RA ring.
int tisci_cmd_set_device_resets(const struct device *dev, uint32_t dev_id, uint32_t reset_state)
Set resets for a device managed by TISCI.
int tisci_cmd_clk_get_match_freq(const struct device *dev, uint32_t dev_id, uint8_t clk_id, uint64_t min_freq, uint64_t target_freq, uint64_t max_freq, uint64_t *match_freq)
Get a matching frequency for a clock.
int tisci_cmd_rm_udmap_tx_ch_cfg(const struct device *dev, const struct tisci_msg_rm_udmap_tx_ch_cfg *params)
Configure a UDMAP transmit channel.
int tisci_cmd_proc_shutdown_no_wait(const struct device *dev, uint8_t proc_id)
Command to shutdown a core without requesting or waiting for a response.
int tisci_cmd_get_proc_boot_status(const struct device *dev, uint8_t proc_id, uint64_t *bv, uint32_t *cfg_flags, uint32_t *ctrl_flags, uint32_t *sts_flags)
Command to get the processor boot status.
int tisci_cmd_get_resource_range_from_shost(const struct device *dev, uint32_t dev_id, uint8_t subtype, uint8_t s_host, uint16_t *range_start, uint16_t *range_num)
Get a range of resources assigned to a specified host.
int tisci_cmd_sys_reset(const struct device *dev)
Request a system reset.
int tisci_cmd_dev_is_on(const struct device *dev, uint32_t dev_id, bool *r_state, bool *curr_state)
Check if the device is requested to be ON.
int tisci_cmd_proc_auth_boot_image(const struct device *dev, uint64_t *image_addr, uint32_t *image_size)
Command to authenticate and load the image, then set the processor configuration flags.
int tisci_cmd_idle_device_exclusive(const struct device *dev, uint32_t dev_id)
int tisci_cmd_clk_is_auto(const struct device *dev, uint32_t dev_id, uint8_t clk_id, bool *req_state)
Check if the clock is being auto-managed.
int tisci_cmd_get_fwl_region(const struct device *dev, struct tisci_msg_fwl_region *region)
Get firewall region configuration.
int tisci_cmd_get_clock(const struct device *dev, uint32_t dev_id, uint8_t clk_id, bool needs_ssc, bool can_change_freq, bool enable_input_term)
Get control of a clock from TI SCI.
int tisci_cmd_idle_device(const struct device *dev, uint32_t dev_id)
Command to idle a device managed by TISCI.
int tisci_cmd_rm_irq_release(const struct device *dev, struct tisci_irq_release_req *req)
Release a Navigator Subsystem IRQ.
int cmd_set_board_config_using_msg(const struct device *dev, uint16_t msg_type, uint64_t addr, uint32_t size)
Set board configuration using a specified message type.
int tisci_cmd_clk_set_freq(const struct device *dev, uint32_t dev_id, uint8_t clk_id, uint64_t min_freq, uint64_t target_freq, uint64_t max_freq)
Set a frequency for a clock.
int tisci_get_device_state(const struct device *dev, uint32_t dev_id, uint32_t *clcnt, uint32_t *resets, uint8_t *p_state, uint8_t *c_state)
Get the state of a device.
int tisci_cmd_get_device_exclusive(const struct device *dev, uint32_t dev_id)
int tisci_cmd_get_resource_range(const struct device *dev, uint32_t dev_id, uint8_t subtype, uint16_t *range_start, uint16_t *range_num)
Get a range of resources assigned to the host.
int tisci_cmd_put_clock(const struct device *dev, uint32_t dev_id, uint8_t clk_id)
Release a clock from control back to TI SCI.
int tisci_cmd_clk_get_num_parents(const struct device *dev, uint32_t dev_id, uint8_t clk_id, uint8_t *num_parents)
Get the number of parent clocks for a clock.
int tisci_cmd_get_revision(const struct device *dev, struct tisci_version_info *ver)
Get the revision information of the TI SCI firmware.
int tisci_cmd_set_proc_boot_ctrl(const struct device *dev, uint8_t proc_id, uint32_t control_flags_set, uint32_t control_flags_clear)
Command to set the processor boot control flags.
int tisci_cmd_dev_is_idle(const struct device *dev, uint32_t dev_id, bool *r_state)
Check if the device is requested to be idle.
int tisci_cmd_change_fwl_owner(const struct device *dev, struct tisci_msg_fwl_owner *owner)
Change firewall region owner.