0001
0002
0003
0004
0005 #ifndef UFSHCD_PLTFRM_H_
0006 #define UFSHCD_PLTFRM_H_
0007
0008 #include <ufs/ufshcd.h>
0009
0010 #define UFS_PWM_MODE 1
0011 #define UFS_HS_MODE 2
0012
0013 struct ufs_dev_params {
0014 u32 pwm_rx_gear;
0015 u32 pwm_tx_gear;
0016 u32 hs_rx_gear;
0017 u32 hs_tx_gear;
0018 u32 rx_lanes;
0019 u32 tx_lanes;
0020 u32 rx_pwr_pwm;
0021 u32 tx_pwr_pwm;
0022 u32 rx_pwr_hs;
0023 u32 tx_pwr_hs;
0024 u32 hs_rate;
0025 u32 desired_working_mode;
0026 };
0027
0028 int ufshcd_get_pwr_dev_param(const struct ufs_dev_params *dev_param,
0029 const struct ufs_pa_layer_attr *dev_max,
0030 struct ufs_pa_layer_attr *agreed_pwr);
0031 void ufshcd_init_pwr_dev_param(struct ufs_dev_params *dev_param);
0032 int ufshcd_pltfrm_init(struct platform_device *pdev,
0033 const struct ufs_hba_variant_ops *vops);
0034 void ufshcd_pltfrm_shutdown(struct platform_device *pdev);
0035 int ufshcd_populate_vreg(struct device *dev, const char *name,
0036 struct ufs_vreg **out_vreg);
0037
0038 #endif