Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
DIOT Zynq Ultrascale-based System Board
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
41
Issues
41
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Projects
DIOT Zynq Ultrascale-based System Board
Commits
f3c75633
Commit
f3c75633
authored
May 31, 2022
by
Adam Wujek
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
sw/patches/linux: fix patch formating
Signed-off-by:
Adam Wujek
<
dev_public@wujek.eu
>
parent
c8eda484
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
29 additions
and
19 deletions
+29
-19
0019-hwmon-pmbus-Add-Hartmann-PSU-driver.patch
...ches/linux/0019-hwmon-pmbus-Add-Hartmann-PSU-driver.patch
+29
-19
No files found.
sw/patches/linux/0019-hwmon-pmbus-Add-Hartmann-PSU-driver.patch
View file @
f3c75633
From
c3e066aa06ad29841de63fe58d173e7f500229d7
Mon Sep 17 00:00:00 2001
From
ae587d0fba972f5a491e4cb46aa91f2816dc016f
Mon Sep 17 00:00:00 2001
From: Adam Wujek <dev_public@wujek.eu>
Date: Wed, 20 Oct 2021 22:54:23 +0200
Subject: [PATCH] hwmon: (pmbus) Add Hartmann PSU driver
...
...
@@ -10,8 +10,8 @@ Signed-off-by: Adam Wujek <dev_public@wujek.eu>
---
drivers/hwmon/pmbus/Kconfig | 9 ++
drivers/hwmon/pmbus/Makefile | 1 +
drivers/hwmon/pmbus/hartmann_psu.c | 1
4
8 +++++++++++++++++++++++++++++
3 files changed, 1
5
8 insertions(+)
drivers/hwmon/pmbus/hartmann_psu.c | 1
5
8 +++++++++++++++++++++++++++++
3 files changed, 1
6
8 insertions(+)
create mode 100644 drivers/hwmon/pmbus/hartmann_psu.c
diff --git a/drivers/hwmon/pmbus/Kconfig b/drivers/hwmon/pmbus/Kconfig
...
...
@@ -48,10 +48,10 @@ index 73b6424b6553..10fb78c7341e 100644
obj-$(CONFIG_SENSORS_IRPS5401) += irps5401.o
diff --git a/drivers/hwmon/pmbus/hartmann_psu.c b/drivers/hwmon/pmbus/hartmann_psu.c
new file mode 100644
index 000000000000..
0515ef47af5d
index 000000000000..
c8585730f079
--- /dev/null
+++ b/drivers/hwmon/pmbus/hartmann_psu.c
@@ -0,0 +1,1
4
8 @@
@@ -0,0 +1,1
5
8 @@
+/*
+ * Hardware monitoring driver for Hartmann PSU
+ *
...
...
@@ -80,35 +80,42 @@ index 000000000000..0515ef47af5d
+#define LINEAR11_EXPONENT_SHIFT 11
+#define LINEAR11_EXPONENT_SHIFTED_MASK 0x1F
+
+/* NOTE: Values PMBUS_VOUT_OV_FAULT_LIMIT, PMBUS_VOUT_UV_FAULT_LIMIT,
+/*
+ * NOTE: Values PMBUS_VOUT_OV_FAULT_LIMIT, PMBUS_VOUT_UV_FAULT_LIMIT,
+ * PMBUS_VOUT_OV_WARN_LIMIT, PMBUS_VOUT_UV_WARN_LIMIT and PMBUS_READ_VOUT
+ * reported by this PSU are in format linear11 not linear16. As today kernel
+ * expects them to be in linear16, so convert.
+ * PSU does not report PMBUS_VOUT_MODE value. So fill it with exponent part
+ * from PMBUS_READ_VOUT. It is assumed that exponent does not change over time.
+ *
*
/
+ */
+static int hartmann_read_byte_data(struct i2c_client *client, int page, int reg)
+{
+ int ret;
+
+ switch (reg) {
+ case PMBUS_VOUT_MODE:
+ /* For this PSU VOUT values are returned as linear11, while
+ * the kernel expects them to be linear16 */
+ /*
+ * For this PSU the VOUT value is returned as linear11, while
+ * the kernel expects them to be linear16.
+ */
+ ret = pmbus_read_byte_data(client, page, reg);
+ if (ret >= 0) {
+ /* If valid PMBUS_VOUT_MODE is available, return it */
+ return ret;
+ }
+
+ /* Failed to read VOUT_MODE */
+ /* Assume that exponent does not change */
+
+ /*
+ * Failed to read VOUT_MODE.
+ * Assume the exponent does not change.
+ */
+ ret = pmbus_read_word_data(client, page, PMBUS_READ_VOUT);
+ if (ret < 0)
+ return ret;
+
+ /* Take exponent part from PMBUS_READ_VOUT and return it as
+ * a part of PMBUS_VOUT_MODE */
+ /*
+ * Take exponent part from PMBUS_READ_VOUT and return it as
+ * a part of PMBUS_VOUT_MODE
+ */
+ ret = ((int16_t) ret) >> LINEAR11_EXPONENT_SHIFT;
+ ret &= LINEAR11_EXPONENT_SHIFTED_MASK;
+ /* PB_VOUT_MODE_LINEAR is 0 anyway */
...
...
@@ -140,8 +147,10 @@ index 000000000000..0515ef47af5d
+
+ ret = pmbus_read_byte_data(client, page, PMBUS_READ_VOUT);
+ if (ret >= 0) {
+ /* If an valid PMBUS_VOUT_MODE is available,
+ * return PMBUS_READ_VOUT as is (probably linear16) */
+ /*
+ * If a valid PMBUS_VOUT_MODE is available,
+ * return PMBUS_READ_VOUT as is (probably linear16)
+ */
+ return val;
+ }
+
...
...
@@ -167,8 +176,10 @@ index 000000000000..0515ef47af5d
+ .func[0] = HARTMANN_SW_FUNC,
+ .read_word_data = hartmann_read_word_data,
+ .read_byte_data = hartmann_read_byte_data,
+ /* linear11, kernel does not support it, so convert in
+ * hartmann_read_word_data and hartmann_read_byte_data */
+ /*
+ * linear11, kernel does not support it, so convert in
+ * hartmann_read_word_data and hartmann_read_byte_data
+ */
+ .format[PSC_VOLTAGE_OUT] = linear,
+};
+
...
...
@@ -185,7 +196,6 @@ index 000000000000..0515ef47af5d
+
+MODULE_DEVICE_TABLE(i2c, hartmann_psu_id);
+
+/* This is the driver that will be inserted */
+static struct i2c_driver hartmann_psu_driver = {
+ .driver = {
+ .name = "hartmann-psu",
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment