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

Commit dbc4245b authored by Shawn Guo's avatar Shawn Guo Committed by Sascha Hauer
Browse files

ARM: mxs: Change duart device to use amba-pl011



The mxs duart is actually an amba-pl011 device. This commit changes
the duart device code to dynamically allocate amba-pl011 device,
so that drivers/serial/amba-pl011.c can be used on mxs.

Signed-off-by: default avatarShawn Guo <shawn.guo@freescale.com>
Signed-off-by: default avatarSascha Hauer <s.hauer@pengutronix.de>
parent 48f76ed1
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -15,7 +15,7 @@ comment "MXS platforms:"
config MACH_MX23EVK
config MACH_MX23EVK
	bool "Support MX23EVK Platform"
	bool "Support MX23EVK Platform"
	select SOC_IMX23
	select SOC_IMX23
	select MXS_HAVE_PLATFORM_DUART
	select MXS_HAVE_AMBA_DUART
	default y
	default y
	help
	help
	  Include support for MX23EVK platform. This includes specific
	  Include support for MX23EVK platform. This includes specific
@@ -24,7 +24,7 @@ config MACH_MX23EVK
config MACH_MX28EVK
config MACH_MX28EVK
	bool "Support MX28EVK Platform"
	bool "Support MX28EVK Platform"
	select SOC_IMX28
	select SOC_IMX28
	select MXS_HAVE_PLATFORM_DUART
	select MXS_HAVE_AMBA_DUART
	select MXS_HAVE_PLATFORM_FEC
	select MXS_HAVE_PLATFORM_FEC
	default y
	default y
	help
	help
+10 −2
Original line number Original line Diff line number Diff line
@@ -437,10 +437,12 @@ _DEFINE_CLOCK(clk32k_clk, XTAL, TIMROT_CLK32K_GATE, &ref_xtal_clk);
	},
	},


static struct clk_lookup lookups[] = {
static struct clk_lookup lookups[] = {
	_REGISTER_CLOCK("mxs-duart.0", NULL, uart_clk)
	/* for amba bus driver */
	_REGISTER_CLOCK("duart", "apb_pclk", xbus_clk)
	/* for amba-pl011 driver */
	_REGISTER_CLOCK("duart", NULL, uart_clk)
	_REGISTER_CLOCK("rtc", NULL, rtc_clk)
	_REGISTER_CLOCK("rtc", NULL, rtc_clk)
	_REGISTER_CLOCK(NULL, "hclk", hbus_clk)
	_REGISTER_CLOCK(NULL, "hclk", hbus_clk)
	_REGISTER_CLOCK(NULL, "xclk", xbus_clk)
	_REGISTER_CLOCK(NULL, "usb", usb_clk)
	_REGISTER_CLOCK(NULL, "usb", usb_clk)
	_REGISTER_CLOCK(NULL, "audio", audio_clk)
	_REGISTER_CLOCK(NULL, "audio", audio_clk)
	_REGISTER_CLOCK(NULL, "pwm", pwm_clk)
	_REGISTER_CLOCK(NULL, "pwm", pwm_clk)
@@ -518,6 +520,12 @@ int __init mx23_clocks_init(void)
{
{
	clk_misc_init();
	clk_misc_init();


	clk_enable(&cpu_clk);
	clk_enable(&hbus_clk);
	clk_enable(&xbus_clk);
	clk_enable(&emi_clk);
	clk_enable(&uart_clk);

	clkdev_add_table(lookups, ARRAY_SIZE(lookups));
	clkdev_add_table(lookups, ARRAY_SIZE(lookups));


	mxs_timer_init(&clk32k_clk, MX23_INT_TIMER0);
	mxs_timer_init(&clk32k_clk, MX23_INT_TIMER0);
+10 −1
Original line number Original line Diff line number Diff line
@@ -602,7 +602,10 @@ _DEFINE_CLOCK(fec_clk, ENET, DISABLE, &hbus_clk);
	},
	},


static struct clk_lookup lookups[] = {
static struct clk_lookup lookups[] = {
	_REGISTER_CLOCK("mxs-duart.0", NULL, uart_clk)
	/* for amba bus driver */
	_REGISTER_CLOCK("duart", "apb_pclk", xbus_clk)
	/* for amba-pl011 driver */
	_REGISTER_CLOCK("duart", NULL, uart_clk)
	_REGISTER_CLOCK("imx28-fec.0", NULL, fec_clk)
	_REGISTER_CLOCK("imx28-fec.0", NULL, fec_clk)
	_REGISTER_CLOCK("imx28-fec.1", NULL, fec_clk)
	_REGISTER_CLOCK("imx28-fec.1", NULL, fec_clk)
	_REGISTER_CLOCK("fec.0", NULL, fec_clk)
	_REGISTER_CLOCK("fec.0", NULL, fec_clk)
@@ -728,6 +731,12 @@ int __init mx28_clocks_init(void)
{
{
	clk_misc_init();
	clk_misc_init();


	clk_enable(&cpu_clk);
	clk_enable(&hbus_clk);
	clk_enable(&xbus_clk);
	clk_enable(&emi_clk);
	clk_enable(&uart_clk);

	clkdev_add_table(lookups, ARRAY_SIZE(lookups));
	clkdev_add_table(lookups, ARRAY_SIZE(lookups));


	mxs_timer_init(&clk32k_clk, MX28_INT_TIMER0);
	mxs_timer_init(&clk32k_clk, MX28_INT_TIMER0);
+2 −2
Original line number Original line Diff line number Diff line
@@ -11,6 +11,6 @@
#include <mach/mx23.h>
#include <mach/mx23.h>
#include <mach/devices-common.h>
#include <mach/devices-common.h>


extern const struct mxs_duart_data mx23_duart_data __initconst;
extern const struct amba_device mx23_duart_device __initconst;
#define mx23_add_duart() \
#define mx23_add_duart() \
	mxs_add_duart(&mx23_duart_data)
	mxs_add_duart(&mx23_duart_device)
+2 −2
Original line number Original line Diff line number Diff line
@@ -11,9 +11,9 @@
#include <mach/mx28.h>
#include <mach/mx28.h>
#include <mach/devices-common.h>
#include <mach/devices-common.h>


extern const struct mxs_duart_data mx28_duart_data __initconst;
extern const struct amba_device mx28_duart_device __initconst;
#define mx28_add_duart() \
#define mx28_add_duart() \
	mxs_add_duart(&mx28_duart_data)
	mxs_add_duart(&mx28_duart_device)


extern const struct mxs_fec_data mx28_fec_data[] __initconst;
extern const struct mxs_fec_data mx28_fec_data[] __initconst;
#define mx28_add_fec(id, pdata) \
#define mx28_add_fec(id, pdata) \
Loading