Lines Matching refs:data
97 static inline u32 cdns_imx_readl(struct cdns_imx *data, u32 offset)
99 return readl(data->noncore + offset);
102 static inline void cdns_imx_writel(struct cdns_imx *data, u32 offset, u32 value)
104 writel(value, data->noncore + offset);
115 static int cdns_imx_noncore_init(struct cdns_imx *data)
119 struct device *dev = data->dev;
121 cdns_imx_writel(data, USB3_SSPHY_STATUS, CLK_VALID_MASK);
123 ret = readl_poll_timeout(data->noncore + USB3_SSPHY_STATUS, value,
131 value = cdns_imx_readl(data, USB3_CORE_CTRL1);
133 cdns_imx_writel(data, USB3_CORE_CTRL1, value);
136 value = cdns_imx_readl(data, USB3_CORE_CTRL1);
138 cdns_imx_writel(data, USB3_CORE_CTRL1, value);
140 value = cdns_imx_readl(data, USB3_INT_REG);
142 cdns_imx_writel(data, USB3_INT_REG, value);
144 value = cdns_imx_readl(data, USB3_CORE_CTRL1);
146 cdns_imx_writel(data, USB3_CORE_CTRL1, value);
168 struct cdns_imx *data;
174 data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL);
175 if (!data)
178 platform_set_drvdata(pdev, data);
179 data->dev = dev;
180 data->noncore = devm_platform_ioremap_resource(pdev, 0);
181 if (IS_ERR(data->noncore)) {
183 return PTR_ERR(data->noncore);
186 data->num_clks = ARRAY_SIZE(imx_cdns3_core_clks);
187 data->clks = devm_kmemdup(dev, imx_cdns3_core_clks,
189 if (!data->clks)
192 ret = devm_clk_bulk_get(dev, data->num_clks, data->clks);
196 ret = clk_bulk_prepare_enable(data->num_clks, data->clks);
200 ret = cdns_imx_noncore_init(data);
217 clk_bulk_disable_unprepare(data->num_clks, data->clks);
232 static void cdns3_set_wakeup(struct cdns_imx *data, bool enable)
236 value = cdns_imx_readl(data, USB3_INT_REG);
242 cdns_imx_writel(data, USB3_INT_REG, value);
250 struct cdns_imx *data = dev_get_drvdata(parent);
267 value = cdns_imx_readl(data, USB3_CORE_CTRL1);
269 cdns_imx_writel(data, USB3_CORE_CTRL1, value);
272 value = cdns_imx_readl(data, USB3_CORE_STATUS);
273 ret = readl_poll_timeout(data->noncore + USB3_CORE_STATUS, value,
280 value = cdns_imx_readl(data, USB3_INT_REG);
281 ret = readl_poll_timeout(data->noncore + USB3_INT_REG, value,
288 value = cdns_imx_readl(data, USB3_SSPHY_STATUS);
289 ret = readl_poll_timeout(data->noncore + USB3_SSPHY_STATUS, value,
295 cdns3_set_wakeup(data, wakeup);
297 cdns3_set_wakeup(data, false);
311 value = cdns_imx_readl(data, USB3_CORE_CTRL1);
313 cdns_imx_writel(data, USB3_CORE_CTRL1, value);
316 value = cdns_imx_readl(data, USB3_INT_REG);
317 ret = readl_poll_timeout(data->noncore + USB3_INT_REG, value,
324 value = cdns_imx_readl(data, USB3_CORE_STATUS);
325 ret = readl_poll_timeout(data->noncore + USB3_CORE_STATUS, value,
346 struct cdns_imx *data = dev_get_drvdata(dev);
348 return clk_bulk_prepare_enable(data->num_clks, data->clks);
353 struct cdns_imx *data = dev_get_drvdata(dev);
355 clk_bulk_disable_unprepare(data->num_clks, data->clks);