1 /* SPDX-License-Identifier: GPL-2.0+ */ 2 /* 3 * Copyright 2023 Arm Limited and/or its affiliates <open-source-office@arm.com> 4 * 5 * Authors: 6 * Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com> 7 */ 8 9 #ifndef __DRIVER_NVMXIP_H__ 10 #define __DRIVER_NVMXIP_H__ 11 12 #include <blk.h> 13 14 #define NVMXIP_BLKDRV_NAME "nvmxip-blk" 15 #define NVMXIP_BLKDEV_NAME_SZ 20 16 17 /** 18 * struct nvmxip_plat - the NVMXIP driver plat 19 * 20 * @phys_base: NVM XIP device base address 21 * @lba_shift: block size shift count 22 * @lba: number of blocks 23 * 24 * The NVMXIP information read from the DT. 25 */ 26 struct nvmxip_plat { 27 phys_addr_t phys_base; 28 u32 lba_shift; 29 lbaint_t lba; 30 }; 31 32 /** 33 * nvmxip_bind() - post binding treatments 34 * @dev: the NVMXIP device 35 * 36 * Create and probe a child block device. 37 * 38 * Return: 39 * 40 * 0 on success. Otherwise, failure 41 */ 42 int nvmxip_probe(struct udevice *udev); 43 44 #endif /* __DRIVER_NVMXIP_H__ */ 45