Immutable branch between MFD and HWMON due for the v5.8 merge window
-----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEdrbJNaO+IJqU8IdIUa+KL4f8d2EFAl7E+JkACgkQUa+KL4f8 d2G0Og/9Ebgnn3cmiQTUcxHPgtFu9PNWy+pEhnQ9my8RyPH+zJh7UKadCxIaO/FZ rmqzZCCETJR+zCVuRDBtSYwdSkhrkxo1Jm9HUVajx/3uiKIspK6anJ+CisKtcMNS Ouo/7ycAAzBjqShq+IJorsc1q9cCO0dt14Fffyjva8fiMYxGaJKrkNdtk49epXCy IJ953y3jgpxxB0A4ecnDE7qKXaw65mPhSv90XVDmPDxTajcGBKqP0es9cYzdlnqs yVfHxuT2dRU8tTs7J+o8DNGlSlxaWl/4tYdcpUb03VYwKFbrUFWL6bKoJ1riKUOR QloK7ytgeWP2m8vsfMzL8JMkBKDLamPu5+YoRRDp8AtfEVG09WgpJsUBOV3sLLUI o3gmsv04WGzGf7Ps0InmICrwMKvwPhJMxqkXCWUbGoDxECnRLBGGT25JA3EYoMYn RvUE5H+dvZUH2MRjSS50ADK/XuhEg2bQPwl/tpRzuEguYYgjGy08FzamfraGVk+D 5JDSKkwcW17GgHIjVfPyKG5Nq09GNSigWy1BR/r+Gof8TtiJ9o5tq5FcZ9zH0JZZ QRhrsU1wCHHMY93mmJMWU5WYzltqXXasLaoveWLTpWfjfaaChzUu3YtFLFo5yFGm 8M7EkDHyOTXJUc3MZySBgIfM0l93sQgvG6Qq0kcjQy2Sa0BwuNo= =FJTL -----END PGP SIGNATURE----- Merge tag 'ib-mfd-hwmon-v5.8' into hwmon-next Immutable branch between MFD and HWMON due for the v5.8 merge window
This commit is contained in:
commit
8054eadca7
12 changed files with 1074 additions and 0 deletions
76
include/linux/mfd/gsc.h
Normal file
76
include/linux/mfd/gsc.h
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright (C) 2020 Gateworks Corporation
|
||||
*/
|
||||
#ifndef __LINUX_MFD_GSC_H_
|
||||
#define __LINUX_MFD_GSC_H_
|
||||
|
||||
#include <linux/regmap.h>
|
||||
|
||||
/* Device Addresses */
|
||||
#define GSC_MISC 0x20
|
||||
#define GSC_UPDATE 0x21
|
||||
#define GSC_GPIO 0x23
|
||||
#define GSC_HWMON 0x29
|
||||
#define GSC_EEPROM0 0x50
|
||||
#define GSC_EEPROM1 0x51
|
||||
#define GSC_EEPROM2 0x52
|
||||
#define GSC_EEPROM3 0x53
|
||||
#define GSC_RTC 0x68
|
||||
|
||||
/* Register offsets */
|
||||
enum {
|
||||
GSC_CTRL_0 = 0x00,
|
||||
GSC_CTRL_1 = 0x01,
|
||||
GSC_TIME = 0x02,
|
||||
GSC_TIME_ADD = 0x06,
|
||||
GSC_IRQ_STATUS = 0x0A,
|
||||
GSC_IRQ_ENABLE = 0x0B,
|
||||
GSC_FW_CRC = 0x0C,
|
||||
GSC_FW_VER = 0x0E,
|
||||
GSC_WP = 0x0F,
|
||||
};
|
||||
|
||||
/* Bit definitions */
|
||||
#define GSC_CTRL_0_PB_HARD_RESET 0
|
||||
#define GSC_CTRL_0_PB_CLEAR_SECURE_KEY 1
|
||||
#define GSC_CTRL_0_PB_SOFT_POWER_DOWN 2
|
||||
#define GSC_CTRL_0_PB_BOOT_ALTERNATE 3
|
||||
#define GSC_CTRL_0_PERFORM_CRC 4
|
||||
#define GSC_CTRL_0_TAMPER_DETECT 5
|
||||
#define GSC_CTRL_0_SWITCH_HOLD 6
|
||||
|
||||
#define GSC_CTRL_1_SLEEP_ENABLE 0
|
||||
#define GSC_CTRL_1_SLEEP_ACTIVATE 1
|
||||
#define GSC_CTRL_1_SLEEP_ADD 2
|
||||
#define GSC_CTRL_1_SLEEP_NOWAKEPB 3
|
||||
#define GSC_CTRL_1_WDT_TIME 4
|
||||
#define GSC_CTRL_1_WDT_ENABLE 5
|
||||
#define GSC_CTRL_1_SWITCH_BOOT_ENABLE 6
|
||||
#define GSC_CTRL_1_SWITCH_BOOT_CLEAR 7
|
||||
|
||||
#define GSC_IRQ_PB 0
|
||||
#define GSC_IRQ_KEY_ERASED 1
|
||||
#define GSC_IRQ_EEPROM_WP 2
|
||||
#define GSC_IRQ_RESV 3
|
||||
#define GSC_IRQ_GPIO 4
|
||||
#define GSC_IRQ_TAMPER 5
|
||||
#define GSC_IRQ_WDT_TIMEOUT 6
|
||||
#define GSC_IRQ_SWITCH_HOLD 7
|
||||
|
||||
int gsc_read(void *context, unsigned int reg, unsigned int *val);
|
||||
int gsc_write(void *context, unsigned int reg, unsigned int val);
|
||||
|
||||
struct gsc_dev {
|
||||
struct device *dev;
|
||||
|
||||
struct i2c_client *i2c; /* 0x20: interrupt controller, WDT */
|
||||
struct i2c_client *i2c_hwmon; /* 0x29: hwmon, fan controller */
|
||||
|
||||
struct regmap *regmap;
|
||||
|
||||
unsigned int fwver;
|
||||
unsigned short fwcrc;
|
||||
};
|
||||
|
||||
#endif /* __LINUX_MFD_GSC_H_ */
|
||||
44
include/linux/platform_data/gsc_hwmon.h
Normal file
44
include/linux/platform_data/gsc_hwmon.h
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#ifndef _GSC_HWMON_H
|
||||
#define _GSC_HWMON_H
|
||||
|
||||
enum gsc_hwmon_mode {
|
||||
mode_temperature,
|
||||
mode_voltage,
|
||||
mode_voltage_raw,
|
||||
mode_max,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct gsc_hwmon_channel - configuration parameters
|
||||
* @reg: I2C register offset
|
||||
* @mode: channel mode
|
||||
* @name: channel name
|
||||
* @mvoffset: voltage offset
|
||||
* @vdiv: voltage divider array (2 resistor values in milli-ohms)
|
||||
*/
|
||||
struct gsc_hwmon_channel {
|
||||
unsigned int reg;
|
||||
unsigned int mode;
|
||||
const char *name;
|
||||
unsigned int mvoffset;
|
||||
unsigned int vdiv[2];
|
||||
};
|
||||
|
||||
/**
|
||||
* struct gsc_hwmon_platform_data - platform data for gsc_hwmon driver
|
||||
* @channels: pointer to array of gsc_hwmon_channel structures
|
||||
* describing channels
|
||||
* @nchannels: number of elements in @channels array
|
||||
* @vreference: voltage reference (mV)
|
||||
* @resolution: ADC bit resolution
|
||||
* @fan_base: register base for FAN controller
|
||||
*/
|
||||
struct gsc_hwmon_platform_data {
|
||||
const struct gsc_hwmon_channel *channels;
|
||||
int nchannels;
|
||||
unsigned int resolution;
|
||||
unsigned int vreference;
|
||||
unsigned int fan_base;
|
||||
};
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue