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

Commit 3e05f24a authored by Simon Horman's avatar Simon Horman
Browse files

ARM: shmobile: r8a7779: Add helper to read mode pins



Add and use helper to read mode pins.
This will be re-used when moving marzen-reference to
the common clock framework.

Signed-off-by: default avatarSimon Horman <horms+renesas@verge.net.au>
parent 3325cbe8
Loading
Loading
Loading
Loading
+2 −9
Original line number Original line Diff line number Diff line
@@ -23,6 +23,7 @@
#include <linux/io.h>
#include <linux/io.h>
#include <linux/sh_clk.h>
#include <linux/sh_clk.h>
#include <linux/clkdev.h>
#include <linux/clkdev.h>
#include <mach/r8a7779.h>
#include "clock.h"
#include "clock.h"
#include "common.h"
#include "common.h"


@@ -52,9 +53,6 @@
#define MSTPCR3		IOMEM(0xffc8003c)
#define MSTPCR3		IOMEM(0xffc8003c)
#define MSTPSR1		IOMEM(0xffc80044)
#define MSTPSR1		IOMEM(0xffc80044)


#define MODEMR		0xffcc0020


/* ioremap() through clock mapping mandatory to avoid
/* ioremap() through clock mapping mandatory to avoid
 * collision with ARM coherent DMA virtual memory range.
 * collision with ARM coherent DMA virtual memory range.
 */
 */
@@ -207,14 +205,9 @@ static struct clk_lookup lookups[] = {


void __init r8a7779_clock_init(void)
void __init r8a7779_clock_init(void)
{
{
	void __iomem *modemr = ioremap_nocache(MODEMR, PAGE_SIZE);
	u32 mode = r8a7779_read_mode_pins();
	u32 mode;
	int k, ret = 0;
	int k, ret = 0;


	BUG_ON(!modemr);
	mode = ioread32(modemr);
	iounmap(modemr);

	if (mode & MD(1)) {
	if (mode & MD(1)) {
		plla_clk.rate = 1500000000;
		plla_clk.rate = 1500000000;


+1 −0
Original line number Original line Diff line number Diff line
@@ -20,6 +20,7 @@ extern void r8a7779_add_early_devices(void);
extern void r8a7779_add_standard_devices(void);
extern void r8a7779_add_standard_devices(void);
extern void r8a7779_add_standard_devices_dt(void);
extern void r8a7779_add_standard_devices_dt(void);
extern void r8a7779_init_late(void);
extern void r8a7779_init_late(void);
extern u32 r8a7779_read_mode_pins(void);
extern void r8a7779_clock_init(void);
extern void r8a7779_clock_init(void);
extern void r8a7779_pinmux_init(void);
extern void r8a7779_pinmux_init(void);
extern void r8a7779_pm_init(void);
extern void r8a7779_pm_init(void);
+18 −0
Original line number Original line Diff line number Diff line
@@ -762,6 +762,24 @@ void __init r8a7779_add_standard_devices_dt(void)
	of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
	of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
}
}


#define MODEMR		0xffcc0020

u32 __init r8a7779_read_mode_pins(void)
{
	static u32 mode;
	static bool mode_valid;

	if (!mode_valid) {
		void __iomem *modemr = ioremap_nocache(MODEMR, PAGE_SIZE);
		BUG_ON(!modemr);
		mode = ioread32(modemr);
		iounmap(modemr);
		mode_valid = true;
	}

	return mode;
}

static const char *r8a7779_compat_dt[] __initdata = {
static const char *r8a7779_compat_dt[] __initdata = {
	"renesas,r8a7779",
	"renesas,r8a7779",
	NULL,
	NULL,