Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

firmware: stratix10-svc: Add definition for voltage and temperature sensor

Add entry in Stratix 10 Service Layer to support temperature and voltage
sensor.

Signed-off-by: Khairul Anuar Romli <khairul.anuar.romli@altera.com>
Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>

authored by

Khairul Anuar Romli and committed by
Dinh Nguyen
4f49088c 3a866087

+60 -3
+19 -2
drivers/firmware/stratix10-svc.c
··· 34 34 * timeout is set to 30 seconds (30 * 1000) at Intel Stratix10 SoC. 35 35 */ 36 36 #define SVC_NUM_DATA_IN_FIFO 32 37 - #define SVC_NUM_CHANNEL 3 37 + #define SVC_NUM_CHANNEL 4 38 38 #define FPGA_CONFIG_DATA_CLAIM_TIMEOUT_MS 200 39 39 #define FPGA_CONFIG_STATUS_TIMEOUT_SEC 30 40 40 #define BYTE_TO_WORD_SIZE 4 ··· 341 341 case COMMAND_RSU_MAX_RETRY: 342 342 case COMMAND_RSU_DCMF_STATUS: 343 343 case COMMAND_FIRMWARE_VERSION: 344 + case COMMAND_HWMON_READTEMP: 345 + case COMMAND_HWMON_READVOLT: 344 346 cb_data->status = BIT(SVC_STATUS_OK); 345 347 cb_data->kaddr1 = &res.a1; 346 348 break; ··· 527 525 a1 = (unsigned long)pdata->paddr; 528 526 a2 = 0; 529 527 break; 530 - 528 + /* for HWMON */ 529 + case COMMAND_HWMON_READTEMP: 530 + a0 = INTEL_SIP_SMC_HWMON_READTEMP; 531 + a1 = pdata->arg[0]; 532 + a2 = 0; 533 + break; 534 + case COMMAND_HWMON_READVOLT: 535 + a0 = INTEL_SIP_SMC_HWMON_READVOLT; 536 + a1 = pdata->arg[0]; 537 + a2 = 0; 538 + break; 531 539 /* for polling */ 532 540 case COMMAND_POLL_SERVICE_STATUS: 533 541 a0 = INTEL_SIP_SMC_SERVICE_COMPLETED; ··· 1208 1196 chans[2].ctrl = controller; 1209 1197 chans[2].name = SVC_CLIENT_FCS; 1210 1198 spin_lock_init(&chans[2].lock); 1199 + 1200 + chans[3].scl = NULL; 1201 + chans[3].ctrl = controller; 1202 + chans[3].name = SVC_CLIENT_HWMON; 1203 + spin_lock_init(&chans[3].lock); 1211 1204 1212 1205 list_add_tail(&controller->node, &svc_ctrl); 1213 1206 platform_set_drvdata(pdev, controller);
+34
include/linux/firmware/intel/stratix10-smc.h
··· 620 620 #define INTEL_SIP_SMC_FCS_GET_PROVISION_DATA \ 621 621 INTEL_SIP_SMC_FAST_CALL_VAL(INTEL_SIP_SMC_FUNCID_FCS_GET_PROVISION_DATA) 622 622 623 + /** 624 + * Request INTEL_SIP_SMC_HWMON_READTEMP 625 + * Sync call to request temperature 626 + * 627 + * Call register usage: 628 + * a0 Temperature Channel 629 + * a1-a7 not used 630 + * 631 + * Return status 632 + * a0 INTEL_SIP_SMC_STATUS_OK 633 + * a1 Temperature Value 634 + * a2-a3 not used 635 + */ 636 + #define INTEL_SIP_SMC_FUNCID_HWMON_READTEMP 32 637 + #define INTEL_SIP_SMC_HWMON_READTEMP \ 638 + INTEL_SIP_SMC_FAST_CALL_VAL(INTEL_SIP_SMC_FUNCID_HWMON_READTEMP) 639 + 640 + /** 641 + * Request INTEL_SIP_SMC_HWMON_READVOLT 642 + * Sync call to request voltage 643 + * 644 + * Call register usage: 645 + * a0 Voltage Channel 646 + * a1-a7 not used 647 + * 648 + * Return status 649 + * a0 INTEL_SIP_SMC_STATUS_OK 650 + * a1 Voltage Value 651 + * a2-a3 not used 652 + */ 653 + #define INTEL_SIP_SMC_FUNCID_HWMON_READVOLT 33 654 + #define INTEL_SIP_SMC_HWMON_READVOLT \ 655 + INTEL_SIP_SMC_FAST_CALL_VAL(INTEL_SIP_SMC_FUNCID_HWMON_READVOLT) 656 + 623 657 #endif
+7 -1
include/linux/firmware/intel/stratix10-svc-client.h
··· 11 11 * 12 12 * fpga: for FPGA configuration 13 13 * rsu: for remote status update 14 + * hwmon: for hardware monitoring (voltage and temperature) 14 15 */ 15 16 #define SVC_CLIENT_FPGA "fpga" 16 17 #define SVC_CLIENT_RSU "rsu" 17 18 #define SVC_CLIENT_FCS "fcs" 19 + #define SVC_CLIENT_HWMON "hwmon" 18 20 19 - /* 21 + /** 20 22 * Status of the sent command, in bit number 21 23 * 22 24 * SVC_STATUS_OK: ··· 72 70 #define SVC_RSU_REQUEST_TIMEOUT_MS 300 73 71 #define SVC_FCS_REQUEST_TIMEOUT_MS 2000 74 72 #define SVC_COMPLETED_TIMEOUT_MS 30000 73 + #define SVC_HWMON_REQUEST_TIMEOUT_MS 300 75 74 76 75 struct stratix10_svc_chan; 77 76 ··· 174 171 COMMAND_MBOX_SEND_CMD = 100, 175 172 /* Non-mailbox SMC Call */ 176 173 COMMAND_SMC_SVC_VERSION = 200, 174 + /* for HWMON */ 175 + COMMAND_HWMON_READTEMP, 176 + COMMAND_HWMON_READVOLT 177 177 }; 178 178 179 179 /**