1 // SPDX-License-Identifier: GPL-2.0-only
3 * Copyright (c) 2020 Bjørn Mork <bjorn@mork.no>
6 #include <linux/module.h>
8 #define MODULE_NAME "mt7621-qtn-rgmii"
9 #define RGMII_REG_BASE 0x1e110008
10 #define RGMII_REG_SIZE 4
11 #define RGMII_REG_VALUE 0x9000c
15 static int __init
mt7621_qtn_rgmii_init(void)
17 void __iomem
*base
= ioremap(RGMII_REG_BASE
, RGMII_REG_SIZE
);
21 oldval
= ioread32(base
);
22 if (oldval
!= RGMII_REG_VALUE
) {
23 iowrite32(RGMII_REG_VALUE
, base
);
24 pr_info(MODULE_NAME
": changed register 0x%08x value from 0x%08x to 0x%08x\n", RGMII_REG_BASE
, oldval
, RGMII_REG_VALUE
);
30 static void __exit
mt7621_qtn_rgmii_exit(void)
32 void __iomem
*base
= ioremap(RGMII_REG_BASE
, RGMII_REG_SIZE
);
36 if (oldval
!= RGMII_REG_VALUE
) {
37 iowrite32(oldval
, base
);
38 pr_info(MODULE_NAME
": reset register 0x%08x back to 0x%08x\n", RGMII_REG_BASE
, oldval
);
43 module_init(mt7621_qtn_rgmii_init
);
44 module_exit(mt7621_qtn_rgmii_exit
);
46 MODULE_LICENSE("GPL");
47 MODULE_AUTHOR("Bjørn Mork <bjorn@mork.no>");
48 MODULE_DESCRIPTION("Enable RGMII connected Quantenna module on MT7621");