Commit 023fb0af authored by Andrey Filippov's avatar Andrey Filippov
Browse files

working on sensor ports i2c

parent 4c1dde53
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -62,8 +62,33 @@
#define DRV_NAME "elphel_sensor_i2c"

//------------------
#if 0
#include <linux/fs.h>


/**
 * alloc_chrdev_region() - register a range of char device numbers
 * @dev: output parameter for first assigned number
 * @baseminor: first of the requested range of minor numbers
 * @count: the number of minor numbers required
 * @name: the name of the associated device or driver
 *
 * Allocates a range of char device numbers.  The major number will be
 * chosen dynamically, and returned (along with the first minor number)
 * in @dev.  Returns zero or a negative error code.
 */
int alloc_chrdev_region(dev_t *dev, unsigned baseminor, unsigned count,
			const char *name)
{
	struct char_device_struct *cd;
	cd = __register_chrdev_region(0, baseminor, count, name);
	if (IS_ERR(cd))
		return PTR_ERR(cd);
	*dev = MKDEV(cd->major, cd->baseminor);
	return 0;
}

#endif
// Number of channels is hard-wired to 4
static u32 free_i2c_groups[4];
static u32 free_i2c_pages [32];
+12 −0
Original line number Diff line number Diff line
@@ -18,6 +18,18 @@
*  along with this program.  If not, see <http://www.gnu.org/licenses/>.
*******************************************************************************/

// I2C device description to be used with i2c sequencer
/*
typedef struct x393_i2c_device_tag{
	      char *                       name;
	      u8                           slave7; // slave address (7-bit)
	      u8                           address_bytes;
	      u8                           data_bytes;
	      int                          scl_khz; // maximal SCL frequency in KHz (currently limited by 200KHz slowest)
	      struct x393_i2c_device_tag * next;
} x393_i2c_device_t;
*/

/* Reserve i2c page (1 of 256 for a sensor port)*/
int i2c_page_alloc(int chn);