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

lochnagar.h (1624B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2/*
      3 * Lochnagar internals
      4 *
      5 * Copyright (c) 2013-2018 Cirrus Logic, Inc. and
      6 *                         Cirrus Logic International Semiconductor Ltd.
      7 *
      8 * Author: Charles Keepax <ckeepax@opensource.cirrus.com>
      9 */
     10
     11#include <linux/device.h>
     12#include <linux/mutex.h>
     13#include <linux/regmap.h>
     14
     15#ifndef CIRRUS_LOCHNAGAR_H
     16#define CIRRUS_LOCHNAGAR_H
     17
     18enum lochnagar_type {
     19	LOCHNAGAR1,
     20	LOCHNAGAR2,
     21};
     22
     23/**
     24 * struct lochnagar - Core data for the Lochnagar audio board driver.
     25 *
     26 * @type: The type of Lochnagar device connected.
     27 * @dev: A pointer to the struct device for the main MFD.
     28 * @regmap: The devices main register map.
     29 * @analogue_config_lock: Lock used to protect updates in the analogue
     30 * configuration as these must not be changed whilst the hardware is processing
     31 * the last update.
     32 */
     33struct lochnagar {
     34	enum lochnagar_type type;
     35	struct device *dev;
     36	struct regmap *regmap;
     37
     38	/* Lock to protect updates to the analogue configuration */
     39	struct mutex analogue_config_lock;
     40};
     41
     42/* Register Addresses */
     43#define LOCHNAGAR_SOFTWARE_RESET                             0x00
     44#define LOCHNAGAR_FIRMWARE_ID1                               0x01
     45#define LOCHNAGAR_FIRMWARE_ID2                               0x02
     46
     47/* (0x0000)  Software Reset */
     48#define LOCHNAGAR_DEVICE_ID_MASK                           0xFFFC
     49#define LOCHNAGAR_DEVICE_ID_SHIFT                               2
     50#define LOCHNAGAR_REV_ID_MASK                              0x0003
     51#define LOCHNAGAR_REV_ID_SHIFT                                  0
     52
     53int lochnagar_update_config(struct lochnagar *lochnagar);
     54
     55#endif