1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * Support for Intel Camera Imaging ISP subsystem. 4 * Copyright (c) 2010-2015, Intel Corporation. 5 * 6 * This program is free software; you can redistribute it and/or modify it 7 * under the terms and conditions of the GNU General Public License, 8 * version 2, as published by the Free Software Foundation. 9 * 10 * This program is distributed in the hope it will be useful, but WITHOUT 11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 13 * more details. 14 */ 15 16 #ifndef __SP_LOCAL_H_INCLUDED__ 17 #define __SP_LOCAL_H_INCLUDED__ 18 19 #include <type_support.h> 20 #include "sp_global.h" 21 22 #define sp_address_of(var) (HIVE_ADDR_ ## var) 23 24 /* 25 * deprecated 26 */ 27 #define store_sp_int(var, value) \ 28 sp_dmem_store_uint32(SP0_ID, (unsigned int)sp_address_of(var), \ 29 (uint32_t)(value)) 30 31 #define store_sp_ptr(var, value) \ 32 sp_dmem_store_uint32(SP0_ID, (unsigned int)sp_address_of(var), \ 33 (uint32_t)(value)) 34 35 #define load_sp_uint(var) \ 36 sp_dmem_load_uint32(SP0_ID, (unsigned int)sp_address_of(var)) 37 38 #define load_sp_array_uint8(array_name, index) \ 39 sp_dmem_load_uint8(SP0_ID, (unsigned int)sp_address_of(array_name) + \ 40 (index) * sizeof(uint8_t)) 41 42 #define load_sp_array_uint16(array_name, index) \ 43 sp_dmem_load_uint16(SP0_ID, (unsigned int)sp_address_of(array_name) + \ 44 (index) * sizeof(uint16_t)) 45 46 #define load_sp_array_uint(array_name, index) \ 47 sp_dmem_load_uint32(SP0_ID, (unsigned int)sp_address_of(array_name) + \ 48 (index) * sizeof(uint32_t)) 49 50 #define store_sp_var(var, data, bytes) \ 51 sp_dmem_store(SP0_ID, (unsigned int)sp_address_of(var), data, bytes) 52 53 #define store_sp_array_uint8(array_name, index, value) \ 54 sp_dmem_store_uint8(SP0_ID, (unsigned int)sp_address_of(array_name) + \ 55 (index) * sizeof(uint8_t), value) 56 57 #define store_sp_array_uint16(array_name, index, value) \ 58 sp_dmem_store_uint16(SP0_ID, (unsigned int)sp_address_of(array_name) + \ 59 (index) * sizeof(uint16_t), value) 60 61 #define store_sp_array_uint(array_name, index, value) \ 62 sp_dmem_store_uint32(SP0_ID, (unsigned int)sp_address_of(array_name) + \ 63 (index) * sizeof(uint32_t), value) 64 65 #define store_sp_var_with_offset(var, offset, data, bytes) \ 66 sp_dmem_store(SP0_ID, (unsigned int)sp_address_of(var) + \ 67 offset, data, bytes) 68 69 #define load_sp_var(var, data, bytes) \ 70 sp_dmem_load(SP0_ID, (unsigned int)sp_address_of(var), data, bytes) 71 72 #define load_sp_var_with_offset(var, offset, data, bytes) \ 73 sp_dmem_load(SP0_ID, (unsigned int)sp_address_of(var) + offset, \ 74 data, bytes) 75 76 #endif /* __SP_LOCAL_H_INCLUDED__ */ 77