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 20void vexpress_config_set_master(u32 site); 21u32 vexpress_config_get_master(void); 22 23void vexpress_config_lock(void *arg); 24void vexpress_config_unlock(void *arg); 25 26int vexpress_config_get_topo(struct device_node *node, u32 *site, 27 u32 *position, u32 *dcc); 28 29/* Config bridge API */ 30 31struct 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 36struct device *vexpress_config_bridge_register(struct device *parent, 37 struct vexpress_config_bridge_ops *ops, void *context); 38 39/* Config regmap API */ 40 41struct regmap *devm_regmap_init_vexpress_config(struct device *dev); 42 43/* Platform control */ 44 45void vexpress_flags_set(u32 data); 46 47#endif 48