Path: blob/master/arch/powerpc/platforms/83xx/mpc837x_rdb.c
26481 views
// SPDX-License-Identifier: GPL-2.0-or-later1/*2* arch/powerpc/platforms/83xx/mpc837x_rdb.c3*4* Copyright (C) 2007 Freescale Semiconductor, Inc. All rights reserved.5*6* MPC837x RDB board specific routines7*/89#include <linux/pci.h>10#include <linux/of_platform.h>1112#include <asm/time.h>13#include <asm/ipic.h>14#include <asm/udbg.h>15#include <sysdev/fsl_soc.h>16#include <sysdev/fsl_pci.h>1718#include "mpc83xx.h"1920static void __init mpc837x_rdb_sd_cfg(void)21{22void __iomem *im;2324im = ioremap(get_immrbase(), 0x1000);25if (!im) {26WARN_ON(1);27return;28}2930/*31* On RDB boards (in contrast to MDS) USBB pins are used for SD only,32* so we can safely mux them away from the USB block.33*/34clrsetbits_be32(im + MPC83XX_SICRL_OFFS, MPC837X_SICRL_USBB_MASK,35MPC837X_SICRL_SD);36clrsetbits_be32(im + MPC83XX_SICRH_OFFS, MPC837X_SICRH_SPI_MASK,37MPC837X_SICRH_SD);38iounmap(im);39}4041/* ************************************************************************42*43* Setup the architecture44*45*/46static void __init mpc837x_rdb_setup_arch(void)47{48mpc83xx_setup_arch();49mpc837x_usb_cfg();50mpc837x_rdb_sd_cfg();51}5253machine_device_initcall(mpc837x_rdb, mpc83xx_declare_of_platform_devices);5455static const char * const board[] __initconst = {56"fsl,mpc8377rdb",57"fsl,mpc8378rdb",58"fsl,mpc8379rdb",59"fsl,mpc8377wlan",60NULL61};6263define_machine(mpc837x_rdb) {64.name = "MPC837x RDB/WLAN",65.compatibles = board,66.setup_arch = mpc837x_rdb_setup_arch,67.discover_phbs = mpc83xx_setup_pci,68.init_IRQ = mpc83xx_ipic_init_IRQ,69.get_irq = ipic_get_irq,70.restart = mpc83xx_restart,71.time_init = mpc83xx_time_init,72.progress = udbg_progress,73};747576