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