summaryrefslogtreecommitdiff
path: root/arch/x86/include/asm/fast_spi.h
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2020-05-27 06:58:46 -0600
committerBin Meng <bmeng.cn@gmail.com>2020-06-02 09:16:13 +0800
commit8e2922e357fe0157593063d46f8e9bd2c25a00e0 (patch)
treea78b84536befe740edd09f48417996a74d99d6b8 /arch/x86/include/asm/fast_spi.h
parent9452b7496f8b85ca3bdda1014495df1a6235a8de (diff)
x86: spi: Add a way to access the SPI mapping via registers
At present the PCI BDF (bus/device/function) is needed to access the SPI mapping, since the registers are at BAR0. This doesn't work when PCI auto-config has not been done yet, since BARs are unassigned. Add another way to find the mapping, using the MMIO base, if the caller knows this. Also add a missing function comment. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Diffstat (limited to 'arch/x86/include/asm/fast_spi.h')
-rw-r--r--arch/x86/include/asm/fast_spi.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/x86/include/asm/fast_spi.h b/arch/x86/include/asm/fast_spi.h
index 47c1da80d77..7a81d4f05c6 100644
--- a/arch/x86/include/asm/fast_spi.h
+++ b/arch/x86/include/asm/fast_spi.h
@@ -64,6 +64,25 @@ check_member(fast_spi_regs, ptdata, 0xd0);
int fast_spi_get_bios_mmap(pci_dev_t pdev, ulong *map_basep, uint *map_sizep,
uint *offsetp);
+/**
+ * fast_spi_get_bios_mmap_regs() - Get memory map for SPI flash given regs
+ *
+ * @regs: SPI registers to use
+ * @map_basep: Returns base memory address for mapped SPI
+ * @map_sizep: Returns size of mapped SPI
+ * @offsetp: Returns start offset of SPI flash where the map works
+ * correctly (offsets before this are not visible)
+ * @return 0 (always)
+ */
+int fast_spi_get_bios_mmap_regs(struct fast_spi_regs *regs, ulong *map_basep,
+ uint *map_sizep, uint *offsetp);
+
+/**
+ * fast_spi_early_init() - Set up a BAR to use SPI early in U-Boot
+ *
+ * @pdev: PCI device to use (this is the Fast SPI device)
+ * @mmio_base: MMIO base to use to access registers
+ */
int fast_spi_early_init(pci_dev_t pdev, ulong mmio_base);
#endif /* ASM_FAST_SPI_H */