1 // SPDX-License-Identifier: GPL-2.0+
3 * Platform support for LPC32xx SoC
5 * Author: Kevin Wells <kevin.wells@nxp.com>
7 * Copyright (C) 2012 Roland Stigge <stigge@antcom.de>
8 * Copyright (C) 2010 NXP Semiconductors
11 #include <linux/amba/pl08x.h>
12 #include <linux/mtd/lpc32xx_mlc.h>
13 #include <linux/mtd/lpc32xx_slc.h>
14 #include <linux/of_platform.h>
16 #include <asm/mach/arch.h>
19 static struct pl08x_channel_data pl08x_slave_channels
[] = {
22 .min_signal
= 1, /* SLC NAND Flash */
24 .periph_buses
= PL08X_AHB1
,
28 .min_signal
= 12, /* MLC NAND Flash */
30 .periph_buses
= PL08X_AHB1
,
34 static int pl08x_get_signal(const struct pl08x_channel_data
*cd
)
36 return cd
->min_signal
;
39 static void pl08x_put_signal(const struct pl08x_channel_data
*cd
, int ch
)
43 static struct pl08x_platform_data pl08x_pd
= {
44 /* Some reasonable memcpy defaults */
45 .memcpy_burst_size
= PL08X_BURST_SZ_256
,
46 .memcpy_bus_width
= PL08X_BUS_WIDTH_32_BITS
,
47 .slave_channels
= &pl08x_slave_channels
[0],
48 .num_slave_channels
= ARRAY_SIZE(pl08x_slave_channels
),
49 .get_xfer_signal
= pl08x_get_signal
,
50 .put_xfer_signal
= pl08x_put_signal
,
51 .lli_buses
= PL08X_AHB1
,
52 .mem_buses
= PL08X_AHB1
,
55 static struct lpc32xx_slc_platform_data lpc32xx_slc_data
= {
56 .dma_filter
= pl08x_filter_id
,
59 static struct lpc32xx_mlc_platform_data lpc32xx_mlc_data
= {
60 .dma_filter
= pl08x_filter_id
,
63 static const struct of_dev_auxdata lpc32xx_auxdata_lookup
[] __initconst
= {
64 OF_DEV_AUXDATA("arm,pl080", 0x31000000, "pl08xdmac", &pl08x_pd
),
65 OF_DEV_AUXDATA("nxp,lpc3220-slc", 0x20020000, "20020000.flash",
67 OF_DEV_AUXDATA("nxp,lpc3220-mlc", 0x200a8000, "200a8000.flash",
72 static void __init
lpc3250_machine_init(void)
74 lpc32xx_serial_init();
76 of_platform_default_populate(NULL
, lpc32xx_auxdata_lookup
, NULL
);
79 static const char *const lpc32xx_dt_compat
[] __initconst
= {
87 DT_MACHINE_START(LPC32XX_DT
, "LPC32XX SoC (Flattened Device Tree)")
89 .map_io
= lpc32xx_map_io
,
90 .init_machine
= lpc3250_machine_init
,
91 .dt_compat
= lpc32xx_dt_compat
,