162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Thunderbolt DMA configuration based mailbox support 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright (C) 2017, Intel Corporation 662306a36Sopenharmony_ci * Authors: Michael Jamet <michael.jamet@intel.com> 762306a36Sopenharmony_ci * Mika Westerberg <mika.westerberg@linux.intel.com> 862306a36Sopenharmony_ci */ 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci#ifndef DMA_PORT_H_ 1162306a36Sopenharmony_ci#define DMA_PORT_H_ 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci#include "tb.h" 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_cistruct tb_switch; 1662306a36Sopenharmony_cistruct tb_dma_port; 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci#define DMA_PORT_CSS_ADDRESS 0x3fffff 1962306a36Sopenharmony_ci#define DMA_PORT_CSS_MAX_SIZE SZ_128 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_cistruct tb_dma_port *dma_port_alloc(struct tb_switch *sw); 2262306a36Sopenharmony_civoid dma_port_free(struct tb_dma_port *dma); 2362306a36Sopenharmony_ciint dma_port_flash_read(struct tb_dma_port *dma, unsigned int address, 2462306a36Sopenharmony_ci void *buf, size_t size); 2562306a36Sopenharmony_ciint dma_port_flash_update_auth(struct tb_dma_port *dma); 2662306a36Sopenharmony_ciint dma_port_flash_update_auth_status(struct tb_dma_port *dma, u32 *status); 2762306a36Sopenharmony_ciint dma_port_flash_write(struct tb_dma_port *dma, unsigned int address, 2862306a36Sopenharmony_ci const void *buf, size_t size); 2962306a36Sopenharmony_ciint dma_port_power_cycle(struct tb_dma_port *dma); 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci#endif 32