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

core.h (1835B)


      1/* SPDX-License-Identifier: GPL-2.0-or-later */
      2/*
      3 * da9055 declarations for DA9055 PMICs.
      4 *
      5 * Copyright(c) 2012 Dialog Semiconductor Ltd.
      6 *
      7 * Author: David Dajun Chen <dchen@diasemi.com>
      8 */
      9
     10#ifndef __DA9055_CORE_H
     11#define __DA9055_CORE_H
     12
     13#include <linux/interrupt.h>
     14#include <linux/regmap.h>
     15
     16/*
     17 * PMIC IRQ
     18 */
     19#define DA9055_IRQ_ALARM	0x01
     20#define DA9055_IRQ_TICK		0x02
     21#define DA9055_IRQ_NONKEY	0x00
     22#define DA9055_IRQ_REGULATOR	0x0B
     23#define DA9055_IRQ_HWMON	0x03
     24
     25struct da9055_pdata;
     26
     27struct da9055 {
     28	struct regmap *regmap;
     29	struct regmap_irq_chip_data *irq_data;
     30	struct device *dev;
     31	struct i2c_client *i2c_client;
     32
     33	int irq_base;
     34	int chip_irq;
     35};
     36
     37/* Device I/O */
     38static inline int da9055_reg_read(struct da9055 *da9055, unsigned char reg)
     39{
     40	int val, ret;
     41
     42	ret = regmap_read(da9055->regmap, reg, &val);
     43	if (ret < 0)
     44		return ret;
     45
     46	return val;
     47}
     48
     49static inline int da9055_reg_write(struct da9055 *da9055, unsigned char reg,
     50				    unsigned char val)
     51{
     52	return regmap_write(da9055->regmap, reg, val);
     53}
     54
     55static inline int da9055_group_read(struct da9055 *da9055, unsigned char reg,
     56				     unsigned reg_cnt, unsigned char *val)
     57{
     58	return regmap_bulk_read(da9055->regmap, reg, val, reg_cnt);
     59}
     60
     61static inline int da9055_group_write(struct da9055 *da9055, unsigned char reg,
     62				      unsigned reg_cnt, unsigned char *val)
     63{
     64	return regmap_raw_write(da9055->regmap, reg, val, reg_cnt);
     65}
     66
     67static inline int da9055_reg_update(struct da9055 *da9055, unsigned char reg,
     68				     unsigned char bit_mask,
     69				     unsigned char reg_val)
     70{
     71	return regmap_update_bits(da9055->regmap, reg, bit_mask, reg_val);
     72}
     73
     74/* Generic Device API */
     75int da9055_device_init(struct da9055 *da9055);
     76void da9055_device_exit(struct da9055 *da9055);
     77
     78extern const struct regmap_config da9055_regmap_config;
     79
     80#endif /* __DA9055_CORE_H */