blob: 449c8dbec873d73b4904cc0092c5174db20cb965 [file] [log] [blame]
// Copyright 2020 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SRC_DEVICES_THERMAL_DRIVERS_VS680_THERMAL_VS680_THERMAL_REG_H_
#define SRC_DEVICES_THERMAL_DRIVERS_VS680_THERMAL_VS680_THERMAL_REG_H_
#include <hwreg/bitfields.h>
namespace thermal {
class TsenCtrl : public hwreg::RegisterBase<TsenCtrl, uint32_t> {
public:
static constexpr uint32_t kPSampleTemperature = 0b00;
static auto Get() { return hwreg::RegisterAddr<TsenCtrl>(0x100); }
DEF_BIT(1, clk_en);
DEF_BIT(0, ena);
};
class TsenStatus : public hwreg::RegisterBase<TsenStatus, uint32_t> {
public:
static auto Get() { return hwreg::RegisterAddr<TsenStatus>(0x104); }
DEF_BIT(1, int_en);
DEF_BIT(0, data_rdy);
};
class TsenData : public hwreg::RegisterBase<TsenData, uint32_t> {
public:
static auto Get() { return hwreg::RegisterAddr<TsenData>(0x108); }
DEF_FIELD(9, 0, data);
};
class TsenChkCtrl : public hwreg::RegisterBase<TsenChkCtrl, uint32_t> {
public:
static auto Get() { return hwreg::RegisterAddr<TsenChkCtrl>(0x10c); }
DEF_BIT(20, overheat_sel);
DEF_FIELD(19, 10, data_min);
DEF_FIELD(9, 0, data_max);
};
class TsenDataStatus : public hwreg::RegisterBase<TsenDataStatus, uint32_t> {
public:
static auto Get() { return hwreg::RegisterAddr<TsenDataStatus>(0x110); }
DEF_BIT(1, min_fail);
DEF_BIT(0, max_fail);
};
} // namespace thermal
#endif // SRC_DEVICES_THERMAL_DRIVERS_VS680_THERMAL_VS680_THERMAL_REG_H_