Lines Matching +full:ref +full:- +full:clock +full:- +full:frequency
1 /* SPDX-License-Identifier: BSD-3-Clause */
7 * See: https://software-dl.ti.com/tisci/esd/latest/index.html for details
9 * Copyright (C) 2015-2024 Texas Instruments Incorporated - https://www.ti.com/
29 /* Clock requests */
61 /* PSI-L requests */
90 * struct ti_sci_msg_hdr - Generic Message Header for All messages and responses
111 * struct ti_sci_msg_resp_version - Response for a message
133 * struct ti_sci_msg_req_reboot - Reboot the SoC
144 * struct ti_sci_msg_resp_query_fw_caps - Response for query firmware caps
165 * struct ti_sci_msg_req_set_device_state - Set the desired state of the device
172 * + MSG_FLAG_DEVICE_WAKE_ENABLED - Configure the device to be a wake source.
176 * + MSG_FLAG_DEVICE_RESET_ISO - Enable reset isolation for this device.
177 * + MSG_FLAG_DEVICE_EXCLUSIVE - Claim this device exclusively. When passed
187 /* Additional hdr->flags options */
202 * struct ti_sci_msg_req_get_device_state - Request to get device.
215 * struct ti_sci_msg_resp_get_device_state - Response to get device request.
222 * - Uses the MSG_DEVICE_SW_* macros
239 * struct ti_sci_msg_req_set_device_resets - Set the desired resets
258 * struct ti_sci_msg_req_set_clock_state - Request to setup a Clock state
260 * MSG_FLAG_CLOCK_ALLOW_SSC: Allow this clock to be modified
262 * MSG_FLAG_CLOCK_ALLOW_FREQ_CHANGE: Allow this clock's
263 * frequency to be changed while it is running so long as it
266 * is only applicable to clock inputs on the SoC pseudo-device.
268 * @clk_id: Clock identifier for the device for this request.
269 * Each device has it's own set of clock inputs. This indexes
270 * which clock input to modify. Set to 255 if clock ID is
272 * @request_state: Request the state for the clock to be set to.
273 * MSG_CLOCK_SW_STATE_UNREQ: The IP does not require this clock,
276 * automatically manage the state of this clock. If the device
277 * is enabled, then the clock is enabled. If the device is set
278 * to off or retention, then the clock is internally set as not
280 * MSG_CLOCK_SW_STATE_REQ: Configure the clock to be enabled,
282 * @clk_id_32: Clock identifier for the device for this request.
283 * Only to be used if the clock ID is greater than or equal to
295 /* Additional hdr->flags options */
310 * struct ti_sci_msg_req_get_clock_state - Request for clock state
313 * @clk_id: Clock identifier for the device for this request.
314 * Each device has it's own set of clock inputs. This indexes
315 * which clock input to get state of. Set to 255 if the clock
317 * @clk_id_32: Clock identifier for the device for the request.
318 * Only to be used if the clock ID is greater than or equal to
322 * of the clock
332 * struct ti_sci_msg_resp_get_clock_state - Response to get clock state
334 * @programmed_state: Any programmed state of the clock. This is one of
336 * @current_state: Current state of the clock. This is one of:
337 * MSG_CLOCK_HW_STATE_NOT_READY: Clock is not ready
338 * MSG_CLOCK_HW_STATE_READY: Clock is ready
351 * struct ti_sci_msg_req_set_clock_parent - Set the clock parent
354 * @clk_id: Clock identifier for the device for this request.
355 * Each device has it's own set of clock inputs. This indexes
356 * which clock input to modify. Set to 255 if clock ID is
358 * @parent_id: The new clock parent is selectable by an index via this
359 * parameter. Set to 255 if clock ID is greater than or
361 * @clk_id_32: Clock identifier if @clk_id field is 255.
377 * struct ti_sci_msg_req_get_clock_parent - Get the clock parent
380 * @clk_id: Clock identifier for the device for this request.
381 * Each device has it's own set of clock inputs. This indexes
382 * which clock input to get the parent for. If this field
383 * contains 255, the actual clock identifier is stored in
385 * @clk_id_32: Clock identifier if the @clk_id field contains 255.
397 * struct ti_sci_msg_resp_get_clock_parent - Response with clock parent
399 * @parent_id: The current clock parent. If set to 255, the current parent
401 * @parent_id_32: Current clock parent if @parent_id field is set to
413 * struct ti_sci_msg_req_get_clock_num_parents - Request to get clock parents
416 * @clk_id: Clock identifier for the device for this request. Set to
417 * 255 if clock ID is greater than or equal to 255.
418 * @clk_id_32: Clock identifier if the @clk_id field contains 255.
420 * This request provides information about how many clock parent options
421 * are available for a given clock to a device. This is typically used
435 * struct ti_sci_msg_resp_get_clock_num_parents - Response for get clk parents
437 * @num_parents: Number of clock parents. If set to 255, the actual
440 * @num_parents_32: Number of clock parents if @num_parents field is
452 * struct ti_sci_msg_req_query_clock_freq - Request to query a frequency
455 * @min_freq_hz: The minimum allowable frequency in Hz. This is the minimum
456 * allowable programmed frequency and does not account for clock
458 * @target_freq_hz: The target clock frequency. A frequency will be found
459 * as close to this target frequency as possible.
460 * @max_freq_hz: The maximum allowable frequency in Hz. This is the maximum
461 * allowable programmed frequency and does not account for clock
463 * @clk_id: Clock identifier for the device for this request. Set to
464 * 255 if clock identifier is greater than or equal to 255.
465 * @clk_id_32: Clock identifier if @clk_id is set to 255.
467 * NOTE: Normally clock frequency management is automatically done by TISCI
469 * requested frequency within provided range and responds with
486 * struct ti_sci_msg_resp_query_clock_freq - Response to a clock frequency query
488 * @freq_hz: Frequency that is the best match in Hz.
499 * struct ti_sci_msg_req_set_clock_freq - Request to setup a clock frequency
502 * @min_freq_hz: The minimum allowable frequency in Hz. This is the minimum
503 * allowable programmed frequency and does not account for clock
505 * @target_freq_hz: The target clock frequency. The clock will be programmed
506 * at a rate as close to this target frequency as possible.
507 * @max_freq_hz: The maximum allowable frequency in Hz. This is the maximum
508 * allowable programmed frequency and does not account for clock
510 * @clk_id: Clock identifier for the device for this request. Set to
511 * 255 if clock ID is greater than or equal to 255.
512 * @clk_id_32: Clock identifier if @clk_id field is set to 255.
514 * NOTE: Normally clock frequency management is automatically done by TISCI
518 * This sets the desired frequency for a clock within an allowable
519 * range. This message will fail on an enabled clock unless
520 * MSG_FLAG_CLOCK_ALLOW_FREQ_CHANGE is set for the clock. Additionally,
521 * if other clocks have their frequency modified due to this message,
524 * Calling set frequency on a clock input to the SoC pseudo-device will
525 * inform the PMMC of that clock's frequency. Setting a frequency of
526 * zero will indicate the clock is disabled.
528 * Calling set frequency on clock outputs from the SoC pseudo-device will
529 * function similarly to setting the clock frequency on a device.
545 * struct ti_sci_msg_req_get_clock_freq - Request to get the clock frequency
548 * @clk_id: Clock identifier for the device for this request. Set to
549 * 255 if clock ID is greater than or equal to 255.
550 * @clk_id_32: Clock identifier if @clk_id field is set to 255.
552 * NOTE: Normally clock frequency management is automatically done by TISCI
553 * entity. In some cases, clock frequencies are configured by host.
555 * Request type is TI_SCI_MSG_GET_CLOCK_FREQ, responded with clock frequency
556 * that the clock is currently at.
566 * struct ti_sci_msg_resp_get_clock_freq - Response of clock frequency request
568 * @freq_hz: Frequency that the clock is currently on, in Hz.
578 * struct tisci_msg_req_prepare_sleep - Request for TISCI_MSG_PREPARE_SLEEP.
582 * @ctx_lo Low 32-bits of physical pointer to address to use for context save.
583 * @ctx_hi High 32-bits of physical pointer to address to use for context save.
589 * easily shared from the application, as this is a non-secure message and
603 * struct tisci_msg_set_io_isolation_req - Request for TI_SCI_MSG_SET_IO_ISOLATION.
617 * struct ti_sci_msg_resp_lpm_wake_reason - Response for TI_SCI_MSG_LPM_WAKE_REASON.
639 * struct ti_sci_msg_req_lpm_set_device_constraint - Request for
651 * is a non-secure message and therefore can be sent by anyone. By setting a
665 * struct ti_sci_msg_req_lpm_set_latency_constraint - Request for
678 * from the application, as this is a non-secure message and therefore can be sent by
692 * struct ti_sci_msg_req_get_resource_range - Request to get a host's assigned
715 * struct ti_sci_msg_resp_get_resource_range - Response to resource get range.
733 * struct ti_sci_msg_req_manage_irq - Request to configure/release the route
740 * 0 - Valid bit for @dst_id
741 * 1 - Valid bit for @dst_host_irq
742 * 2 - Valid bit for @ia_id
743 * 3 - Valid bit for @vint
744 * 4 - Valid bit for @global_event
745 * 5 - Valid bit for @vint_status_bit_index
746 * 31 - Valid bit for @secondary_host
789 * struct ti_sci_msg_rm_ring_cfg_req - Configure a Navigator Subsystem ring
791 * Configures the non-real-time registers of a Navigator Subsystem ring.
797 * 0 - Valid bit for @tisci_msg_rm_ring_cfg_req addr_lo
798 * 1 - Valid bit for @tisci_msg_rm_ring_cfg_req addr_hi
799 * 2 - Valid bit for @tisci_msg_rm_ring_cfg_req count
800 * 3 - Valid bit for @tisci_msg_rm_ring_cfg_req mode
801 * 4 - Valid bit for @tisci_msg_rm_ring_cfg_req size
802 * 5 - Valid bit for @tisci_msg_rm_ring_cfg_req order_id
803 * 6 - Valid bit for @tisci_msg_rm_ring_cfg_req virtid
804 * 7 - Valid bit for @tisci_msg_rm_ring_cfg_req ASEL
815 * the formula (log2(size_bytes) - 2), where size_bytes cannot be
838 * struct ti_sci_msg_psil_pair - Pairs a PSI-L source thread to a destination
841 * @nav_id: SoC Navigator Subsystem device ID whose PSI-L config proxy is
843 * @src_thread: PSI-L source thread ID within the PSI-L System thread map.
849 * @dst_thread: PSI-L destination thread ID within the PSI-L System thread map.
850 * PSI-L destination threads start at index 0x8000. The request is NACK'd if
868 * struct ti_sci_msg_psil_unpair - Unpairs a PSI-L source thread from a
871 * @nav_id: SoC Navigator Subsystem device ID whose PSI-L config proxy is
873 * @src_thread: PSI-L source thread ID within the PSI-L System thread map.
878 * @dst_thread: PSI-L destination thread ID within the PSI-L System thread map.
879 * PSI-L destination threads start at index 0x8000. The request is NACK'd if
896 * struct ti_sci_msg_udmap_rx_flow_cfg - UDMAP receive flow configuration
901 * @flow_index: UDMAP receive flow index for non-optional configuration.
912 * 0 - end of packet descriptor
913 * 1 - Beginning of the data buffer
960 * struct rm_ti_sci_msg_udmap_rx_flow_opt_cfg - parameters for UDMAP receive
995 * Configures the non-real-time registers of a Navigator Subsystem UDMAP
1006 * 0 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::tx_pause_on_err
1007 * 1 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::tx_atype
1008 * 2 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::tx_chan_type
1009 * 3 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::tx_fetch_size
1010 * 4 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::txcq_qnum
1011 * 5 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::tx_priority
1012 * 6 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::tx_qos
1013 * 7 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::tx_orderid
1014 * 8 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::tx_sched_priority
1015 * 9 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::tx_filt_einfo
1016 * 10 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::tx_filt_pswords
1017 * 11 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::tx_supr_tdpkt
1018 * 12 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::tx_credit_count
1019 * 13 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::fdepth
1020 * 14 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::tx_burst_size
1021 * 15 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::tx_tdtype
1022 * 16 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::extended_ch_type
1052 * @tx_fetch_size: UDMAP transmit channel number of 32-bit descriptor words to
1089 * 0 - Return immediately
1090 * 1 - Wait for completion message from remote peer
1093 * 0 - the channel is split tx channel (tchan)
1094 * 1 - the channel is block copy channel (bchan)
1123 * Configures the non-real-time registers of a Navigator Subsystem UDMAP
1135 * 0 - Valid bit for @ti_sci_msg_rm_udmap_rx_ch_cfg_req::rx_pause_on_err
1136 * 1 - Valid bit for @ti_sci_msg_rm_udmap_rx_ch_cfg_req::rx_atype
1137 * 2 - Valid bit for @ti_sci_msg_rm_udmap_rx_ch_cfg_req::rx_chan_type
1138 * 3 - Valid bit for @ti_sci_msg_rm_udmap_rx_ch_cfg_req::rx_fetch_size
1139 * 4 - Valid bit for @ti_sci_msg_rm_udmap_rx_ch_cfg_req::rxcq_qnum
1140 * 5 - Valid bit for @ti_sci_msg_rm_udmap_rx_ch_cfg_req::rx_priority
1141 * 6 - Valid bit for @ti_sci_msg_rm_udmap_rx_ch_cfg_req::rx_qos
1142 * 7 - Valid bit for @ti_sci_msg_rm_udmap_rx_ch_cfg_req::rx_orderid
1143 * 8 - Valid bit for @ti_sci_msg_rm_udmap_rx_ch_cfg_req::rx_sched_priority
1144 * 9 - Valid bit for @ti_sci_msg_rm_udmap_rx_ch_cfg_req::flowid_start
1145 * 10 - Valid bit for @ti_sci_msg_rm_udmap_rx_ch_cfg_req::flowid_cnt
1146 * 11 - Valid bit for @ti_sci_msg_rm_udmap_rx_ch_cfg_req::rx_ignore_short
1147 * 12 - Valid bit for @ti_sci_msg_rm_udmap_rx_ch_cfg_req::rx_ignore_long
1148 * 14 - Valid bit for @ti_sci_msg_rm_udmap_rx_ch_cfg_req::rx_burst_size
1154 * @rx_fetch_size: UDMAP receive channel number of 32-bit descriptor words to
1179 * make use of beyond the default flow. flowid_start and @ref flowid_cnt must be
1181 * @ref flowid_cnt must be a flow index within the Navigator Subsystem's subset
1189 * of legal flow IDs for the channel. @ref flowid_start and flowid_cnt must be
1192 * allocated and used by the receive channel. @ref flowid_start plus flowid_cnt
1243 * Configuration does not include the flow registers which handle size-based
1255 * 0 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_einfo_present
1256 * 1 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_psinfo_present
1257 * 2 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_error_handling
1258 * 3 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_desc_type
1259 * 4 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_sop_offset
1260 * 5 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_dest_qnum
1261 * 6 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_src_tag_hi
1262 * 7 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_src_tag_lo
1263 * 8 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_dest_tag_hi
1264 * 9 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_dest_tag_lo
1265 * 10 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_src_tag_hi_sel
1266 * 11 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_src_tag_lo_sel
1267 * 12 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_dest_tag_hi_sel
1268 * 13 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_dest_tag_lo_sel
1269 * 14 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_fdq0_sz0_qnum
1270 * 15 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_fdq1_sz0_qnum
1271 * 16 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_fdq2_sz0_qnum
1272 * 17 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_fdq3_sz0_qnum
1273 * 18 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_ps_location
1278 * @flow_index: UDMAP receive flow index for non-optional configuration.
1300 * this field are 0-255 bytes.
1412 * struct ti_sci_msg_req_proc_request - Request a processor
1425 * struct ti_sci_msg_req_proc_release - Release a processor
1438 * struct ti_sci_msg_req_proc_handover - Handover a processor to a host
1458 * struct ti_sci_msg_req_set_config - Set Processor boot configuration
1483 * struct ti_sci_msg_req_set_ctrl - Set Processor boot control flags
1504 * struct ti_sci_msg_req_get_status - Processor boot status request
1517 * struct ti_sci_msg_resp_get_status - Processor boot status response