blob: 67abf78efd9020065bc69e74026d52f8e0041e46 [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001/* Copyright Statement:
2 *
3 * This software/firmware and related documentation ("MediaTek Software") are
4 * protected under relevant copyright laws. The information contained herein is
5 * confidential and proprietary to MediaTek Inc. and/or its licensors. Without
6 * the prior written permission of MediaTek inc. and/or its licensors, any
7 * reproduction, modification, use or disclosure of MediaTek Software, and
8 * information contained herein, in whole or in part, shall be strictly
9 * prohibited.
10 *
11 * MediaTek Inc. (C) 2019. All rights reserved.
12 *
13 * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
14 * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
15 * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER
16 * ON AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL
17 * WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
19 * NONINFRINGEMENT. NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH
20 * RESPECT TO THE SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY,
21 * INCORPORATED IN, OR SUPPLIED WITH THE MEDIATEK SOFTWARE, AND RECEIVER AGREES
22 * TO LOOK ONLY TO SUCH THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO.
23 * RECEIVER EXPRESSLY ACKNOWLEDGES THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO
24 * OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES CONTAINED IN MEDIATEK
25 * SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE
26 * RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
27 * STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S
28 * ENTIRE AND CUMULATIVE LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE
29 * RELEASED HEREUNDER WILL BE, AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE
30 * MEDIATEK SOFTWARE AT ISSUE, OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE
31 * CHARGE PAID BY RECEIVER TO MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
32 *
33 * The following software/firmware and/or related documentation ("MediaTek
34 * Software") have been modified by MediaTek Inc. All revisions are subject to
35 * any receiver's applicable license agreements with MediaTek Inc.
36 */
37#ifndef __PMIF_H__
38#define __PMIF_H__
39
40#include "drv_comm.h"
41#include "kal_public_defs.h"
42
43#define PMIF_CMD_REG_0 0
44#define PMIF_CMD_REG 1
45#define PMIF_CMD_EXT_REG 2
46#define PMIF_CMD_EXT_REG_LONG 3
47
48struct pmif {
49 void *base;
50 int *regs;
51 int *dbgregs;
52 void *spmimst_base;
53 int *spmimst_regs;
54 int swinf_ch_start;
55 int swinf_no;
56 int write;
57 int mstid;
58 int pmifid;
59 int (*cmd)(struct pmif *arb, unsigned int opcode);
60 int (*read_cmd)(struct pmif *arb, unsigned char opc,
61 unsigned char sid, unsigned short addr,
62 unsigned char *buf, unsigned short len);
63 int (*write_cmd)(struct pmif *arb, unsigned char opc,
64 unsigned char sid, unsigned short addr,
65 const unsigned char *buf, unsigned short len);
66 void (*pmif_enable_clk_set)(int mstid);
67 void (*pmif_force_normal_mode)(int mstid);
68 void (*pmif_enable_swinf)(int mstid, unsigned int chan_no,
69 unsigned int swinf_no);
70 void (*pmif_enable_cmdIssue)(int mstid, kal_bool en);
71 void (*pmif_enable)(int mstid);
72 int (*is_pmif_init_done)(int mstid);
73};
74
75enum {
76 PMIF_SPMI,
77 PMIF_SPI
78};
79/* start external API */
80extern struct pmif *get_pmif_controller(int inf, int mstid);
81extern int is_pmif_spmi_init_done(int mstid);
82extern int pmif_spmi_init(int mstid);
83
84#endif /*__PMIF_H__*/