xref: /kernel/linux/linux-6.6/arch/mips/ath25/devices.h (revision 62306a36)
162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci#ifndef __ATH25_DEVICES_H
362306a36Sopenharmony_ci#define __ATH25_DEVICES_H
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci#include <linux/cpu.h>
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci#define ATH25_REG_MS(_val, _field)	(((_val) & _field##_M) >> _field##_S)
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#define ATH25_IRQ_CPU_CLOCK	(MIPS_CPU_IRQ_BASE + 7)	/* C0_CAUSE: 0x8000 */
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_cienum ath25_soc_type {
1262306a36Sopenharmony_ci	/* handled by ar5312.c */
1362306a36Sopenharmony_ci	ATH25_SOC_AR2312,
1462306a36Sopenharmony_ci	ATH25_SOC_AR2313,
1562306a36Sopenharmony_ci	ATH25_SOC_AR5312,
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci	/* handled by ar2315.c */
1862306a36Sopenharmony_ci	ATH25_SOC_AR2315,
1962306a36Sopenharmony_ci	ATH25_SOC_AR2316,
2062306a36Sopenharmony_ci	ATH25_SOC_AR2317,
2162306a36Sopenharmony_ci	ATH25_SOC_AR2318,
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci	ATH25_SOC_UNKNOWN
2462306a36Sopenharmony_ci};
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ciextern enum ath25_soc_type ath25_soc;
2762306a36Sopenharmony_ciextern struct ar231x_board_config ath25_board;
2862306a36Sopenharmony_ciextern void (*ath25_irq_dispatch)(void);
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ciint ath25_find_config(phys_addr_t offset, unsigned long size);
3162306a36Sopenharmony_civoid ath25_serial_setup(u32 mapbase, int irq, unsigned int uartclk);
3262306a36Sopenharmony_ciint ath25_add_wmac(int nr, u32 base, int irq);
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_cistatic inline bool is_ar2315(void)
3562306a36Sopenharmony_ci{
3662306a36Sopenharmony_ci	return (current_cpu_data.cputype == CPU_4KEC);
3762306a36Sopenharmony_ci}
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_cistatic inline bool is_ar5312(void)
4062306a36Sopenharmony_ci{
4162306a36Sopenharmony_ci	return !is_ar2315();
4262306a36Sopenharmony_ci}
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci#endif
45