[coreboot-gerrit] Change in coreboot[master]: siemens/nc_fpga: Expands the functionality of the FPGA

Mario Scheithauer (Code Review) gerrit at coreboot.org
Mon Jun 12 10:04:49 CEST 2017


Mario Scheithauer has uploaded this change for review. ( https://review.coreboot.org/20160


Change subject: siemens/nc_fpga: Expands the functionality of the FPGA
......................................................................

siemens/nc_fpga: Expands the functionality of the FPGA

The siemens/mc_apl1 mainboard needs more functionality provided by
Siemens NC FPGA. The additional functionality contains backlight
brightness/PWM control and Dsave time for board reset.

Change-Id: I6b65b01f0d67afe598b7c005868f71b00dec56fd
Signed-off-by: Mario Scheithauer <mario.scheithauer at siemens.com>
---
M src/drivers/siemens/nc_fpga/nc_fpga.c
M src/drivers/siemens/nc_fpga/nc_fpga.h
2 files changed, 28 insertions(+), 8 deletions(-)



  git pull ssh://review.coreboot.org:29418/coreboot refs/changes/60/20160/1

diff --git a/src/drivers/siemens/nc_fpga/nc_fpga.c b/src/drivers/siemens/nc_fpga/nc_fpga.c
index def456b..7623f59 100644
--- a/src/drivers/siemens/nc_fpga/nc_fpga.c
+++ b/src/drivers/siemens/nc_fpga/nc_fpga.c
@@ -119,6 +119,17 @@
 		init_temp_mon(bar0_ptr + NC_FANMON_CTRL_OFFSET);
 	if (cap & NC_CAP1_FAN_CTRL)
 		init_fan_ctrl(bar0_ptr + NC_FANMON_CTRL_OFFSET);
+	if (cap & NC_CAP1_DSAVE_NMI_DELAY) {
+		uint16_t *dsave_ptr = (uint16_t *)(bar0_ptr + NC_DSAVE_OFFSET);
+		FPGA_SET_PARAM(NvramVirtTimeDsaveReset, *dsave_ptr);
+	}
+	if (cap & NC_CAP1_BL_BRIGHTNESS_CTRL) {
+		uint8_t *bl_bn_ptr =
+				(uint8_t *)(bar0_ptr + NC_BL_BRIGHTNESS_OFFSET);
+		FPGA_SET_PARAM(BL_Brightness, *bl_bn_ptr);
+		uint8_t *bl_pwm_ptr = (uint8_t *)(bar0_ptr + NC_BL_PWM_OFFSET);
+		FPGA_SET_PARAM(PF_PwmFreq, *bl_pwm_ptr);
+	}
 }
 
 static struct device_operations nc_fpga_ops  = {
@@ -130,10 +141,14 @@
 	.ops_pci          = 0,
 };
 
-static const unsigned short nc_fpga_device_ids[] = { 0x4091, 0 };
+static const unsigned short nc_fpga_device_ids[] = {
+	0x4080,
+	0x4091,
+	0,
+};
 
 static const struct pci_driver nc_fpga_driver __pci_driver = {
 	.ops    = &nc_fpga_ops,
-	.vendor = 0x110A,
+	.vendor = PCI_VENDOR_ID_SIEMENS,
 	.devices = nc_fpga_device_ids,
 };
diff --git a/src/drivers/siemens/nc_fpga/nc_fpga.h b/src/drivers/siemens/nc_fpga/nc_fpga.h
index 886f3dd..a5a7ab8 100644
--- a/src/drivers/siemens/nc_fpga/nc_fpga.h
+++ b/src/drivers/siemens/nc_fpga/nc_fpga.h
@@ -16,12 +16,17 @@
 #ifndef _SIEMENS_NC_FPGA_H_
 #define _SIEMENS_NC_FPGA_H_
 
-#define NC_MAGIC_OFFSET		0x020
-#define  NC_FPGA_MAGIC		0x4E433746
-#define NC_CAP1_OFFSET		0x080
-#define  NC_CAP1_FAN_CTRL	0x080
-#define  NC_CAP1_TEMP_MON	0x100
-#define NC_FANMON_CTRL_OFFSET	0x400
+#define NC_MAGIC_OFFSET			0x020
+#define  NC_FPGA_MAGIC			0x4E433746
+#define NC_CAP1_OFFSET			0x080
+#define  NC_CAP1_DSAVE_NMI_DELAY	0x008
+#define  NC_CAP1_BL_BRIGHTNESS_CTRL	0x010
+#define  NC_CAP1_FAN_CTRL		0x080
+#define  NC_CAP1_TEMP_MON		0x100
+#define NC_DSAVE_OFFSET			0x58
+#define NC_BL_BRIGHTNESS_OFFSET		0x88
+#define NC_BL_PWM_OFFSET		0x8C
+#define NC_FANMON_CTRL_OFFSET		0x400
 
 #define MAX_NUM_SENSORS		4
 

-- 
To view, visit https://review.coreboot.org/20160
To unsubscribe, visit https://review.coreboot.org/settings

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I6b65b01f0d67afe598b7c005868f71b00dec56fd
Gerrit-Change-Number: 20160
Gerrit-PatchSet: 1
Gerrit-Owner: Mario Scheithauer <mario.scheithauer at siemens.com>



More information about the coreboot-gerrit mailing list