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

Commit 43cbec85 authored by Ulrich Hecht's avatar Ulrich Hecht Committed by Simon Horman
Browse files

ARM: shmobile: r8a7778: implement SoC and board CCF support



Disables the legacy clock framework and passes the mode bits to the CPG
driver if CCF is enabled.

Signed-off-by: default avatarUlrich Hecht <ulrich.hecht+renesas@gmail.com>
Acked-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: default avatarSimon Horman <horms+renesas@verge.net.au>
parent 93aa970d
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -36,7 +36,9 @@ static void __init bockw_init(void)
	void __iomem *fpga;
	void __iomem *pfc;

#ifndef CONFIG_COMMON_CLK
	r8a7778_clock_init();
#endif
	r8a7778_init_irq_extpin_dt(1);
	r8a7778_add_dt_devices();

+19 −0
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@
 * GNU General Public License for more details.
 */

#include <linux/clk/shmobile.h>
#include <linux/kernel.h>
#include <linux/io.h>
#include <linux/irqchip/arm-gic.h>
@@ -41,6 +42,21 @@
#include "irqs.h"
#include "r8a7778.h"

#define MODEMR 0xffcc0020

#ifdef CONFIG_COMMON_CLK
static void __init r8a7778_timer_init(void)
{
	u32 mode;
	void __iomem *modemr = ioremap_nocache(MODEMR, 4);

	BUG_ON(!modemr);
	mode = ioread32(modemr);
	iounmap(modemr);
	r8a7778_clocks_init(mode);
}
#endif

/* SCIF */
#define R8A7778_SCIF(index, baseaddr, irq)			\
static struct plat_sci_port scif##index##_platform_data = {	\
@@ -608,6 +624,9 @@ DT_MACHINE_START(R8A7778_DT, "Generic R8A7778 (Flattened Device Tree)")
	.init_early	= shmobile_init_delay,
	.init_irq	= r8a7778_init_irq_dt,
	.init_late	= shmobile_init_late,
#ifdef CONFIG_COMMON_CLK
	.init_time	= r8a7778_timer_init,
#endif
	.dt_compat	= r8a7778_compat_dt,
MACHINE_END