185639910SJohn Crispin /* 285639910SJohn Crispin * Ralink SoC register definitions 385639910SJohn Crispin * 497b92108SJohn Crispin * Copyright (C) 2013 John Crispin <john@phrozen.org> 585639910SJohn Crispin * Copyright (C) 2008-2010 Gabor Juhos <juhosg@openwrt.org> 685639910SJohn Crispin * Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org> 785639910SJohn Crispin * 885639910SJohn Crispin * This program is free software; you can redistribute it and/or modify it 985639910SJohn Crispin * under the terms of the GNU General Public License version 2 as published 1085639910SJohn Crispin * by the Free Software Foundation. 1185639910SJohn Crispin */ 1285639910SJohn Crispin 1385639910SJohn Crispin #ifndef _RALINK_REGS_H_ 1485639910SJohn Crispin #define _RALINK_REGS_H_ 1585639910SJohn Crispin 16e3ccf1d1SHarvey Hunt #include <linux/io.h> 17e3ccf1d1SHarvey Hunt 18418d29c8SJohn Crispin enum ralink_soc_type { 19418d29c8SJohn Crispin RALINK_UNKNOWN = 0, 20418d29c8SJohn Crispin RT2880_SOC, 21418d29c8SJohn Crispin RT3883_SOC, 22418d29c8SJohn Crispin RT305X_SOC_RT3050, 23418d29c8SJohn Crispin RT305X_SOC_RT3052, 24418d29c8SJohn Crispin RT305X_SOC_RT3350, 25418d29c8SJohn Crispin RT305X_SOC_RT3352, 26418d29c8SJohn Crispin RT305X_SOC_RT5350, 27418d29c8SJohn Crispin MT762X_SOC_MT7620A, 28418d29c8SJohn Crispin MT762X_SOC_MT7620N, 29418d29c8SJohn Crispin MT762X_SOC_MT7621AT, 30418d29c8SJohn Crispin MT762X_SOC_MT7628AN, 31418d29c8SJohn Crispin MT762X_SOC_MT7688, 32418d29c8SJohn Crispin }; 33418d29c8SJohn Crispin extern enum ralink_soc_type ralink_soc; 34418d29c8SJohn Crispin 3585639910SJohn Crispin extern __iomem void *rt_sysc_membase; 3685639910SJohn Crispin extern __iomem void *rt_memc_membase; 3785639910SJohn Crispin 3885639910SJohn Crispin static inline void rt_sysc_w32(u32 val, unsigned reg) 3985639910SJohn Crispin { 4085639910SJohn Crispin __raw_writel(val, rt_sysc_membase + reg); 4185639910SJohn Crispin } 4285639910SJohn Crispin 4385639910SJohn Crispin static inline u32 rt_sysc_r32(unsigned reg) 4485639910SJohn Crispin { 4585639910SJohn Crispin return __raw_readl(rt_sysc_membase + reg); 4685639910SJohn Crispin } 4785639910SJohn Crispin 4847e14d66SJohn Crispin static inline void rt_sysc_m32(u32 clr, u32 set, unsigned reg) 4947e14d66SJohn Crispin { 5047e14d66SJohn Crispin u32 val = rt_sysc_r32(reg) & ~clr; 5147e14d66SJohn Crispin 5247e14d66SJohn Crispin __raw_writel(val | set, rt_sysc_membase + reg); 5347e14d66SJohn Crispin } 5447e14d66SJohn Crispin 5585639910SJohn Crispin static inline void rt_memc_w32(u32 val, unsigned reg) 5685639910SJohn Crispin { 5785639910SJohn Crispin __raw_writel(val, rt_memc_membase + reg); 5885639910SJohn Crispin } 5985639910SJohn Crispin 6085639910SJohn Crispin static inline u32 rt_memc_r32(unsigned reg) 6185639910SJohn Crispin { 6285639910SJohn Crispin return __raw_readl(rt_memc_membase + reg); 6385639910SJohn Crispin } 6485639910SJohn Crispin 6585639910SJohn Crispin #endif /* _RALINK_REGS_H_ */ 66