blob: d37dc2dd384f61c6fb541f38ae1571ecc2a9a00e [file] [log] [blame] [edit]
// SPDX-License-Identifier: GPL-2.0
/**
* Copyright 2021 Google LLC.
*/
#include <linux/regmap.h>
#include <linux/ssr/ps13216_regs.h>
#include "ps13216.h"
static bool ps13216_volatile_register(struct device *dev, unsigned int reg)
{
switch (reg) {
case PS13216_REG_EVENT0:
case PS13216_REG_EVENT1:
case PS13216_REG_GLOBAL_EVENTS:
case PS13216_REG_SETUP:
case PS13216_REG_CTRL:
case PS13216_REG_FORCE_ACTIVE:
case PS13216_REG_EVENT0_MASK:
case PS13216_REG_EVENT1_MASK:
case PS13216_REG_ADC_CTRL:
case PS13216_REG_ADC_FIFO:
case PS13216_REG_ADC_FIFO_FILL_CNT_LSB:
case PS13216_REG_ADC_FIFO_FILL_CNT_MSB:
case PS13216_REG_TEST_SIGNAL_SPY:
return true;
default:
return false;
}
}
static bool ps13216_readable_register(struct device *dev, unsigned int reg)
{
switch (reg) {
case PS13216_REG_EVENT0:
case PS13216_REG_EVENT1:
case PS13216_REG_GLOBAL_EVENTS:
case PS13216_REG_SETUP:
case PS13216_REG_CTRL:
case PS13216_REG_FORCE_ACTIVE:
case PS13216_REG_EVENT0_MASK:
case PS13216_REG_EVENT1_MASK:
case PS13216_REG_ADC_CTRL:
case PS13216_REG_ADC_FIFO:
case PS13216_REG_ADC_FIFO_FILL_CNT_LSB:
case PS13216_REG_ADC_FIFO_FILL_CNT_MSB:
case PS13216_REG_TEST_SIGNAL_SPY:
return true;
default:
return false;
}
}
static bool ps13216_writeable_register(struct device *dev, unsigned int reg)
{
switch (reg) {
case PS13216_REG_EVENT0:
case PS13216_REG_EVENT1:
case PS13216_REG_GLOBAL_EVENTS:
case PS13216_REG_SETUP:
case PS13216_REG_BB1XB:
case PS13216_REG_BB0XB:
case PS13216_REG_FORCE_ACTIVE:
case PS13216_REG_EVENT0_MASK:
case PS13216_REG_EVENT1_MASK:
case PS13216_REG_ADC_CTRL:
case PS13216_REG_ADC_FIFO_FILL_CNT_MSB:
case PS13216_REG_TEST_SIGNAL_SPY:
case PS13216_REG_SW_TEST_MODE:
return true;
default:
return false;
}
}
struct regmap_config ps13216_regmap_config = {
.reg_bits = 8,
.val_bits = 8,
.max_register = PS13216_MAX_REGISTER,
.writeable_reg = ps13216_writeable_register,
.readable_reg = ps13216_readable_register,
.volatile_reg = ps13216_volatile_register,
};
EXPORT_SYMBOL(ps13216_regmap_config);