cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

anybuss-controller.h (1388B)


      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 */
     29struct anybuss_ops {
     30	void (*reset)(struct device *dev, bool assert);
     31	struct regmap *regmap;
     32	int irq;
     33	int host_idx;
     34};
     35
     36struct anybuss_host;
     37
     38struct anybuss_host * __must_check
     39anybuss_host_common_probe(struct device *dev,
     40			  const struct anybuss_ops *ops);
     41void anybuss_host_common_remove(struct anybuss_host *host);
     42
     43struct anybuss_host * __must_check
     44devm_anybuss_host_common_probe(struct device *dev,
     45			       const struct anybuss_ops *ops);
     46
     47#endif /* __LINUX_ANYBUSS_CONTROLLER_H__ */