1 /* SPDX-License-Identifier: GPL-2.0 */
2 /* IO interface mux allocator for ETRAX100LX.
3 * Copyright 2004, Axis Communications AB
4 * $Id: io_interface_mux.h,v 1.1 2004/12/13 12:21:53 starvik Exp $
8 #ifndef _IO_INTERFACE_MUX_H
9 #define _IO_INTERFACE_MUX_H
12 /* C.f. ETRAX100LX Designer's Reference 20.9 */
14 /* The order in enum must match the order of interfaces[] in
15 * io_interface_mux.c */
16 enum cris_io_interface {
17 /* Begin Non-multiplexed interfaces */
20 /* End Non-multiplexed interfaces */
50 int cris_request_io_interface(enum cris_io_interface ioif, const char *device_id);
52 void cris_free_io_interface(enum cris_io_interface ioif);
54 /* port can be 'a', 'b' or 'g' */
55 int cris_io_interface_allocate_pins(const enum cris_io_interface ioif,
57 const unsigned start_bit,
58 const unsigned stop_bit);
60 /* port can be 'a', 'b' or 'g' */
61 int cris_io_interface_free_pins(const enum cris_io_interface ioif,
63 const unsigned start_bit,
64 const unsigned stop_bit);
66 int cris_io_interface_register_watcher(void (*notify)(const unsigned int gpio_in_available,
67 const unsigned int gpio_out_available,
68 const unsigned char pa_available,
69 const unsigned char pb_available));
71 void cris_io_interface_delete_watcher(void (*notify)(const unsigned int gpio_in_available,
72 const unsigned int gpio_out_available,
73 const unsigned char pa_available,
74 const unsigned char pb_available));
76 #endif /* _IO_INTERFACE_MUX_H */