| /* SPDX-License-Identifier: GPL-2.0 */ |
| /* |
| * Support for Intel Camera Imaging ISP subsystem. |
| * Copyright (c) 2010-2015, Intel Corporation. |
| * |
| * This program is free software; you can redistribute it and/or modify it |
| * under the terms and conditions of the GNU General Public License, |
| * version 2, as published by the Free Software Foundation. |
| * |
| * This program is distributed in the hope it will be useful, but WITHOUT |
| * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for |
| * more details. |
| */ |
| |
| #ifndef __INPUT_SYSTEM_PRIVATE_H_INCLUDED__ |
| #define __INPUT_SYSTEM_PRIVATE_H_INCLUDED__ |
| |
| #include "input_system_public.h" |
| |
| #include "device_access.h" |
| |
| #include "assert_support.h" |
| |
| STORAGE_CLASS_INPUT_SYSTEM_C void input_system_reg_store( |
| const input_system_ID_t ID, |
| const hrt_address reg, |
| const hrt_data value) |
| { |
| assert(ID < N_INPUT_SYSTEM_ID); |
| assert(INPUT_SYSTEM_BASE[ID] != (hrt_address)-1); |
| ia_css_device_store_uint32(INPUT_SYSTEM_BASE[ID] + reg * sizeof(hrt_data), |
| value); |
| return; |
| } |
| |
| STORAGE_CLASS_INPUT_SYSTEM_C hrt_data input_system_reg_load( |
| const input_system_ID_t ID, |
| const hrt_address reg) |
| { |
| assert(ID < N_INPUT_SYSTEM_ID); |
| assert(INPUT_SYSTEM_BASE[ID] != (hrt_address)-1); |
| return ia_css_device_load_uint32(INPUT_SYSTEM_BASE[ID] + reg * sizeof( |
| hrt_data)); |
| } |
| |
| STORAGE_CLASS_INPUT_SYSTEM_C void receiver_reg_store( |
| const rx_ID_t ID, |
| const hrt_address reg, |
| const hrt_data value) |
| { |
| assert(ID < N_RX_ID); |
| assert(RX_BASE[ID] != (hrt_address)-1); |
| ia_css_device_store_uint32(RX_BASE[ID] + reg * sizeof(hrt_data), value); |
| return; |
| } |
| |
| STORAGE_CLASS_INPUT_SYSTEM_C hrt_data receiver_reg_load( |
| const rx_ID_t ID, |
| const hrt_address reg) |
| { |
| assert(ID < N_RX_ID); |
| assert(RX_BASE[ID] != (hrt_address)-1); |
| return ia_css_device_load_uint32(RX_BASE[ID] + reg * sizeof(hrt_data)); |
| } |
| |
| STORAGE_CLASS_INPUT_SYSTEM_C void receiver_port_reg_store( |
| const rx_ID_t ID, |
| const enum mipi_port_id port_ID, |
| const hrt_address reg, |
| const hrt_data value) |
| { |
| assert(ID < N_RX_ID); |
| assert(port_ID < N_MIPI_PORT_ID); |
| assert(RX_BASE[ID] != (hrt_address)-1); |
| assert(MIPI_PORT_OFFSET[port_ID] != (hrt_address)-1); |
| ia_css_device_store_uint32(RX_BASE[ID] + MIPI_PORT_OFFSET[port_ID] + reg * |
| sizeof(hrt_data), value); |
| return; |
| } |
| |
| STORAGE_CLASS_INPUT_SYSTEM_C hrt_data receiver_port_reg_load( |
| const rx_ID_t ID, |
| const enum mipi_port_id port_ID, |
| const hrt_address reg) |
| { |
| assert(ID < N_RX_ID); |
| assert(port_ID < N_MIPI_PORT_ID); |
| assert(RX_BASE[ID] != (hrt_address)-1); |
| assert(MIPI_PORT_OFFSET[port_ID] != (hrt_address)-1); |
| return ia_css_device_load_uint32(RX_BASE[ID] + MIPI_PORT_OFFSET[port_ID] + reg * |
| sizeof(hrt_data)); |
| } |
| |
| STORAGE_CLASS_INPUT_SYSTEM_C void input_system_sub_system_reg_store( |
| const input_system_ID_t ID, |
| const sub_system_ID_t sub_ID, |
| const hrt_address reg, |
| const hrt_data value) |
| { |
| assert(ID < N_INPUT_SYSTEM_ID); |
| assert(sub_ID < N_SUB_SYSTEM_ID); |
| assert(INPUT_SYSTEM_BASE[ID] != (hrt_address)-1); |
| assert(SUB_SYSTEM_OFFSET[sub_ID] != (hrt_address)-1); |
| ia_css_device_store_uint32(INPUT_SYSTEM_BASE[ID] + SUB_SYSTEM_OFFSET[sub_ID] + |
| reg * sizeof(hrt_data), value); |
| return; |
| } |
| |
| STORAGE_CLASS_INPUT_SYSTEM_C hrt_data input_system_sub_system_reg_load( |
| const input_system_ID_t ID, |
| const sub_system_ID_t sub_ID, |
| const hrt_address reg) |
| { |
| assert(ID < N_INPUT_SYSTEM_ID); |
| assert(sub_ID < N_SUB_SYSTEM_ID); |
| assert(INPUT_SYSTEM_BASE[ID] != (hrt_address)-1); |
| assert(SUB_SYSTEM_OFFSET[sub_ID] != (hrt_address)-1); |
| return ia_css_device_load_uint32(INPUT_SYSTEM_BASE[ID] + |
| SUB_SYSTEM_OFFSET[sub_ID] + reg * sizeof(hrt_data)); |
| } |
| |
| #endif /* __INPUT_SYSTEM_PRIVATE_H_INCLUDED__ */ |