]> Git Repo - linux.git/blob - drivers/phy/qualcomm/phy-qcom-qmp-common.h
crypto: akcipher - Drop sign/verify operations
[linux.git] / drivers / phy / qualcomm / phy-qcom-qmp-common.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Copyright (c) 2017, The Linux Foundation. All rights reserved.
4  */
5
6 #ifndef QCOM_PHY_QMP_COMMON_H_
7 #define QCOM_PHY_QMP_COMMON_H_
8
9 struct qmp_phy_init_tbl {
10         unsigned int offset;
11         unsigned int val;
12         char *name;
13         /*
14          * mask of lanes for which this register is written
15          * for cases when second lane needs different values
16          */
17         u8 lane_mask;
18 };
19
20 #define QMP_PHY_INIT_CFG(o, v)          \
21         {                               \
22                 .offset = o,            \
23                 .val = v,               \
24                 .name = #o,             \
25                 .lane_mask = 0xff,      \
26         }
27
28 #define QMP_PHY_INIT_CFG_LANE(o, v, l)  \
29         {                               \
30                 .offset = o,            \
31                 .val = v,               \
32                 .name = #o,             \
33                 .lane_mask = l,         \
34         }
35
36 static inline void qmp_configure_lane(struct device *dev, void __iomem *base,
37                                       const struct qmp_phy_init_tbl tbl[],
38                                       int num, u8 lane_mask)
39 {
40         int i;
41         const struct qmp_phy_init_tbl *t = tbl;
42
43         if (!t)
44                 return;
45
46         for (i = 0; i < num; i++, t++) {
47                 if (!(t->lane_mask & lane_mask))
48                         continue;
49
50                 dev_dbg(dev, "Writing Reg: %s Offset: 0x%04x Val: 0x%02x\n",
51                         t->name, t->offset, t->val);
52                 writel(t->val, base + t->offset);
53         }
54 }
55
56 static inline void qmp_configure(struct device *dev, void __iomem *base,
57                                  const struct qmp_phy_init_tbl tbl[], int num)
58 {
59         qmp_configure_lane(dev, base, tbl, num, 0xff);
60 }
61
62 #endif
This page took 0.035365 seconds and 4 git commands to generate.