162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * arch/arm/mach-mv78x00/mpp.c 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * MPP functions for Marvell MV78x00 SoCs 662306a36Sopenharmony_ci */ 762306a36Sopenharmony_ci#include <linux/gpio.h> 862306a36Sopenharmony_ci#include <linux/kernel.h> 962306a36Sopenharmony_ci#include <linux/init.h> 1062306a36Sopenharmony_ci#include <linux/io.h> 1162306a36Sopenharmony_ci#include <plat/mpp.h> 1262306a36Sopenharmony_ci#include "mv78xx0.h" 1362306a36Sopenharmony_ci#include "common.h" 1462306a36Sopenharmony_ci#include "mpp.h" 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_cistatic unsigned int __init mv78xx0_variant(void) 1762306a36Sopenharmony_ci{ 1862306a36Sopenharmony_ci u32 dev, rev; 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci mv78xx0_pcie_id(&dev, &rev); 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci if (dev == MV78100_DEV_ID && rev >= MV78100_REV_A0) 2362306a36Sopenharmony_ci return MPP_78100_A0_MASK; 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci printk(KERN_ERR "MPP setup: unknown mv78x00 variant " 2662306a36Sopenharmony_ci "(dev %#x rev %#x)\n", dev, rev); 2762306a36Sopenharmony_ci return 0; 2862306a36Sopenharmony_ci} 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_civoid __init mv78xx0_mpp_conf(unsigned int *mpp_list) 3162306a36Sopenharmony_ci{ 3262306a36Sopenharmony_ci orion_mpp_conf(mpp_list, mv78xx0_variant(), 3362306a36Sopenharmony_ci MPP_MAX, DEV_BUS_VIRT_BASE); 3462306a36Sopenharmony_ci} 35