162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci *
362306a36Sopenharmony_ci * Copyright (c) 2006 Andriy Skulysh <askulsyh@gmail.com>
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#include <linux/linkage.h>
762306a36Sopenharmony_ci#include <cpu/mmu_context.h>
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci/*
1062306a36Sopenharmony_ci * Kernel mode register usage:
1162306a36Sopenharmony_ci *	k0	scratch
1262306a36Sopenharmony_ci *	k1	scratch
1362306a36Sopenharmony_ci * For more details, please have a look at entry.S
1462306a36Sopenharmony_ci */
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci#define k0	r0
1762306a36Sopenharmony_ci#define k1	r1
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ciENTRY(wakeup_start)
2062306a36Sopenharmony_ci! clear STBY bit
2162306a36Sopenharmony_ci	mov	#-126, k1
2262306a36Sopenharmony_ci   	and	#127, k0
2362306a36Sopenharmony_ci	mov.b	k0, @k1
2462306a36Sopenharmony_ci! enable refresh
2562306a36Sopenharmony_ci	mov.l	5f, k1
2662306a36Sopenharmony_ci	mov.w	6f, k0
2762306a36Sopenharmony_ci  	mov.w	k0, @k1
2862306a36Sopenharmony_ci! jump to handler
2962306a36Sopenharmony_ci	mov.l	4f, k1
3062306a36Sopenharmony_ci	jmp	@k1
3162306a36Sopenharmony_ci	 nop
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci	.align	2
3462306a36Sopenharmony_ci4:	.long	handle_interrupt
3562306a36Sopenharmony_ci5:	.long	0xffffff68
3662306a36Sopenharmony_ci6:	.word	0x0524
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ciENTRY(wakeup_end)
3962306a36Sopenharmony_ci	nop
40