__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
/* SPDX-License-Identifier: GPL-2.0
*
* Copyright (C) 2019 Texas Instruments Incorporated - https://www.ti.com/
*/
#ifndef __LINUX_MTD_HYPERBUS_H__
#define __LINUX_MTD_HYPERBUS_H__
#include <linux/mtd/map.h>
/* HyperBus command bits */
#define HYPERBUS_RW 0x80 /* R/W# */
#define HYPERBUS_RW_WRITE 0
#define HYPERBUS_RW_READ 0x80
#define HYPERBUS_AS 0x40 /* Address Space */
#define HYPERBUS_AS_MEM 0
#define HYPERBUS_AS_REG 0x40
#define HYPERBUS_BT 0x20 /* Burst Type */
#define HYPERBUS_BT_WRAPPED 0
#define HYPERBUS_BT_LINEAR 0x20
enum hyperbus_memtype {
HYPERFLASH,
HYPERRAM,
};
/**
* struct hyperbus_device - struct representing HyperBus slave device
* @map: map_info struct for accessing MMIO HyperBus flash memory
* @np: pointer to HyperBus slave device node
* @mtd: pointer to MTD struct
* @ctlr: pointer to HyperBus controller struct
* @memtype: type of memory device: HyperFlash or HyperRAM
* @priv: pointer to controller specific per device private data
*/
struct hyperbus_device {
struct map_info map;
struct device_node *np;
struct mtd_info *mtd;
struct hyperbus_ctlr *ctlr;
enum hyperbus_memtype memtype;
void *priv;
};
/**
* struct hyperbus_ops - struct representing custom HyperBus operations
* @read16: read 16 bit of data from flash in a single burst. Used to read
* from non default address space, such as ID/CFI space
* @write16: write 16 bit of data to flash in a single burst. Used to
* send cmd to flash or write single 16 bit word at a time.
* @copy_from: copy data from flash memory
* @copy_to: copy data to flash memory
* @calibrate: calibrate HyperBus controller
*/
struct hyperbus_ops {
u16 (*read16)(struct hyperbus_device *hbdev, unsigned long addr);
void (*write16)(struct hyperbus_device *hbdev,
unsigned long addr, u16 val);
void (*copy_from)(struct hyperbus_device *hbdev, void *to,
unsigned long from, ssize_t len);
void (*copy_to)(struct hyperbus_device *dev, unsigned long to,
const void *from, ssize_t len);
int (*calibrate)(struct hyperbus_device *dev);
};
/**
* struct hyperbus_ctlr - struct representing HyperBus controller
* @dev: pointer to HyperBus controller device
* @calibrated: flag to indicate ctlr calibration sequence is complete
* @ops: HyperBus controller ops
*/
struct hyperbus_ctlr {
struct device *dev;
bool calibrated;
const struct hyperbus_ops *ops;
};
/**
* hyperbus_register_device - probe and register a HyperBus slave memory device
* @hbdev: hyperbus_device struct with dev, np and ctlr field populated
*
* Return: 0 for success, others for failure.
*/
int hyperbus_register_device(struct hyperbus_device *hbdev);
/**
* hyperbus_unregister_device - deregister HyperBus slave memory device
* @hbdev: hyperbus_device to be unregistered
*/
void hyperbus_unregister_device(struct hyperbus_device *hbdev);
#endif /* __LINUX_MTD_HYPERBUS_H__ */
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| bbm.h | File | 4.71 KB | 0644 |
|
| blktrans.h | File | 2.62 KB | 0644 |
|
| cfi.h | File | 9.89 KB | 0644 |
|
| cfi_endian.h | File | 1.48 KB | 0644 |
|
| concat.h | File | 493 B | 0644 |
|
| doc2000.h | File | 5.38 KB | 0644 |
|
| flashchip.h | File | 2.44 KB | 0644 |
|
| ftl.h | File | 2.49 KB | 0644 |
|
| gen_probe.h | File | 615 B | 0644 |
|
| hyperbus.h | File | 2.83 KB | 0644 |
|
| inftl.h | File | 1.56 KB | 0644 |
|
| jedec.h | File | 1.93 KB | 0644 |
|
| lpc32xx_mlc.h | File | 348 B | 0644 |
|
| lpc32xx_slc.h | File | 348 B | 0644 |
|
| map.h | File | 12.71 KB | 0644 |
|
| mtd.h | File | 22.3 KB | 0644 |
|
| mtdram.h | File | 257 B | 0644 |
|
| nand-ecc-mtk.h | File | 1.18 KB | 0644 |
|
| nand-ecc-mxic.h | File | 1.32 KB | 0644 |
|
| nand-ecc-sw-bch.h | File | 2.07 KB | 0644 |
|
| nand-ecc-sw-hamming.h | File | 2.65 KB | 0644 |
|
| nand-gpio.h | File | 330 B | 0644 |
|
| nand-qpic-common.h | File | 14.06 KB | 0644 |
|
| nand.h | File | 33.59 KB | 0644 |
|
| ndfc.h | File | 2.02 KB | 0644 |
|
| nftl.h | File | 1.69 KB | 0644 |
|
| onenand.h | File | 7.79 KB | 0644 |
|
| onenand_regs.h | File | 7.05 KB | 0644 |
|
| onfi.h | File | 4.88 KB | 0644 |
|
| partitions.h | File | 3.85 KB | 0644 |
|
| pfow.h | File | 4.38 KB | 0644 |
|
| physmap.h | File | 808 B | 0644 |
|
| pismo.h | File | 271 B | 0644 |
|
| plat-ram.h | File | 668 B | 0644 |
|
| platnand.h | File | 2.49 KB | 0644 |
|
| qinfo.h | File | 2.49 KB | 0644 |
|
| rawnand.h | File | 52.65 KB | 0644 |
|
| sh_flctl.h | File | 5.79 KB | 0644 |
|
| sharpsl.h | File | 485 B | 0644 |
|
| spear_smi.h | File | 1.67 KB | 0644 |
|
| spi-nor.h | File | 16.34 KB | 0644 |
|
| spinand.h | File | 19.25 KB | 0644 |
|
| super.h | File | 578 B | 0644 |
|
| ubi.h | File | 9.79 KB | 0644 |
|
| xip.h | File | 2.5 KB | 0644 |
|