root/include/linux/vexpress.h

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

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0-only */
   2 /*
   3  *
   4  * Copyright (C) 2012 ARM Limited
   5  */
   6 
   7 #ifndef _LINUX_VEXPRESS_H
   8 #define _LINUX_VEXPRESS_H
   9 
  10 #include <linux/device.h>
  11 #include <linux/regmap.h>
  12 
  13 #define VEXPRESS_SITE_MB                0
  14 #define VEXPRESS_SITE_DB1               1
  15 #define VEXPRESS_SITE_DB2               2
  16 #define VEXPRESS_SITE_MASTER            0xf
  17 
  18 /* Config infrastructure */
  19 
  20 void vexpress_config_set_master(u32 site);
  21 u32 vexpress_config_get_master(void);
  22 
  23 void vexpress_config_lock(void *arg);
  24 void vexpress_config_unlock(void *arg);
  25 
  26 int vexpress_config_get_topo(struct device_node *node, u32 *site,
  27                 u32 *position, u32 *dcc);
  28 
  29 /* Config bridge API */
  30 
  31 struct vexpress_config_bridge_ops {
  32         struct regmap * (*regmap_init)(struct device *dev, void *context);
  33         void (*regmap_exit)(struct regmap *regmap, void *context);
  34 };
  35 
  36 struct device *vexpress_config_bridge_register(struct device *parent,
  37                 struct vexpress_config_bridge_ops *ops, void *context);
  38 
  39 /* Config regmap API */
  40 
  41 struct regmap *devm_regmap_init_vexpress_config(struct device *dev);
  42 
  43 /* Platform control */
  44 
  45 void vexpress_flags_set(u32 data);
  46 
  47 #endif

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