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