diff options
author | Scott Wood <scottwood@freescale.com> | 2007-09-14 14:04:54 -0400 |
---|---|---|
committer | Kumar Gala <galak@kernel.crashing.org> | 2007-10-03 21:35:43 -0400 |
commit | e631ae3b164158fbf486fbed5adb597696c4f0e5 (patch) | |
tree | 16e4c792462c228b0a8e896a5adb32681c5681eb /arch/powerpc | |
parent | 6d817aa71fddea859ba02d1a0b326da930ce6b50 (diff) |
[POWERPC] Introduce new CPM device bindings.
This introduces a new device binding for the CPM and other devices on
these boards. Some of the changes include:
1. Proper namespace scoping for Freescale compatibles and properties.
2. Use compatible rather than things like device_type and model
to determine which particular variant of a device is present.
3. Give the drivers the relevant CPM command word directly, rather than
requiring it to have a lookup table based on device-id, SCC v. SMC, and
CPM version.
4. Specify the CPCR and the usable DPRAM region in the CPM's reg property.
Boards that do not require the legacy bindings should select
CONFIG_PPC_CPM_NEW_BINDING to enable the of_platform CPM devices. Once
all existing boards are converted and tested, the config option can
become default y to prevent new boards from using the old model. Once
arch/ppc is gone, the config option can be removed altogether.
Signed-off-by: Scott Wood <scottwood@freescale.com>
Acked-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc')
-rw-r--r-- | arch/powerpc/platforms/Kconfig | 11 | ||||
-rw-r--r-- | arch/powerpc/sysdev/fsl_soc.c | 2 |
2 files changed, 13 insertions, 0 deletions
diff --git a/arch/powerpc/platforms/Kconfig b/arch/powerpc/platforms/Kconfig index 92fcd6e35b51..8a62ca533b30 100644 --- a/arch/powerpc/platforms/Kconfig +++ b/arch/powerpc/platforms/Kconfig | |||
@@ -279,6 +279,17 @@ config CPM2 | |||
279 | you wish to build a kernel for a machine with a CPM2 coprocessor | 279 | you wish to build a kernel for a machine with a CPM2 coprocessor |
280 | on it (826x, 827x, 8560). | 280 | on it (826x, 827x, 8560). |
281 | 281 | ||
282 | config PPC_CPM_NEW_BINDING | ||
283 | bool | ||
284 | depends on CPM1 || CPM2 | ||
285 | help | ||
286 | Select this if your board has been converted to use the new | ||
287 | device tree bindings for CPM, and no longer needs the | ||
288 | ioport callbacks or the platform device glue code. | ||
289 | |||
290 | The fs_enet and cpm_uart drivers will be built as | ||
291 | of_platform devices. | ||
292 | |||
282 | config AXON_RAM | 293 | config AXON_RAM |
283 | tristate "Axon DDR2 memory device driver" | 294 | tristate "Axon DDR2 memory device driver" |
284 | depends on PPC_IBM_CELL_BLADE | 295 | depends on PPC_IBM_CELL_BLADE |
diff --git a/arch/powerpc/sysdev/fsl_soc.c b/arch/powerpc/sysdev/fsl_soc.c index 30523667df4e..b465b30c9547 100644 --- a/arch/powerpc/sysdev/fsl_soc.c +++ b/arch/powerpc/sysdev/fsl_soc.c | |||
@@ -665,6 +665,7 @@ err: | |||
665 | 665 | ||
666 | arch_initcall(fsl_usb_of_init); | 666 | arch_initcall(fsl_usb_of_init); |
667 | 667 | ||
668 | #ifndef CONFIG_PPC_CPM_NEW_BINDING | ||
668 | #ifdef CONFIG_CPM2 | 669 | #ifdef CONFIG_CPM2 |
669 | 670 | ||
670 | extern void init_scc_ioports(struct fs_uart_platform_info*); | 671 | extern void init_scc_ioports(struct fs_uart_platform_info*); |
@@ -1204,6 +1205,7 @@ err: | |||
1204 | arch_initcall(cpm_smc_uart_of_init); | 1205 | arch_initcall(cpm_smc_uart_of_init); |
1205 | 1206 | ||
1206 | #endif /* CONFIG_8xx */ | 1207 | #endif /* CONFIG_8xx */ |
1208 | #endif /* CONFIG_PPC_CPM_NEW_BINDING */ | ||
1207 | 1209 | ||
1208 | int __init fsl_spi_init(struct spi_board_info *board_infos, | 1210 | int __init fsl_spi_init(struct spi_board_info *board_infos, |
1209 | unsigned int num_board_infos, | 1211 | unsigned int num_board_infos, |