Lines Matching refs:cryp

11 #include "jh7110-cryp.h"
39 struct starfive_cryp_dev *cryp = NULL, *tmp;
42 if (!ctx->cryp) {
44 cryp = tmp;
47 ctx->cryp = cryp;
49 cryp = ctx->cryp;
54 return cryp;
64 static int starfive_dma_init(struct starfive_cryp_dev *cryp)
71 cryp->tx = dma_request_chan(cryp->dev, "tx");
72 if (IS_ERR(cryp->tx))
73 return dev_err_probe(cryp->dev, PTR_ERR(cryp->tx),
76 cryp->rx = dma_request_chan(cryp->dev, "rx");
77 if (IS_ERR(cryp->rx)) {
78 dma_release_channel(cryp->tx);
79 return dev_err_probe(cryp->dev, PTR_ERR(cryp->rx),
86 static void starfive_dma_cleanup(struct starfive_cryp_dev *cryp)
88 dma_release_channel(cryp->tx);
89 dma_release_channel(cryp->rx);
96 struct starfive_cryp_dev *cryp = (struct starfive_cryp_dev *)priv;
98 mask = readl(cryp->base + STARFIVE_IE_MASK_OFFSET);
99 status = readl(cryp->base + STARFIVE_IE_FLAG_OFFSET);
102 writel(mask, cryp->base + STARFIVE_IE_MASK_OFFSET);
103 tasklet_schedule(&cryp->aes_done);
108 writel(mask, cryp->base + STARFIVE_IE_MASK_OFFSET);
109 tasklet_schedule(&cryp->hash_done);
114 writel(mask, cryp->base + STARFIVE_IE_MASK_OFFSET);
115 complete(&cryp->pka_done);
123 struct starfive_cryp_dev *cryp;
128 cryp = devm_kzalloc(&pdev->dev, sizeof(*cryp), GFP_KERNEL);
129 if (!cryp)
132 platform_set_drvdata(pdev, cryp);
133 cryp->dev = &pdev->dev;
135 cryp->base = devm_platform_get_and_ioremap_resource(pdev, 0, &res);
136 if (IS_ERR(cryp->base))
137 return dev_err_probe(&pdev->dev, PTR_ERR(cryp->base),
140 tasklet_init(&cryp->aes_done, starfive_aes_done_task, (unsigned long)cryp);
141 tasklet_init(&cryp->hash_done, starfive_hash_done_task, (unsigned long)cryp);
143 cryp->phys_base = res->start;
144 cryp->dma_maxburst = 32;
145 cryp->side_chan = side_chan;
147 cryp->hclk = devm_clk_get(&pdev->dev, "hclk");
148 if (IS_ERR(cryp->hclk))
149 return dev_err_probe(&pdev->dev, PTR_ERR(cryp->hclk),
152 cryp->ahb = devm_clk_get(&pdev->dev, "ahb");
153 if (IS_ERR(cryp->ahb))
154 return dev_err_probe(&pdev->dev, PTR_ERR(cryp->ahb),
157 cryp->rst = devm_reset_control_get_shared(cryp->dev, NULL);
158 if (IS_ERR(cryp->rst))
159 return dev_err_probe(&pdev->dev, PTR_ERR(cryp->rst),
162 init_completion(&cryp->pka_done);
169 (void *)cryp);
174 clk_prepare_enable(cryp->hclk);
175 clk_prepare_enable(cryp->ahb);
176 reset_control_deassert(cryp->rst);
179 list_add(&cryp->list, &dev_list.dev_list);
182 ret = starfive_dma_init(cryp);
187 cryp->engine = crypto_engine_alloc_init(&pdev->dev, 1);
188 if (!cryp->engine) {
193 ret = crypto_engine_start(cryp->engine);
216 crypto_engine_stop(cryp->engine);
218 crypto_engine_exit(cryp->engine);
220 starfive_dma_cleanup(cryp);
223 list_del(&cryp->list);
226 clk_disable_unprepare(cryp->hclk);
227 clk_disable_unprepare(cryp->ahb);
228 reset_control_assert(cryp->rst);
230 tasklet_kill(&cryp->aes_done);
231 tasklet_kill(&cryp->hash_done);
238 struct starfive_cryp_dev *cryp = platform_get_drvdata(pdev);
244 tasklet_kill(&cryp->aes_done);
245 tasklet_kill(&cryp->hash_done);
247 crypto_engine_stop(cryp->engine);
248 crypto_engine_exit(cryp->engine);
250 starfive_dma_cleanup(cryp);
253 list_del(&cryp->list);
256 clk_disable_unprepare(cryp->hclk);
257 clk_disable_unprepare(cryp->ahb);
258 reset_control_assert(cryp->rst);