mirror of
https://github.com/torvalds/linux.git
synced 2024-11-26 22:21:42 +00:00
d1654b803f
The mxs pinctrl driver will only support DT probe. That said, the mxs device drivers can only get pinctrl state from pinctrl subsystem when the drivers get probed from device tree. Before converting the whole mxs platform support over to device tree, we need to enable pinctrl dummy states for those non-DT board files to ensure the pinctrl API adopted by mxs device drivers will work for both DT and non-DT probe. Instead of calling pinctrl_provide_dummies() directly in every board file, the patch introduces soc specific calls mx23_soc_init() and mx28_soc_init() for boards' .init_machine hook to invoke, so that any soc specific setup for non-DT boot only can be added there. Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
75 lines
1.5 KiB
C
75 lines
1.5 KiB
C
/*
|
|
* Copyright 2008-2010 Freescale Semiconductor, Inc. All Rights Reserved.
|
|
*
|
|
* The code contained herein is licensed under the GNU General Public
|
|
* License. You may obtain a copy of the GNU General Public License
|
|
* Version 2 or later at the following locations:
|
|
*
|
|
* http://www.opensource.org/licenses/gpl-license.html
|
|
* http://www.gnu.org/copyleft/gpl.html
|
|
*
|
|
* Create static mapping between physical to virtual memory.
|
|
*/
|
|
|
|
#include <linux/mm.h>
|
|
#include <linux/init.h>
|
|
#include <linux/pinctrl/machine.h>
|
|
|
|
#include <asm/mach/map.h>
|
|
|
|
#include <mach/mx23.h>
|
|
#include <mach/mx28.h>
|
|
#include <mach/common.h>
|
|
#include <mach/iomux.h>
|
|
|
|
/*
|
|
* Define the MX23 memory map.
|
|
*/
|
|
static struct map_desc mx23_io_desc[] __initdata = {
|
|
mxs_map_entry(MX23, OCRAM, MT_DEVICE),
|
|
mxs_map_entry(MX23, IO, MT_DEVICE),
|
|
};
|
|
|
|
/*
|
|
* Define the MX28 memory map.
|
|
*/
|
|
static struct map_desc mx28_io_desc[] __initdata = {
|
|
mxs_map_entry(MX28, OCRAM, MT_DEVICE),
|
|
mxs_map_entry(MX28, IO, MT_DEVICE),
|
|
};
|
|
|
|
/*
|
|
* This function initializes the memory map. It is called during the
|
|
* system startup to create static physical to virtual memory mappings
|
|
* for the IO modules.
|
|
*/
|
|
void __init mx23_map_io(void)
|
|
{
|
|
iotable_init(mx23_io_desc, ARRAY_SIZE(mx23_io_desc));
|
|
}
|
|
|
|
void __init mx23_init_irq(void)
|
|
{
|
|
icoll_init_irq();
|
|
}
|
|
|
|
void __init mx28_map_io(void)
|
|
{
|
|
iotable_init(mx28_io_desc, ARRAY_SIZE(mx28_io_desc));
|
|
}
|
|
|
|
void __init mx28_init_irq(void)
|
|
{
|
|
icoll_init_irq();
|
|
}
|
|
|
|
void __init mx23_soc_init(void)
|
|
{
|
|
pinctrl_provide_dummies();
|
|
}
|
|
|
|
void __init mx28_soc_init(void)
|
|
{
|
|
pinctrl_provide_dummies();
|
|
}
|