162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Ralink SoC register definitions 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright (C) 2013 John Crispin <john@phrozen.org> 662306a36Sopenharmony_ci * Copyright (C) 2008-2010 Gabor Juhos <juhosg@openwrt.org> 762306a36Sopenharmony_ci * Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org> 862306a36Sopenharmony_ci */ 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci#ifndef _RALINK_REGS_H_ 1162306a36Sopenharmony_ci#define _RALINK_REGS_H_ 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci#include <linux/io.h> 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_cienum ralink_soc_type { 1662306a36Sopenharmony_ci RALINK_UNKNOWN = 0, 1762306a36Sopenharmony_ci RT2880_SOC, 1862306a36Sopenharmony_ci RT3883_SOC, 1962306a36Sopenharmony_ci RT305X_SOC_RT3050, 2062306a36Sopenharmony_ci RT305X_SOC_RT3052, 2162306a36Sopenharmony_ci RT305X_SOC_RT3350, 2262306a36Sopenharmony_ci RT305X_SOC_RT3352, 2362306a36Sopenharmony_ci RT305X_SOC_RT5350, 2462306a36Sopenharmony_ci MT762X_SOC_MT7620A, 2562306a36Sopenharmony_ci MT762X_SOC_MT7620N, 2662306a36Sopenharmony_ci MT762X_SOC_MT7621AT, 2762306a36Sopenharmony_ci MT762X_SOC_MT7628AN, 2862306a36Sopenharmony_ci MT762X_SOC_MT7688, 2962306a36Sopenharmony_ci}; 3062306a36Sopenharmony_ciextern enum ralink_soc_type ralink_soc; 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ciextern __iomem void *rt_sysc_membase; 3362306a36Sopenharmony_ciextern __iomem void *rt_memc_membase; 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_cistatic inline void rt_sysc_w32(u32 val, unsigned reg) 3662306a36Sopenharmony_ci{ 3762306a36Sopenharmony_ci __raw_writel(val, rt_sysc_membase + reg); 3862306a36Sopenharmony_ci} 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_cistatic inline u32 rt_sysc_r32(unsigned reg) 4162306a36Sopenharmony_ci{ 4262306a36Sopenharmony_ci return __raw_readl(rt_sysc_membase + reg); 4362306a36Sopenharmony_ci} 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_cistatic inline void rt_sysc_m32(u32 clr, u32 set, unsigned reg) 4662306a36Sopenharmony_ci{ 4762306a36Sopenharmony_ci u32 val = rt_sysc_r32(reg) & ~clr; 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci __raw_writel(val | set, rt_sysc_membase + reg); 5062306a36Sopenharmony_ci} 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_cistatic inline void rt_memc_w32(u32 val, unsigned reg) 5362306a36Sopenharmony_ci{ 5462306a36Sopenharmony_ci __raw_writel(val, rt_memc_membase + reg); 5562306a36Sopenharmony_ci} 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_cistatic inline u32 rt_memc_r32(unsigned reg) 5862306a36Sopenharmony_ci{ 5962306a36Sopenharmony_ci return __raw_readl(rt_memc_membase + reg); 6062306a36Sopenharmony_ci} 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ci#endif /* _RALINK_REGS_H_ */ 63