1c66ec88fSEmmanuel Vadot /* SPDX-License-Identifier: GPL-2.0 */ 2c66ec88fSEmmanuel Vadot /* 3c66ec88fSEmmanuel Vadot * This header provides constants for binding nvidia,tegra186-hsp. 4c66ec88fSEmmanuel Vadot */ 5c66ec88fSEmmanuel Vadot 6c66ec88fSEmmanuel Vadot #ifndef _DT_BINDINGS_MAILBOX_TEGRA186_HSP_H 7c66ec88fSEmmanuel Vadot #define _DT_BINDINGS_MAILBOX_TEGRA186_HSP_H 8c66ec88fSEmmanuel Vadot 9c66ec88fSEmmanuel Vadot /* 10c66ec88fSEmmanuel Vadot * These define the type of mailbox that is to be used (doorbell, shared 11c66ec88fSEmmanuel Vadot * mailbox, shared semaphore or arbitrated semaphore). 12c66ec88fSEmmanuel Vadot */ 13c66ec88fSEmmanuel Vadot #define TEGRA_HSP_MBOX_TYPE_DB 0x0 14c66ec88fSEmmanuel Vadot #define TEGRA_HSP_MBOX_TYPE_SM 0x1 15c66ec88fSEmmanuel Vadot #define TEGRA_HSP_MBOX_TYPE_SS 0x2 16c66ec88fSEmmanuel Vadot #define TEGRA_HSP_MBOX_TYPE_AS 0x3 17c66ec88fSEmmanuel Vadot 18c66ec88fSEmmanuel Vadot /* 19*d5b0e70fSEmmanuel Vadot * These define the types of shared mailbox supported based on data size. 20*d5b0e70fSEmmanuel Vadot */ 21*d5b0e70fSEmmanuel Vadot #define TEGRA_HSP_MBOX_TYPE_SM_128BIT (1 << 8) 22*d5b0e70fSEmmanuel Vadot 23*d5b0e70fSEmmanuel Vadot /* 24c66ec88fSEmmanuel Vadot * These defines represent the bit associated with the given master ID in the 25c66ec88fSEmmanuel Vadot * doorbell registers. 26c66ec88fSEmmanuel Vadot */ 27c66ec88fSEmmanuel Vadot #define TEGRA_HSP_DB_MASTER_CCPLEX 17 28c66ec88fSEmmanuel Vadot #define TEGRA_HSP_DB_MASTER_BPMP 19 29c66ec88fSEmmanuel Vadot 30c66ec88fSEmmanuel Vadot /* 31c66ec88fSEmmanuel Vadot * Shared mailboxes are unidirectional, so the direction needs to be specified 32c66ec88fSEmmanuel Vadot * in the device tree. 33c66ec88fSEmmanuel Vadot */ 34c66ec88fSEmmanuel Vadot #define TEGRA_HSP_SM_MASK 0x00ffffff 35c66ec88fSEmmanuel Vadot #define TEGRA_HSP_SM_FLAG_RX (0 << 31) 36c66ec88fSEmmanuel Vadot #define TEGRA_HSP_SM_FLAG_TX (1 << 31) 37c66ec88fSEmmanuel Vadot 38c66ec88fSEmmanuel Vadot #define TEGRA_HSP_SM_RX(x) (TEGRA_HSP_SM_FLAG_RX | ((x) & TEGRA_HSP_SM_MASK)) 39c66ec88fSEmmanuel Vadot #define TEGRA_HSP_SM_TX(x) (TEGRA_HSP_SM_FLAG_TX | ((x) & TEGRA_HSP_SM_MASK)) 40c66ec88fSEmmanuel Vadot 41c66ec88fSEmmanuel Vadot #endif 42