Lines Matching +full:host +full:- +full:controller

1 // SPDX-License-Identifier: GPL-2.0
3 * Platform UFS Host driver for Cadence controller
19 #include "ufshcd-pltfrm.h"
27 * cdns_ufs_dme_attr_val - for storing L4 attributes
33 * cdns_ufs_get_l4_attr - get L4 attributes on local side
39 struct cdns_ufs_host *host = ufshcd_get_variant(hba); in cdns_ufs_get_l4_attr() local
42 &host->cdns_ufs_dme_attr_val[0]); in cdns_ufs_get_l4_attr()
44 &host->cdns_ufs_dme_attr_val[1]); in cdns_ufs_get_l4_attr()
46 &host->cdns_ufs_dme_attr_val[2]); in cdns_ufs_get_l4_attr()
48 &host->cdns_ufs_dme_attr_val[3]); in cdns_ufs_get_l4_attr()
50 &host->cdns_ufs_dme_attr_val[4]); in cdns_ufs_get_l4_attr()
52 &host->cdns_ufs_dme_attr_val[5]); in cdns_ufs_get_l4_attr()
54 &host->cdns_ufs_dme_attr_val[6]); in cdns_ufs_get_l4_attr()
56 &host->cdns_ufs_dme_attr_val[7]); in cdns_ufs_get_l4_attr()
58 &host->cdns_ufs_dme_attr_val[8]); in cdns_ufs_get_l4_attr()
60 &host->cdns_ufs_dme_attr_val[9]); in cdns_ufs_get_l4_attr()
62 &host->cdns_ufs_dme_attr_val[10]); in cdns_ufs_get_l4_attr()
64 &host->cdns_ufs_dme_attr_val[11]); in cdns_ufs_get_l4_attr()
68 * cdns_ufs_set_l4_attr - set L4 attributes on local side
74 struct cdns_ufs_host *host = ufshcd_get_variant(hba); in cdns_ufs_set_l4_attr() local
78 host->cdns_ufs_dme_attr_val[0]); in cdns_ufs_set_l4_attr()
80 host->cdns_ufs_dme_attr_val[1]); in cdns_ufs_set_l4_attr()
82 host->cdns_ufs_dme_attr_val[2]); in cdns_ufs_set_l4_attr()
84 host->cdns_ufs_dme_attr_val[3]); in cdns_ufs_set_l4_attr()
86 host->cdns_ufs_dme_attr_val[4]); in cdns_ufs_set_l4_attr()
88 host->cdns_ufs_dme_attr_val[5]); in cdns_ufs_set_l4_attr()
90 host->cdns_ufs_dme_attr_val[6]); in cdns_ufs_set_l4_attr()
92 host->cdns_ufs_dme_attr_val[7]); in cdns_ufs_set_l4_attr()
94 host->cdns_ufs_dme_attr_val[8]); in cdns_ufs_set_l4_attr()
96 host->cdns_ufs_dme_attr_val[9]); in cdns_ufs_set_l4_attr()
98 host->cdns_ufs_dme_attr_val[10]); in cdns_ufs_set_l4_attr()
100 host->cdns_ufs_dme_attr_val[11]); in cdns_ufs_set_l4_attr()
106 * @hba: host controller instance
108 * Return zero for success and non-zero for failure
113 struct list_head *head = &hba->clk_list_head; in cdns_ufs_set_hclkdiv()
121 if (IS_ERR_OR_NULL(clki->clk)) in cdns_ufs_set_hclkdiv()
123 if (!strcmp(clki->name, "core_clk")) in cdns_ufs_set_hclkdiv()
124 core_clk_rate = clk_get_rate(clki->clk); in cdns_ufs_set_hclkdiv()
128 dev_err(hba->dev, "%s: unable to find core_clk rate\n", in cdns_ufs_set_hclkdiv()
130 return -EINVAL; in cdns_ufs_set_hclkdiv()
148 * @hba: host controller instance
151 * Return zero for success and non-zero for failure
165 * @hba: host controller instance
182 * @hba: host controller instance
185 * Return zero for success and non-zero for failure
196 * before link startup which will make sure that both host in cdns_ufs_link_startup_notify()
206 hba->ahit = 0; in cdns_ufs_link_startup_notify()
212 * cdns_ufs_init - performs additional ufs initialization
213 * @hba: host controller instance
220 struct cdns_ufs_host *host; in cdns_ufs_init() local
221 struct device *dev = hba->dev; in cdns_ufs_init()
223 host = devm_kzalloc(dev, sizeof(*host), GFP_KERNEL); in cdns_ufs_init()
225 if (!host) in cdns_ufs_init()
226 return -ENOMEM; in cdns_ufs_init()
227 ufshcd_set_variant(hba, host); in cdns_ufs_init()
235 * cdns_ufs_m31_16nm_phy_initialization - performs m31 phy initialization
236 * @hba: host controller instance
253 .name = "cdns-ufs-pltfm",
261 .name = "cdns-ufs-pltfm",
275 .compatible = "cdns,ufshc-m31-16nm",
284 * cdns_ufs_pltfrm_probe - probe routine of the driver
287 * Return zero for success and non-zero for failure
294 struct device *dev = &pdev->dev; in cdns_ufs_pltfrm_probe()
296 of_id = of_match_node(cdns_ufs_of_match, dev->of_node); in cdns_ufs_pltfrm_probe()
297 vops = (struct ufs_hba_variant_ops *)of_id->data; in cdns_ufs_pltfrm_probe()
308 * cdns_ufs_pltfrm_remove - removes the ufs driver
333 .name = "cdns-ufshcd",
342 MODULE_DESCRIPTION("Cadence UFS host controller platform driver");