| Author | Tokens | Token Proportion | Commits | Commit Proportion |
|---|---|---|---|---|
| T Pratham | 191 | 100.00% | 1 | 100.00% |
| Total | 191 | 1 |
/* SPDX-License-Identifier: GPL-2.0-only */ /* * K3 DTHE V2 crypto accelerator driver * * Copyright (C) Texas Instruments 2025 - https://www.ti.com * Author: T Pratham <t-pratham@ti.com> */ #ifndef __TI_DTHEV2_H__ #define __TI_DTHEV2_H__ #include <crypto/aead.h> #include <crypto/aes.h> #include <crypto/algapi.h> #include <crypto/engine.h> #include <crypto/hash.h> #include <crypto/internal/aead.h> #include <crypto/internal/hash.h> #include <crypto/internal/skcipher.h> #include <linux/delay.h> #include <linux/dmaengine.h> #include <linux/dmapool.h> #include <linux/dma-mapping.h> #include <linux/io.h> #include <linux/scatterlist.h> #define DTHE_REG_SIZE 4 #define DTHE_DMA_TIMEOUT_MS 2000 enum dthe_aes_mode { DTHE_AES_ECB = 0, DTHE_AES_CBC, }; /* Driver specific struct definitions */ /** * struct dthe_data - DTHE_V2 driver instance data * @dev: Device pointer * @regs: Base address of the register space * @list: list node for dev * @engine: Crypto engine instance * @dma_aes_rx: AES Rx DMA Channel * @dma_aes_tx: AES Tx DMA Channel * @dma_sha_tx: SHA Tx DMA Channel */ struct dthe_data { struct device *dev; void __iomem *regs; struct list_head list; struct crypto_engine *engine; struct dma_chan *dma_aes_rx; struct dma_chan *dma_aes_tx; struct dma_chan *dma_sha_tx; }; /** * struct dthe_list - device data list head * @dev_list: linked list head * @lock: Spinlock protecting accesses to the list */ struct dthe_list { struct list_head dev_list; spinlock_t lock; }; /** * struct dthe_tfm_ctx - Transform ctx struct containing ctx for all sub-components of DTHE V2 * @dev_data: Device data struct pointer * @keylen: AES key length * @key: AES key * @aes_mode: AES mode */ struct dthe_tfm_ctx { struct dthe_data *dev_data; unsigned int keylen; u32 key[AES_KEYSIZE_256 / sizeof(u32)]; enum dthe_aes_mode aes_mode; }; /** * struct dthe_aes_req_ctx - AES engine req ctx struct * @enc: flag indicating encryption or decryption operation * @aes_compl: Completion variable for use in manual completion in case of DMA callback failure */ struct dthe_aes_req_ctx { int enc; struct completion aes_compl; }; /* Struct definitions end */ struct dthe_data *dthe_get_dev(struct dthe_tfm_ctx *ctx); int dthe_register_aes_algs(void); void dthe_unregister_aes_algs(void); #endif
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with Cregit http://github.com/cregit/cregit
Version 2.0-RC1