Lines Matching +full:ref +full:- +full:clock +full:- +full:frequency

1 /* SPDX-License-Identifier: BSD-3-Clause */
9 * Copyright (C) 2015-2016 Texas Instruments Incorporated - https://www.ti.com/
28 /* Clock requests */
53 /* PSI-L requests */
82 * struct ti_sci_msg_hdr - Generic Message Header for All messages and responses
103 * struct ti_sci_msg_resp_version - Response for a message
125 * struct ti_sci_msg_req_reboot - Reboot the SoC
136 * struct ti_sci_msg_req_set_device_state - Set the desired state of the device
143 * + MSG_FLAG_DEVICE_WAKE_ENABLED - Configure the device to be a wake source.
147 * + MSG_FLAG_DEVICE_RESET_ISO - Enable reset isolation for this device.
148 * + MSG_FLAG_DEVICE_EXCLUSIVE - Claim this device exclusively. When passed
158 /* Additional hdr->flags options */
173 * struct ti_sci_msg_req_get_device_state - Request to get device.
186 * struct ti_sci_msg_resp_get_device_state - Response to get device request.
193 * - Uses the MSG_DEVICE_SW_* macros
210 * struct ti_sci_msg_req_set_device_resets - Set the desired resets
229 * struct ti_sci_msg_req_set_clock_state - Request to setup a Clock state
231 * MSG_FLAG_CLOCK_ALLOW_SSC: Allow this clock to be modified
233 * MSG_FLAG_CLOCK_ALLOW_FREQ_CHANGE: Allow this clock's
234 * frequency to be changed while it is running so long as it
237 * is only applicable to clock inputs on the SoC pseudo-device.
239 * @clk_id: Clock identifier for the device for this request.
240 * Each device has it's own set of clock inputs. This indexes
241 * which clock input to modify. Set to 255 if clock ID is
243 * @request_state: Request the state for the clock to be set to.
244 * MSG_CLOCK_SW_STATE_UNREQ: The IP does not require this clock,
247 * automatically manage the state of this clock. If the device
248 * is enabled, then the clock is enabled. If the device is set
249 * to off or retention, then the clock is internally set as not
251 * MSG_CLOCK_SW_STATE_REQ: Configure the clock to be enabled,
253 * @clk_id_32: Clock identifier for the device for this request.
254 * Only to be used if the clock ID is greater than or equal to
266 /* Additional hdr->flags options */
281 * struct ti_sci_msg_req_get_clock_state - Request for clock state
284 * @clk_id: Clock identifier for the device for this request.
285 * Each device has it's own set of clock inputs. This indexes
286 * which clock input to get state of. Set to 255 if the clock
288 * @clk_id_32: Clock identifier for the device for the request.
289 * Only to be used if the clock ID is greater than or equal to
293 * of the clock
303 * struct ti_sci_msg_resp_get_clock_state - Response to get clock state
305 * @programmed_state: Any programmed state of the clock. This is one of
307 * @current_state: Current state of the clock. This is one of:
308 * MSG_CLOCK_HW_STATE_NOT_READY: Clock is not ready
309 * MSG_CLOCK_HW_STATE_READY: Clock is ready
322 * struct ti_sci_msg_req_set_clock_parent - Set the clock parent
325 * @clk_id: Clock identifier for the device for this request.
326 * Each device has it's own set of clock inputs. This indexes
327 * which clock input to modify. Set to 255 if clock ID is
329 * @parent_id: The new clock parent is selectable by an index via this
330 * parameter. Set to 255 if clock ID is greater than or
332 * @clk_id_32: Clock identifier if @clk_id field is 255.
348 * struct ti_sci_msg_req_get_clock_parent - Get the clock parent
351 * @clk_id: Clock identifier for the device for this request.
352 * Each device has it's own set of clock inputs. This indexes
353 * which clock input to get the parent for. If this field
354 * contains 255, the actual clock identifier is stored in
356 * @clk_id_32: Clock identifier if the @clk_id field contains 255.
368 * struct ti_sci_msg_resp_get_clock_parent - Response with clock parent
370 * @parent_id: The current clock parent. If set to 255, the current parent
372 * @parent_id_32: Current clock parent if @parent_id field is set to
384 * struct ti_sci_msg_req_get_clock_num_parents - Request to get clock parents
387 * @clk_id: Clock identifier for the device for this request. Set to
388 * 255 if clock ID is greater than or equal to 255.
389 * @clk_id_32: Clock identifier if the @clk_id field contains 255.
391 * This request provides information about how many clock parent options
392 * are available for a given clock to a device. This is typically used
406 * struct ti_sci_msg_resp_get_clock_num_parents - Response for get clk parents
408 * @num_parents: Number of clock parents. If set to 255, the actual
411 * @num_parents_32: Number of clock parents if @num_parents field is
423 * struct ti_sci_msg_req_query_clock_freq - Request to query a frequency
426 * @min_freq_hz: The minimum allowable frequency in Hz. This is the minimum
427 * allowable programmed frequency and does not account for clock
429 * @target_freq_hz: The target clock frequency. A frequency will be found
430 * as close to this target frequency as possible.
431 * @max_freq_hz: The maximum allowable frequency in Hz. This is the maximum
432 * allowable programmed frequency and does not account for clock
434 * @clk_id: Clock identifier for the device for this request. Set to
435 * 255 if clock identifier is greater than or equal to 255.
436 * @clk_id_32: Clock identifier if @clk_id is set to 255.
438 * NOTE: Normally clock frequency management is automatically done by TISCI
440 * requested frequency within provided range and responds with
457 * struct ti_sci_msg_resp_query_clock_freq - Response to a clock frequency query
459 * @freq_hz: Frequency that is the best match in Hz.
470 * struct ti_sci_msg_req_set_clock_freq - Request to setup a clock frequency
473 * @min_freq_hz: The minimum allowable frequency in Hz. This is the minimum
474 * allowable programmed frequency and does not account for clock
476 * @target_freq_hz: The target clock frequency. The clock will be programmed
477 * at a rate as close to this target frequency as possible.
478 * @max_freq_hz: The maximum allowable frequency in Hz. This is the maximum
479 * allowable programmed frequency and does not account for clock
481 * @clk_id: Clock identifier for the device for this request. Set to
482 * 255 if clock ID is greater than or equal to 255.
483 * @clk_id_32: Clock identifier if @clk_id field is set to 255.
485 * NOTE: Normally clock frequency management is automatically done by TISCI
489 * This sets the desired frequency for a clock within an allowable
490 * range. This message will fail on an enabled clock unless
491 * MSG_FLAG_CLOCK_ALLOW_FREQ_CHANGE is set for the clock. Additionally,
492 * if other clocks have their frequency modified due to this message,
495 * Calling set frequency on a clock input to the SoC pseudo-device will
496 * inform the PMMC of that clock's frequency. Setting a frequency of
497 * zero will indicate the clock is disabled.
499 * Calling set frequency on clock outputs from the SoC pseudo-device will
500 * function similarly to setting the clock frequency on a device.
516 * struct ti_sci_msg_req_get_clock_freq - Request to get the clock frequency
519 * @clk_id: Clock identifier for the device for this request. Set to
520 * 255 if clock ID is greater than or equal to 255.
521 * @clk_id_32: Clock identifier if @clk_id field is set to 255.
523 * NOTE: Normally clock frequency management is automatically done by TISCI
524 * entity. In some cases, clock frequencies are configured by host.
526 * Request type is TI_SCI_MSG_GET_CLOCK_FREQ, responded with clock frequency
527 * that the clock is currently at.
537 * struct ti_sci_msg_resp_get_clock_freq - Response of clock frequency request
539 * @freq_hz: Frequency that the clock is currently on, in Hz.
551 * struct ti_sci_msg_req_get_resource_range - Request to get a host's assigned
574 * struct ti_sci_msg_resp_get_resource_range - Response to resource get range.
592 * struct ti_sci_msg_req_manage_irq - Request to configure/release the route
599 * 0 - Valid bit for @dst_id
600 * 1 - Valid bit for @dst_host_irq
601 * 2 - Valid bit for @ia_id
602 * 3 - Valid bit for @vint
603 * 4 - Valid bit for @global_event
604 * 5 - Valid bit for @vint_status_bit_index
605 * 31 - Valid bit for @secondary_host
648 * struct ti_sci_msg_rm_ring_cfg_req - Configure a Navigator Subsystem ring
650 * Configures the non-real-time registers of a Navigator Subsystem ring.
656 * 0 - Valid bit for @tisci_msg_rm_ring_cfg_req addr_lo
657 * 1 - Valid bit for @tisci_msg_rm_ring_cfg_req addr_hi
658 * 2 - Valid bit for @tisci_msg_rm_ring_cfg_req count
659 * 3 - Valid bit for @tisci_msg_rm_ring_cfg_req mode
660 * 4 - Valid bit for @tisci_msg_rm_ring_cfg_req size
661 * 5 - Valid bit for @tisci_msg_rm_ring_cfg_req order_id
662 * 6 - Valid bit for @tisci_msg_rm_ring_cfg_req virtid
663 * 7 - Valid bit for @tisci_msg_rm_ring_cfg_req ASEL
674 * the formula (log2(size_bytes) - 2), where size_bytes cannot be
697 * struct ti_sci_msg_psil_pair - Pairs a PSI-L source thread to a destination
700 * @nav_id: SoC Navigator Subsystem device ID whose PSI-L config proxy is
702 * @src_thread: PSI-L source thread ID within the PSI-L System thread map.
708 * @dst_thread: PSI-L destination thread ID within the PSI-L System thread map.
709 * PSI-L destination threads start at index 0x8000. The request is NACK'd if
727 * struct ti_sci_msg_psil_unpair - Unpairs a PSI-L source thread from a
730 * @nav_id: SoC Navigator Subsystem device ID whose PSI-L config proxy is
732 * @src_thread: PSI-L source thread ID within the PSI-L System thread map.
737 * @dst_thread: PSI-L destination thread ID within the PSI-L System thread map.
738 * PSI-L destination threads start at index 0x8000. The request is NACK'd if
755 * struct ti_sci_msg_udmap_rx_flow_cfg - UDMAP receive flow configuration
760 * @flow_index: UDMAP receive flow index for non-optional configuration.
771 * 0 - end of packet descriptor
772 * 1 - Beginning of the data buffer
819 * struct rm_ti_sci_msg_udmap_rx_flow_opt_cfg - parameters for UDMAP receive
854 * Configures the non-real-time registers of a Navigator Subsystem UDMAP
865 * 0 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::tx_pause_on_err
866 * 1 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::tx_atype
867 * 2 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::tx_chan_type
868 * 3 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::tx_fetch_size
869 * 4 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::txcq_qnum
870 * 5 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::tx_priority
871 * 6 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::tx_qos
872 * 7 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::tx_orderid
873 * 8 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::tx_sched_priority
874 * 9 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::tx_filt_einfo
875 * 10 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::tx_filt_pswords
876 * 11 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::tx_supr_tdpkt
877 * 12 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::tx_credit_count
878 * 13 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::fdepth
879 * 14 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::tx_burst_size
880 * 15 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::tx_tdtype
881 * 16 - Valid bit for @ref ti_sci_msg_rm_udmap_tx_ch_cfg::extended_ch_type
911 * @tx_fetch_size: UDMAP transmit channel number of 32-bit descriptor words to
948 * 0 - Return immediately
949 * 1 - Wait for completion message from remote peer
952 * 0 - the channel is split tx channel (tchan)
953 * 1 - the channel is block copy channel (bchan)
982 * Configures the non-real-time registers of a Navigator Subsystem UDMAP
994 * 0 - Valid bit for @ti_sci_msg_rm_udmap_rx_ch_cfg_req::rx_pause_on_err
995 * 1 - Valid bit for @ti_sci_msg_rm_udmap_rx_ch_cfg_req::rx_atype
996 * 2 - Valid bit for @ti_sci_msg_rm_udmap_rx_ch_cfg_req::rx_chan_type
997 * 3 - Valid bit for @ti_sci_msg_rm_udmap_rx_ch_cfg_req::rx_fetch_size
998 * 4 - Valid bit for @ti_sci_msg_rm_udmap_rx_ch_cfg_req::rxcq_qnum
999 * 5 - Valid bit for @ti_sci_msg_rm_udmap_rx_ch_cfg_req::rx_priority
1000 * 6 - Valid bit for @ti_sci_msg_rm_udmap_rx_ch_cfg_req::rx_qos
1001 * 7 - Valid bit for @ti_sci_msg_rm_udmap_rx_ch_cfg_req::rx_orderid
1002 * 8 - Valid bit for @ti_sci_msg_rm_udmap_rx_ch_cfg_req::rx_sched_priority
1003 * 9 - Valid bit for @ti_sci_msg_rm_udmap_rx_ch_cfg_req::flowid_start
1004 * 10 - Valid bit for @ti_sci_msg_rm_udmap_rx_ch_cfg_req::flowid_cnt
1005 * 11 - Valid bit for @ti_sci_msg_rm_udmap_rx_ch_cfg_req::rx_ignore_short
1006 * 12 - Valid bit for @ti_sci_msg_rm_udmap_rx_ch_cfg_req::rx_ignore_long
1007 * 14 - Valid bit for @ti_sci_msg_rm_udmap_rx_ch_cfg_req::rx_burst_size
1013 * @rx_fetch_size: UDMAP receive channel number of 32-bit descriptor words to
1038 * make use of beyond the default flow. flowid_start and @ref flowid_cnt must be
1040 * @ref flowid_cnt must be a flow index within the Navigator Subsystem's subset
1048 * of legal flow IDs for the channel. @ref flowid_start and flowid_cnt must be
1051 * allocated and used by the receive channel. @ref flowid_start plus flowid_cnt
1102 * Configuration does not include the flow registers which handle size-based
1114 * 0 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_einfo_present
1115 * 1 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_psinfo_present
1116 * 2 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_error_handling
1117 * 3 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_desc_type
1118 * 4 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_sop_offset
1119 * 5 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_dest_qnum
1120 * 6 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_src_tag_hi
1121 * 7 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_src_tag_lo
1122 * 8 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_dest_tag_hi
1123 * 9 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_dest_tag_lo
1124 * 10 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_src_tag_hi_sel
1125 * 11 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_src_tag_lo_sel
1126 * 12 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_dest_tag_hi_sel
1127 * 13 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_dest_tag_lo_sel
1128 * 14 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_fdq0_sz0_qnum
1129 * 15 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_fdq1_sz0_qnum
1130 * 16 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_fdq2_sz0_qnum
1131 * 17 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_fdq3_sz0_qnum
1132 * 18 - Valid bit for @tisci_msg_rm_udmap_flow_cfg_req::rx_ps_location
1137 * @flow_index: UDMAP receive flow index for non-optional configuration.
1159 * this field are 0-255 bytes.
1271 * struct ti_sci_msg_req_proc_request - Request a processor
1284 * struct ti_sci_msg_req_proc_release - Release a processor
1297 * struct ti_sci_msg_req_proc_handover - Handover a processor to a host
1317 * struct ti_sci_msg_req_set_config - Set Processor boot configuration
1342 * struct ti_sci_msg_req_set_ctrl - Set Processor boot control flags
1363 * struct ti_sci_msg_req_get_status - Processor boot status request
1376 * struct ti_sci_msg_resp_get_status - Processor boot status response