19c1600eda42e52796f49b36cf15b9debcfd09beaDavid Brownell/* 29c1600eda42e52796f49b36cf15b9debcfd09beaDavid Brownell * i2c-core.h - interfaces internal to the I2C framework 39c1600eda42e52796f49b36cf15b9debcfd09beaDavid Brownell * 49c1600eda42e52796f49b36cf15b9debcfd09beaDavid Brownell * This program is free software; you can redistribute it and/or modify 59c1600eda42e52796f49b36cf15b9debcfd09beaDavid Brownell * it under the terms of the GNU General Public License as published by 69c1600eda42e52796f49b36cf15b9debcfd09beaDavid Brownell * the Free Software Foundation; either version 2 of the License, or 79c1600eda42e52796f49b36cf15b9debcfd09beaDavid Brownell * (at your option) any later version. 89c1600eda42e52796f49b36cf15b9debcfd09beaDavid Brownell * 99c1600eda42e52796f49b36cf15b9debcfd09beaDavid Brownell * This program is distributed in the hope that it will be useful, 109c1600eda42e52796f49b36cf15b9debcfd09beaDavid Brownell * but WITHOUT ANY WARRANTY; without even the implied warranty of 119c1600eda42e52796f49b36cf15b9debcfd09beaDavid Brownell * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 129c1600eda42e52796f49b36cf15b9debcfd09beaDavid Brownell * GNU General Public License for more details. 139c1600eda42e52796f49b36cf15b9debcfd09beaDavid Brownell * 149c1600eda42e52796f49b36cf15b9debcfd09beaDavid Brownell * You should have received a copy of the GNU General Public License 159c1600eda42e52796f49b36cf15b9debcfd09beaDavid Brownell * along with this program; if not, write to the Free Software 165694f8a888f8f69a562e4cf939eed81ca7a5ecf2Jean Delvare * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 175694f8a888f8f69a562e4cf939eed81ca7a5ecf2Jean Delvare * MA 02110-1301 USA. 189c1600eda42e52796f49b36cf15b9debcfd09beaDavid Brownell */ 199c1600eda42e52796f49b36cf15b9debcfd09beaDavid Brownell 20f18c41daea14baee11252da268cdf5dcd57c7c10Rodolfo Giometti#include <linux/rwsem.h> 21f18c41daea14baee11252da268cdf5dcd57c7c10Rodolfo Giometti 229c1600eda42e52796f49b36cf15b9debcfd09beaDavid Brownellstruct i2c_devinfo { 239c1600eda42e52796f49b36cf15b9debcfd09beaDavid Brownell struct list_head list; 249c1600eda42e52796f49b36cf15b9debcfd09beaDavid Brownell int busnum; 259c1600eda42e52796f49b36cf15b9debcfd09beaDavid Brownell struct i2c_board_info board_info; 269c1600eda42e52796f49b36cf15b9debcfd09beaDavid Brownell}; 279c1600eda42e52796f49b36cf15b9debcfd09beaDavid Brownell 289c1600eda42e52796f49b36cf15b9debcfd09beaDavid Brownell/* board_lock protects board_list and first_dynamic_bus_num. 299c1600eda42e52796f49b36cf15b9debcfd09beaDavid Brownell * only i2c core components are allowed to use these symbols. 309c1600eda42e52796f49b36cf15b9debcfd09beaDavid Brownell */ 31f18c41daea14baee11252da268cdf5dcd57c7c10Rodolfo Giomettiextern struct rw_semaphore __i2c_board_lock; 329c1600eda42e52796f49b36cf15b9debcfd09beaDavid Brownellextern struct list_head __i2c_board_list; 339c1600eda42e52796f49b36cf15b9debcfd09beaDavid Brownellextern int __i2c_first_dynamic_bus_num; 349c1600eda42e52796f49b36cf15b9debcfd09beaDavid Brownell 35