Path: blob/master/arch/cris/include/arch-v10/arch/io_interface_mux.h
15141 views
/* IO interface mux allocator for ETRAX100LX.1* Copyright 2004, Axis Communications AB2* $Id: io_interface_mux.h,v 1.1 2004/12/13 12:21:53 starvik Exp $3*/456#ifndef _IO_INTERFACE_MUX_H7#define _IO_INTERFACE_MUX_H8910/* C.f. ETRAX100LX Designer's Reference 20.9 */1112/* The order in enum must match the order of interfaces[] in13* io_interface_mux.c */14enum cris_io_interface {15/* Begin Non-multiplexed interfaces */16if_eth = 0,17if_serial_0,18/* End Non-multiplexed interfaces */19if_serial_1,20if_serial_2,21if_serial_3,22if_sync_serial_1,23if_sync_serial_3,24if_shared_ram,25if_shared_ram_w,26if_par_0,27if_par_1,28if_par_w,29if_scsi8_0,30if_scsi8_1,31if_scsi_w,32if_ata,33if_csp,34if_i2c,35if_usb_1,36if_usb_2,37/* GPIO pins */38if_gpio_grp_a,39if_gpio_grp_b,40if_gpio_grp_c,41if_gpio_grp_d,42if_gpio_grp_e,43if_gpio_grp_f,44if_max_interfaces,45if_unclaimed46};4748int cris_request_io_interface(enum cris_io_interface ioif, const char *device_id);4950void cris_free_io_interface(enum cris_io_interface ioif);5152/* port can be 'a', 'b' or 'g' */53int cris_io_interface_allocate_pins(const enum cris_io_interface ioif,54const char port,55const unsigned start_bit,56const unsigned stop_bit);5758/* port can be 'a', 'b' or 'g' */59int cris_io_interface_free_pins(const enum cris_io_interface ioif,60const char port,61const unsigned start_bit,62const unsigned stop_bit);6364int cris_io_interface_register_watcher(void (*notify)(const unsigned int gpio_in_available,65const unsigned int gpio_out_available,66const unsigned char pa_available,67const unsigned char pb_available));6869void cris_io_interface_delete_watcher(void (*notify)(const unsigned int gpio_in_available,70const unsigned int gpio_out_available,71const unsigned char pa_available,72const unsigned char pb_available));7374#endif /* _IO_INTERFACE_MUX_H */757677