root/drivers/staging/fieldbus/anybuss/anybuss-controller.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /*
   3  * Anybus-S controller definitions
   4  *
   5  * Copyright 2018 Arcx Inc
   6  */
   7 
   8 #ifndef __LINUX_ANYBUSS_CONTROLLER_H__
   9 #define __LINUX_ANYBUSS_CONTROLLER_H__
  10 
  11 #include <linux/device.h>
  12 #include <linux/regmap.h>
  13 
  14 /*
  15  * To instantiate an Anybus-S host, a controller should provide the following:
  16  * - a reset function which resets the attached card;
  17  * - a regmap which provides access to the attached card's dpram;
  18  * - the irq of the attached card
  19  */
  20 /**
  21  * struct anybuss_ops - Controller resources to instantiate an Anybus-S host
  22  *
  23  * @reset:      asserts/deasserts the anybus card's reset line.
  24  * @regmap:     provides access to the card's dual-port RAM area.
  25  * @irq:        number of the interrupt connected to the card's interrupt line.
  26  * @host_idx:   for multi-host controllers, the host index:
  27  *              0 for the first host on the controller, 1 for the second, etc.
  28  */
  29 struct anybuss_ops {
  30         void (*reset)(struct device *dev, bool assert);
  31         struct regmap *regmap;
  32         int irq;
  33         int host_idx;
  34 };
  35 
  36 struct anybuss_host;
  37 
  38 struct anybuss_host * __must_check
  39 anybuss_host_common_probe(struct device *dev,
  40                           const struct anybuss_ops *ops);
  41 void anybuss_host_common_remove(struct anybuss_host *host);
  42 
  43 struct anybuss_host * __must_check
  44 devm_anybuss_host_common_probe(struct device *dev,
  45                                const struct anybuss_ops *ops);
  46 
  47 #endif /* __LINUX_ANYBUSS_CONTROLLER_H__ */

/* [<][>][^][v][top][bottom][index][help] */