1*14b24e2bSVaishali Kulkarni /*
2*14b24e2bSVaishali Kulkarni  * @brief ecore_ptt_acquire - Allocate a PTT window
3*14b24e2bSVaishali Kulkarni  *
4*14b24e2bSVaishali Kulkarni  * Should be called at the entry point to the driver (at the beginning of an
5*14b24e2bSVaishali Kulkarni  * exported function)
6*14b24e2bSVaishali Kulkarni  *
7*14b24e2bSVaishali Kulkarni  * @param p_hwfn
8*14b24e2bSVaishali Kulkarni  *
9*14b24e2bSVaishali Kulkarni  * @return struct ecore_ptt
10*14b24e2bSVaishali Kulkarni  */
11*14b24e2bSVaishali Kulkarni struct ecore_ptt *ecore_ptt_acquire(struct ecore_hwfn   *p_hwfn);
12*14b24e2bSVaishali Kulkarni 
13*14b24e2bSVaishali Kulkarni /*
14*14b24e2bSVaishali Kulkarni  * @brief ecore_ptt_release - Release PTT Window
15*14b24e2bSVaishali Kulkarni  *
16*14b24e2bSVaishali Kulkarni  * Should be called at the end of a flow - at the end of the function that
17*14b24e2bSVaishali Kulkarni  * acquired the PTT.
18*14b24e2bSVaishali Kulkarni  *
19*14b24e2bSVaishali Kulkarni  * @param p_hwfn
20*14b24e2bSVaishali Kulkarni  * @param p_ptt
21*14b24e2bSVaishali Kulkarni  */
22*14b24e2bSVaishali Kulkarni void ecore_ptt_release(struct ecore_hwfn    *p_hwfn,
23*14b24e2bSVaishali Kulkarni                struct ecore_ptt     *p_ptt);
24*14b24e2bSVaishali Kulkarni 
25*14b24e2bSVaishali Kulkarni /*
26*14b24e2bSVaishali Kulkarni  * @brief ecore_wr - Write value to GRC BAR using the given ptt
27*14b24e2bSVaishali Kulkarni  *
28*14b24e2bSVaishali Kulkarni  * @param p_hwfn
29*14b24e2bSVaishali Kulkarni  * @param p_ptt
30*14b24e2bSVaishali Kulkarni  * @param val
31*14b24e2bSVaishali Kulkarni  * @param hw_addr
32*14b24e2bSVaishali Kulkarni  */
33*14b24e2bSVaishali Kulkarni void ecore_wr(struct ecore_hwfn *p_hwfn,
34*14b24e2bSVaishali Kulkarni           struct ecore_ptt  *p_ptt,
35*14b24e2bSVaishali Kulkarni           u32       hw_addr,
36*14b24e2bSVaishali Kulkarni           u32       val);
37*14b24e2bSVaishali Kulkarni 
38*14b24e2bSVaishali Kulkarni /*
39*14b24e2bSVaishali Kulkarni  * @brief ecore_rd - Read value to GRC BAR using the given ptt
40*14b24e2bSVaishali Kulkarni  *
41*14b24e2bSVaishali Kulkarni  * @param p_hwfn
42*14b24e2bSVaishali Kulkarni  * @param p_ptt
43*14b24e2bSVaishali Kulkarni  * @param val
44*14b24e2bSVaishali Kulkarni  * @param hw_addr
45*14b24e2bSVaishali Kulkarni  */
46*14b24e2bSVaishali Kulkarni u32 ecore_rd(struct ecore_hwfn  *p_hwfn,
47*14b24e2bSVaishali Kulkarni          struct ecore_ptt   *p_ptt,
48*14b24e2bSVaishali Kulkarni          u32        hw_addr);
49*14b24e2bSVaishali Kulkarni 
50*14b24e2bSVaishali Kulkarni /*
51*14b24e2bSVaishali Kulkarni  * @brief ecore_ptt_pretend - pretend to be another function
52*14b24e2bSVaishali Kulkarni  *        when accessing the ptt window
53*14b24e2bSVaishali Kulkarni  *
54*14b24e2bSVaishali Kulkarni  * @param p_hwfn
55*14b24e2bSVaishali Kulkarni  * @param p_ptt
56*14b24e2bSVaishali Kulkarni  * @param pretend
57*14b24e2bSVaishali Kulkarni  */
58*14b24e2bSVaishali Kulkarni void ecore_ptt_pretend(struct ecore_hwfn    *p_hwfn,
59*14b24e2bSVaishali Kulkarni                struct ecore_ptt     *p_ptt,
60*14b24e2bSVaishali Kulkarni                struct pxp_pretend   pretend);
61