1f5fbb83fSMauro Carvalho Chehab /* SPDX-License-Identifier: GPL-2.0 */ 29d4fa1a1SMauro Carvalho Chehab /* 39d4fa1a1SMauro Carvalho Chehab * Support for Intel Camera Imaging ISP subsystem. 49d4fa1a1SMauro Carvalho Chehab * Copyright (c) 2015, Intel Corporation. 59d4fa1a1SMauro Carvalho Chehab * 69d4fa1a1SMauro Carvalho Chehab * This program is free software; you can redistribute it and/or modify it 79d4fa1a1SMauro Carvalho Chehab * under the terms and conditions of the GNU General Public License, 89d4fa1a1SMauro Carvalho Chehab * version 2, as published by the Free Software Foundation. 99d4fa1a1SMauro Carvalho Chehab * 109d4fa1a1SMauro Carvalho Chehab * This program is distributed in the hope it will be useful, but WITHOUT 119d4fa1a1SMauro Carvalho Chehab * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 129d4fa1a1SMauro Carvalho Chehab * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 139d4fa1a1SMauro Carvalho Chehab * more details. 149d4fa1a1SMauro Carvalho Chehab */ 159d4fa1a1SMauro Carvalho Chehab 169d4fa1a1SMauro Carvalho Chehab #ifndef __GP_DEVICE_PUBLIC_H_INCLUDED__ 179d4fa1a1SMauro Carvalho Chehab #define __GP_DEVICE_PUBLIC_H_INCLUDED__ 189d4fa1a1SMauro Carvalho Chehab 19f90e73ceSMauro Carvalho Chehab #include "system_local.h" 209d4fa1a1SMauro Carvalho Chehab 219d4fa1a1SMauro Carvalho Chehab typedef struct gp_device_state_s gp_device_state_t; 229d4fa1a1SMauro Carvalho Chehab 239d4fa1a1SMauro Carvalho Chehab /*! Read the state of GP_DEVICE[ID] 249d4fa1a1SMauro Carvalho Chehab 259d4fa1a1SMauro Carvalho Chehab \param ID[in] GP_DEVICE identifier 269d4fa1a1SMauro Carvalho Chehab \param state[out] gp device state structure 279d4fa1a1SMauro Carvalho Chehab 289d4fa1a1SMauro Carvalho Chehab \return none, state = GP_DEVICE[ID].state 299d4fa1a1SMauro Carvalho Chehab */ 309d4fa1a1SMauro Carvalho Chehab void gp_device_get_state( 319d4fa1a1SMauro Carvalho Chehab const gp_device_ID_t ID, 329d4fa1a1SMauro Carvalho Chehab gp_device_state_t *state); 339d4fa1a1SMauro Carvalho Chehab 349d4fa1a1SMauro Carvalho Chehab /*! Write to a control register of GP_DEVICE[ID] 359d4fa1a1SMauro Carvalho Chehab 369d4fa1a1SMauro Carvalho Chehab \param ID[in] GP_DEVICE identifier 379d4fa1a1SMauro Carvalho Chehab \param reg_addr[in] register byte address 389d4fa1a1SMauro Carvalho Chehab \param value[in] The data to be written 399d4fa1a1SMauro Carvalho Chehab 409d4fa1a1SMauro Carvalho Chehab \return none, GP_DEVICE[ID].ctrl[reg] = value 419d4fa1a1SMauro Carvalho Chehab */ 429d4fa1a1SMauro Carvalho Chehab STORAGE_CLASS_GP_DEVICE_H void gp_device_reg_store( 439d4fa1a1SMauro Carvalho Chehab const gp_device_ID_t ID, 449d4fa1a1SMauro Carvalho Chehab const unsigned int reg_addr, 459d4fa1a1SMauro Carvalho Chehab const hrt_data value); 469d4fa1a1SMauro Carvalho Chehab 479d4fa1a1SMauro Carvalho Chehab /*! Read from a control register of GP_DEVICE[ID] 489d4fa1a1SMauro Carvalho Chehab 499d4fa1a1SMauro Carvalho Chehab \param ID[in] GP_DEVICE identifier 509d4fa1a1SMauro Carvalho Chehab \param reg_addr[in] register byte address 519d4fa1a1SMauro Carvalho Chehab \param value[in] The data to be written 529d4fa1a1SMauro Carvalho Chehab 539d4fa1a1SMauro Carvalho Chehab \return GP_DEVICE[ID].ctrl[reg] 549d4fa1a1SMauro Carvalho Chehab */ 559d4fa1a1SMauro Carvalho Chehab STORAGE_CLASS_GP_DEVICE_H hrt_data gp_device_reg_load( 569d4fa1a1SMauro Carvalho Chehab const gp_device_ID_t ID, 579d4fa1a1SMauro Carvalho Chehab const hrt_address reg_addr); 589d4fa1a1SMauro Carvalho Chehab 599d4fa1a1SMauro Carvalho Chehab #endif /* __GP_DEVICE_PUBLIC_H_INCLUDED__ */ 60