1*1bb76ff1Sjsg /* SPDX-License-Identifier: MIT */ 2*1bb76ff1Sjsg /* 3*1bb76ff1Sjsg * Copyright © 2013-2021 Intel Corporation 4*1bb76ff1Sjsg */ 5*1bb76ff1Sjsg 6*1bb76ff1Sjsg #ifndef _INTEL_PCODE_H_ 7*1bb76ff1Sjsg #define _INTEL_PCODE_H_ 8*1bb76ff1Sjsg 9*1bb76ff1Sjsg #include <linux/types.h> 10*1bb76ff1Sjsg 11*1bb76ff1Sjsg struct intel_uncore; 12*1bb76ff1Sjsg 13*1bb76ff1Sjsg int snb_pcode_read(struct intel_uncore *uncore, u32 mbox, u32 *val, u32 *val1); 14*1bb76ff1Sjsg int snb_pcode_write_timeout(struct intel_uncore *uncore, u32 mbox, u32 val, 15*1bb76ff1Sjsg int fast_timeout_us, int slow_timeout_ms); 16*1bb76ff1Sjsg #define snb_pcode_write(uncore, mbox, val) \ 17*1bb76ff1Sjsg snb_pcode_write_timeout(uncore, mbox, val, 500, 0) 18*1bb76ff1Sjsg 19*1bb76ff1Sjsg int skl_pcode_request(struct intel_uncore *uncore, u32 mbox, u32 request, 20*1bb76ff1Sjsg u32 reply_mask, u32 reply, int timeout_base_ms); 21*1bb76ff1Sjsg 22*1bb76ff1Sjsg int intel_pcode_init(struct intel_uncore *uncore); 23*1bb76ff1Sjsg 24*1bb76ff1Sjsg /* 25*1bb76ff1Sjsg * Helpers for dGfx PCODE mailbox command formatting 26*1bb76ff1Sjsg */ 27*1bb76ff1Sjsg int snb_pcode_read_p(struct intel_uncore *uncore, u32 mbcmd, u32 p1, u32 p2, u32 *val); 28*1bb76ff1Sjsg int snb_pcode_write_p(struct intel_uncore *uncore, u32 mbcmd, u32 p1, u32 p2, u32 val); 29*1bb76ff1Sjsg 30*1bb76ff1Sjsg #endif /* _INTEL_PCODE_H */ 31