2 * Support for Intel Camera Imaging ISP subsystem.
3 * Copyright (c) 2015, Intel Corporation.
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms and conditions of the GNU General Public License,
7 * version 2, as published by the Free Software Foundation.
9 * This program is distributed in the hope it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
15 #ifndef __GP_DEVICE_PUBLIC_H_INCLUDED__
16 #define __GP_DEVICE_PUBLIC_H_INCLUDED__
18 #include "system_types.h"
20 typedef struct gp_device_state_s gp_device_state_t;
22 /*! Read the state of GP_DEVICE[ID]
24 \param ID[in] GP_DEVICE identifier
25 \param state[out] gp device state structure
27 \return none, state = GP_DEVICE[ID].state
29 extern void gp_device_get_state(
30 const gp_device_ID_t ID,
31 gp_device_state_t *state);
33 /*! Write to a control register of GP_DEVICE[ID]
35 \param ID[in] GP_DEVICE identifier
36 \param reg_addr[in] register byte address
37 \param value[in] The data to be written
39 \return none, GP_DEVICE[ID].ctrl[reg] = value
41 STORAGE_CLASS_GP_DEVICE_H void gp_device_reg_store(
42 const gp_device_ID_t ID,
43 const unsigned int reg_addr,
44 const hrt_data value);
46 /*! Read from a control register of GP_DEVICE[ID]
48 \param ID[in] GP_DEVICE identifier
49 \param reg_addr[in] register byte address
50 \param value[in] The data to be written
52 \return GP_DEVICE[ID].ctrl[reg]
54 STORAGE_CLASS_GP_DEVICE_H hrt_data gp_device_reg_load(
55 const gp_device_ID_t ID,
56 const hrt_address reg_addr);
58 #endif /* __GP_DEVICE_PUBLIC_H_INCLUDED__ */