1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * Thunderbolt DMA configuration based mailbox support 4 * 5 * Copyright (C) 2017, Intel Corporation 6 * Authors: Michael Jamet <michael.jamet@intel.com> 7 * Mika Westerberg <mika.westerberg@linux.intel.com> 8 */ 9 10 #ifndef DMA_PORT_H_ 11 #define DMA_PORT_H_ 12 13 #include "tb.h" 14 15 struct tb_switch; 16 struct tb_dma_port; 17 18 #define DMA_PORT_CSS_ADDRESS 0x3fffff 19 #define DMA_PORT_CSS_MAX_SIZE SZ_128 20 21 struct tb_dma_port *dma_port_alloc(struct tb_switch *sw); 22 void dma_port_free(struct tb_dma_port *dma); 23 int dma_port_flash_read(struct tb_dma_port *dma, unsigned int address, 24 void *buf, size_t size); 25 int dma_port_flash_update_auth(struct tb_dma_port *dma); 26 int dma_port_flash_update_auth_status(struct tb_dma_port *dma, u32 *status); 27 int dma_port_flash_write(struct tb_dma_port *dma, unsigned int address, 28 const void *buf, size_t size); 29 int dma_port_power_cycle(struct tb_dma_port *dma); 30 31 #endif 32