Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b8eb71dc authored by Chen-Yu Tsai's avatar Chen-Yu Tsai Committed by Maxime Ripard
Browse files

clk: sunxi-ng: Add A80 CCU



Add support for the main clock unit found in the A80. Some clocks were
not documented in the released user manual, but were found in the
official kernel from Allwinner. These include controls for the I2S,
SPDIF, SATA, and eDP blocks.

Note that on the A80, some subsystems have separate clock controllers
downstream of the main clock unit. These include the MMC, USB, and
display engine subsystems.

Signed-off-by: default avatarChen-Yu Tsai <wens@csie.org>
Acked-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarMaxime Ripard <maxime.ripard@free-electrons.com>
parent 3de64bf1
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ Required properties :
		- "allwinner,sun8i-a33-ccu"
		- "allwinner,sun8i-h3-ccu"
		- "allwinner,sun8i-v3s-ccu"
		- "allwinner,sun9i-a80-ccu"
		- "allwinner,sun50i-a64-ccu"

- reg: Must contain the registers base address and length
+10 −0
Original line number Diff line number Diff line
@@ -130,4 +130,14 @@ config SUN8I_V3S_CCU
	select SUNXI_CCU_PHASE
	default MACH_SUN8I

config SUN9I_A80_CCU
	bool "Support for the Allwinner A80 CCU"
	select SUNXI_CCU_DIV
	select SUNXI_CCU_GATE
	select SUNXI_CCU_NKMP
	select SUNXI_CCU_NM
	select SUNXI_CCU_MP
	select SUNXI_CCU_PHASE
	default MACH_SUN9I

endif
+1 −0
Original line number Diff line number Diff line
@@ -25,3 +25,4 @@ obj-$(CONFIG_SUN8I_A23_CCU) += ccu-sun8i-a23.o
obj-$(CONFIG_SUN8I_A33_CCU)	+= ccu-sun8i-a33.o
obj-$(CONFIG_SUN8I_H3_CCU)	+= ccu-sun8i-h3.o
obj-$(CONFIG_SUN8I_V3S_CCU)	+= ccu-sun8i-v3s.o
obj-$(CONFIG_SUN9I_A80_CCU)	+= ccu-sun9i-a80.o
+1223 −0

File added.

Preview size limit exceeded, changes collapsed.

+57 −0
Original line number Diff line number Diff line
/*
 * Copyright 2016 Chen-Yu Tsai
 *
 * Chen-Yu Tsai <wens@csie.org>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

#ifndef _CCU_SUN9I_A80_H_
#define _CCU_SUN9I_A80_H_

#include <dt-bindings/clock/sun9i-a80-ccu.h>
#include <dt-bindings/reset/sun9i-a80-ccu.h>

#define CLK_PLL_C0CPUX		0
#define CLK_PLL_C1CPUX		1

/* pll-audio and pll-periph0 are exported to the PRCM block */

#define CLK_PLL_VE		4
#define CLK_PLL_DDR		5
#define CLK_PLL_VIDEO0		6
#define CLK_PLL_VIDEO1		7
#define CLK_PLL_GPU		8
#define CLK_PLL_DE		9
#define CLK_PLL_ISP		10
#define CLK_PLL_PERIPH1		11

/* The CPUX clocks are exported */

#define CLK_ATB0		14
#define CLK_AXI0		15
#define CLK_ATB1		16
#define CLK_AXI1		17
#define CLK_GTBUS		18
#define CLK_AHB0		19
#define CLK_AHB1		20
#define CLK_AHB2		21
#define CLK_APB0		22
#define CLK_APB1		23
#define CLK_CCI400		24
#define CLK_ATS			25
#define CLK_TRACE		26

/* module clocks and bus gates exported */

#define CLK_NUMBER		(CLK_BUS_UART5 + 1)

#endif /* _CCU_SUN9I_A80_H_ */
Loading