Lines Matching +full:power +full:- +full:controller

1 /* SPDX-License-Identifier: GPL-2.0 */
3 * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
10 #include <linux/dma-direction.h>
27 * enum mhi_callback - MHI callback
30 * @MHI_CB_LPM_ENTER: MHI host entered low power mode
31 * @MHI_CB_LPM_EXIT: MHI host about to exit low power mode
51 * enum mhi_flags - Transfer flags
63 * enum mhi_device_type - Device types
73 * enum mhi_ch_type - Channel types
89 * struct image_info - Firmware and RDDM table
102 * struct mhi_link_info - BW requirement
103 * target_link_speed - Link speed as defined by TLS bits in LinkControl reg
104 * target_link_width - Link width as defined by NLW bits in LinkStatus reg
112 * enum mhi_ee_type - Execution environment types
136 * enum mhi_state - MHI states
161 * enum mhi_ch_ee_mask - Execution environment mask for channel
181 * enum mhi_er_data_type - Event ring data types
191 * enum mhi_db_brst_mode - Doorbell mode
201 * struct mhi_channel_config - Channel configuration structure for controller
213 * @lpm_notify: The channel master requires low power mode notifications
218 * @wake-capable: Channel capable of waking up the system
240 * struct mhi_event_config - Event ring configuration structure for controller
244 * @channel: Dedicated channel number. U32_MAX indicates a non-dedicated ring
266 * struct mhi_controller_config - Root MHI controller configuration
290 * struct mhi_controller - Master MHI controller structure
292 * controller (required)
293 * @mhi_dev: MHI device instance for the controller
294 * @debugfs_dentry: MHI controller debugfs directory
311 * @max_chan: Maximum number of channels the controller supports
316 * @family_number: MHI controller family number
317 * @device_number: MHI controller device number
318 * @major_version: MHI controller major revision number
319 * @minor_version: MHI controller minor revision number
320 * @serial_number: MHI controller serial number obtained from BHI
321 * @oem_pk_hash: MHI controller OEM PK Hash obtained from BHI
326 * @pm_lock: Lock for protecting MHI power management state
328 * @pm_state: MHI power management state
333 * @pending_pkts: Pending packets for the controller
341 * @status_cb: CB function to notify power states of the device (required)
343 * @wake_put: CB function to de-assert device wake (optional)
344 * @wake_toggle: CB function to assert and de-assert device wake (optional)
345 * @runtime_get: CB function to controller runtime resume (required)
354 * @pre_init: MHI host needs to do pre-initialization before power up
357 * Fields marked as (required) need to be populated by the controller driver
363 * by the controller drivers. The MHI stack will just populate these fields
448 * struct mhi_device - Structure representing an MHI device which binds
452 * @mhi_cntrl: Controller the device belongs to
475 * struct mhi_result - Completed buffer information
489 * struct mhi_buf - MHI Buffer description
492 * ECA - Event context array data
493 * CCA - Channel context array data
505 * struct mhi_driver - Structure representing a MHI client driver
530 * mhi_alloc_controller - Allocate the MHI Controller structure
536 * mhi_free_controller - Free the MHI Controller structure
542 * mhi_register_controller - Register MHI controller
543 * @mhi_cntrl: MHI controller to register
544 * @config: Configuration to use for the controller
550 * mhi_unregister_controller - Unregister MHI controller
551 * @mhi_cntrl: MHI controller to unregister
556 * module_mhi_driver() - Helper macro for drivers that don't do
572 * __mhi_driver_register - Register driver with MHI framework
579 * mhi_driver_unregister - Unregister a driver for mhi_devices
585 * mhi_set_mhi_state - Set MHI device state
586 * @mhi_cntrl: MHI controller
593 * mhi_notify - Notify the MHI client driver about client device status
600 * mhi_prepare_for_power_up - Do pre-initialization before power up.
601 * This is optional, call this before power up if
602 * the controller does not want bus framework to
605 * @mhi_cntrl: MHI controller
610 * mhi_async_power_up - Start MHI power up sequence
611 * @mhi_cntrl: MHI controller
616 * mhi_sync_power_up - Start MHI power up sequence and wait till the device
618 * @mhi_cntrl: MHI controller
623 * mhi_power_down - Start MHI power down sequence
624 * @mhi_cntrl: MHI controller
630 * mhi_unprepare_after_power_down - Free any allocated memory after power down
631 * @mhi_cntrl: MHI controller
636 * mhi_pm_suspend - Move MHI into a suspended state
637 * @mhi_cntrl: MHI controller
642 * mhi_pm_resume - Resume MHI from suspended state
643 * @mhi_cntrl: MHI controller
648 * mhi_download_rddm_img - Download ramdump image from device for
650 * @mhi_cntrl: MHI controller
656 * mhi_force_rddm_mode - Force device into rddm mode
657 * @mhi_cntrl: MHI controller
662 * mhi_get_mhi_state - Get MHI state of the device
663 * @mhi_cntrl: MHI controller
668 * mhi_device_get - Disable device low power mode
674 * mhi_device_get_sync - Disable device low power mode. Synchronously
675 * take the controller out of suspended state
681 * mhi_device_put - Re-enable device low power mode
687 * mhi_prepare_for_transfer - Setup channel for data transfer
693 * mhi_unprepare_from_transfer - Unprepare the channels
699 * mhi_poll - Poll for any available data in DL direction
706 * mhi_queue_dma - Send or receive DMA mapped buffers from client device
718 * mhi_queue_buf - Send or receive raw buffers from client device over MHI
730 * mhi_queue_skb - Send or receive SKBs from client device over MHI channel