linux/arch/cris/include/arch-v10/arch/io_interface_mux.h
<<
>>
Prefs
   1/* IO interface mux allocator for ETRAX100LX.
   2 * Copyright 2004, Axis Communications AB
   3 * $Id: io_interface_mux.h,v 1.1 2004/12/13 12:21:53 starvik Exp $
   4 */
   5
   6
   7#ifndef _IO_INTERFACE_MUX_H
   8#define _IO_INTERFACE_MUX_H
   9
  10
  11/* C.f. ETRAX100LX Designer's Reference 20.9 */
  12
  13/* The order in enum must match the order of interfaces[] in
  14 * io_interface_mux.c */
  15enum cris_io_interface {
  16        /* Begin Non-multiplexed interfaces */
  17        if_eth = 0,
  18        if_serial_0,
  19        /* End Non-multiplexed interfaces */
  20        if_serial_1,
  21        if_serial_2,
  22        if_serial_3,
  23        if_sync_serial_1,
  24        if_sync_serial_3,
  25        if_shared_ram,
  26        if_shared_ram_w,
  27        if_par_0,
  28        if_par_1,
  29        if_par_w,
  30        if_scsi8_0,
  31        if_scsi8_1,
  32        if_scsi_w,
  33        if_ata,
  34        if_csp,
  35        if_i2c,
  36        if_usb_1,
  37        if_usb_2,
  38        /* GPIO pins */
  39        if_gpio_grp_a,
  40        if_gpio_grp_b,
  41        if_gpio_grp_c,
  42        if_gpio_grp_d,
  43        if_gpio_grp_e,
  44        if_gpio_grp_f,
  45        if_max_interfaces,
  46        if_unclaimed
  47};
  48
  49int cris_request_io_interface(enum cris_io_interface ioif, const char *device_id);
  50
  51void cris_free_io_interface(enum cris_io_interface ioif);
  52
  53/* port can be 'a', 'b' or 'g' */
  54int cris_io_interface_allocate_pins(const enum cris_io_interface ioif,
  55                                    const char port,
  56                                    const unsigned start_bit,
  57                                    const unsigned stop_bit);
  58
  59/* port can be 'a', 'b' or 'g' */
  60int cris_io_interface_free_pins(const enum cris_io_interface ioif,
  61                                const char port,
  62                                const unsigned start_bit,
  63                                const unsigned stop_bit);
  64
  65int cris_io_interface_register_watcher(void (*notify)(const unsigned int gpio_in_available,
  66                                                      const unsigned int gpio_out_available,
  67                                                      const unsigned char pa_available,
  68                                                      const unsigned char pb_available));
  69
  70void cris_io_interface_delete_watcher(void (*notify)(const unsigned int gpio_in_available,
  71                                                     const unsigned int gpio_out_available,
  72                                                     const unsigned char pa_available,
  73                                                     const unsigned char pb_available));
  74
  75#endif /* _IO_INTERFACE_MUX_H */
  76