aboutsummaryrefslogtreecommitdiff
path: root/plat/marvell/armada/a3k/common/aarch64/a3700_clock.S
blob: f79516f5ca00eb3d28a90950bcdf07354120b470 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/*
 * Copyright (C) 2018 Marvell International Ltd.
 *
 * SPDX-License-Identifier:	BSD-3-Clause
 * https://spdx.org/licenses
 */

#include <asm_macros.S>
#include <platform_def.h>

/*
 * Below address in used only for reading, therefore no problem with concurrent
 * Linux access.
 */
#define MVEBU_TEST_PIN_LATCH_N (MVEBU_NB_GPIO_REG_BASE + 0x8)
 #define MVEBU_XTAL_MODE_MASK		BIT(9)

	/* -----------------------------------------------------
	 * uint32_t get_ref_clk (void);
	 *
	 * returns reference clock in MHz (25 or 40)
	 * -----------------------------------------------------
	 */
.globl	get_ref_clk
func get_ref_clk
	mov_imm	x0, MVEBU_TEST_PIN_LATCH_N
	ldr	w0, [x0]
	tst	w0, #MVEBU_XTAL_MODE_MASK
	bne	40
	mov	w0, #25
	ret
40:
	mov	w0, #40
	ret
endfunc get_ref_clk