Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 2 Feb 2021 12:28:00 GMT
From:      Marcin Wojtas <mw@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: cd1393dfe718 - stable/12 - marvell: ap806_clock: add missing frequency modes
Message-ID:  <202102021228.112CS0n4052392@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch stable/12 has been updated by mw:

URL: https://cgit.FreeBSD.org/src/commit/?id=cd1393dfe7189c21739b4581b9cbdda680c54f59

commit cd1393dfe7189c21739b4581b9cbdda680c54f59
Author:     Marcin Wojtas <mw@FreeBSD.org>
AuthorDate: 2021-01-26 10:49:35 +0000
Commit:     Marcin Wojtas <mw@FreeBSD.org>
CommitDate: 2021-02-02 12:27:38 +0000

    marvell: ap806_clock: add missing frequency modes
    
    In the driver init routine the CPU clock frequency
    value is obtained from a dedicated register. Until now
    only part of the values were handled by the mv_ap806_clock
    driver. Fix that by adding missing cases.
    
    Submitted by: Zyta Szpak <zr@semihalf.com>
    MFC after: 1 week
    Obtained from: Semihalf
    Sponsored by: Marvell
    
    (cherry picked from commit a86b0839d7bf3fc06b1ae9c50e055b53c50a9d0b)
---
 sys/arm/mv/mv_ap806_clock.c | 34 ++++++++++++++++++++++++++++++----
 1 file changed, 30 insertions(+), 4 deletions(-)

diff --git a/sys/arm/mv/mv_ap806_clock.c b/sys/arm/mv/mv_ap806_clock.c
index 2516ce72d35c..bbbe875ee939 100644
--- a/sys/arm/mv/mv_ap806_clock.c
+++ b/sys/arm/mv/mv_ap806_clock.c
@@ -139,25 +139,51 @@ mv_ap806_clock_attach(device_t dev)
 		return (ENXIO);
 	}
 
-	/* 
-	 * We might miss some combinations
-	 * Those are the only possible ones on the mcbin
-	 */
 	reg = RD4(sc, 0x400);
 	switch (reg & 0x1f) {
 	case 0x0:
 	case 0x1:
 		clock_freq = 2000000000;
 		break;
+	case 0x4:
+		clock_freq = 1600000000;
+		break;
 	case 0x6:
 		clock_freq = 1800000000;
 		break;
+	case 0x7:
+		clock_freq = 1800000000;
+		break;
+	case 0xb:
+		clock_freq = 1600000000;
+		break;
 	case 0xd:
 		clock_freq = 1600000000;
 		break;
+	case 0x13:
+		clock_freq = 1000000000;
+		break;
 	case 0x14:
 		clock_freq = 1333000000;
 		break;
+	case 0x17:
+		clock_freq = 1333000000;
+		break;
+	case 0x19:
+		clock_freq = 1200000000;
+		break;
+	case 0x1a:
+		clock_freq = 1400000000;
+		break;
+	case 0x1b:
+		clock_freq = 600000000;
+		break;
+	case 0x1c:
+		clock_freq = 800000000;
+		break;
+	case 0x1d:
+		clock_freq = 1000000000;
+		break;
 	default:
 		device_printf(dev, "Cannot guess clock freq with reg %x\n",
 		     reg & 0x1f);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202102021228.112CS0n4052392>