Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp4025331imm; Mon, 18 Jun 2018 08:00:50 -0700 (PDT) X-Google-Smtp-Source: ADUXVKJSCNpGoK67RHC7svGrb3ajGgcOvuexWPSclDio+kbKVnof/uZrzTKM18GAkB+CKKdYq1M8 X-Received: by 2002:a63:6485:: with SMTP id y127-v6mr11269834pgb.126.1529334050482; Mon, 18 Jun 2018 08:00:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1529334050; cv=none; d=google.com; s=arc-20160816; b=excWqinPG24o8MpGT0qnhTM0tatQT+tyXnuddNkobDLcI0fdtUfp4Ra0iT8y7hzxk4 GIUBxyO+R3gy7Q+VbjYHvZS7uQ53syah8zTizbw9w5j2AeiX8ihICQycDhO++9poqF9G vf7HHjplhrreC3CuNDu79S0i77ZepCdwD8epEPcz6A6k3AXJZOqQHHJtkKUzGLKPhg5k NsUrTG2vtVWvzbjlIdKcU+rwL3qgp1yN8fVN7GuxpgrT1hKr4CdOjfVe5k/LzWU6yW3D g1dZrkvM9GblzPQ3k3no034DYfKlkV999PrTCJNAxA0NqoPCXdyOTSw6UsFnTywPIOTn wTcg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=q46tBih5NbF4T2inqY7Yj3y7G+QmUdpngR2FA8XTOTY=; b=L11fojwuir9tT8rbfEOJGrvUnmT5i1ln9g9Sab7sdWEXXdItsR9AplHl9+tPhrOlJd b3AD/7C2LcInu9QxTN/CR7oHoyF7qcxkmyXyT7vqSN1I0KNCvLyu7wnpVTp4zJ7YnHmq p7XJp/BlIj/gg8N4arGwsLQrzwz0DDOOEH1G5HGhreZwE2cWNaPvMdVNg4c6Bozx3xXo eVxTDYRWSTKBf+SpzWFEg2xhH5QW72O232+ki+RQvUose7axaFqW77AyaG/2AFePBQtz flLTOfsKxXxdTNJcYHWhA6Gs0gR+s12HG6V7C10oIuVq6AUdAcDYaODo2AutNfUGJ/fw pfnw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@synopsys.com header.s=mail header.b=gLLlg8Kw; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=synopsys.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y36-v6si8462803pga.89.2018.06.18.08.00.36; Mon, 18 Jun 2018 08:00:50 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@synopsys.com header.s=mail header.b=gLLlg8Kw; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=synopsys.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935282AbeFRO7t (ORCPT + 99 others); Mon, 18 Jun 2018 10:59:49 -0400 Received: from smtprelay.synopsys.com ([198.182.37.59]:42203 "EHLO smtprelay.synopsys.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934986AbeFRO7s (ORCPT ); Mon, 18 Jun 2018 10:59:48 -0400 Received: from mailhost.synopsys.com (mailhost1.synopsys.com [10.12.238.239]) by smtprelay.synopsys.com (Postfix) with ESMTP id D49C01E04A8 for ; Mon, 18 Jun 2018 16:59:46 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=synopsys.com; s=mail; t=1529333987; bh=fbVBoDs/j4FtmR8QqLiw8LAlJGvUmPH0z8jQJo8z7rk=; h=From:To:Cc:Subject:Date:From; b=gLLlg8KwH0nbydHBOJ07/pEk1SbM0xoO5sgKO3xM0ER479qOzBMNVoSHIF0XrivyY Ob7RE884l0mGW2NXvqJ4p39sasxUTgU5uULvFzGgT/aveKY93vGphh3UTNR3iF5YOp uEGoktdiK+SVC6ao3cbJxvxyQUeYoltECbX0+PhbDzx5KGzZdxVf0VwQLYWLbAUnJB HMVf8/PisxBtHjP/0pcs2O7sdGaBDeqy2YQeX64GkE4urdF1CunTxaDuNzq03QPTJq QJQBh3QvClpNpo8PLBFZ57xgZr6Kv519DlUNucp5PEs6h5GdYHKEBYVg9dNH8ZNEYC iP7prPtfoxnyA== Received: from pt02.synopsys.com (pt02.synopsys.com [10.107.23.240]) by mailhost.synopsys.com (Postfix) with ESMTP id CD779507C; Mon, 18 Jun 2018 07:59:45 -0700 (PDT) Received: from UbuntuMate-64Bits.internal.synopsys.com (gustavo-e7480.internal.synopsys.com [10.107.25.102]) by pt02.synopsys.com (Postfix) with ESMTP id 2BE273D720; Mon, 18 Jun 2018 15:59:45 +0100 (WEST) From: Gustavo Pimentel To: Vineet.Gupta1@synopsys.com, Eugeniy.Paltsev@synopsys.com, Alexey.Brodkin@synopsys.com, robh@kernel.org, sboyd@codeaurora.org Cc: linux-snps-arc@lists.infradead.org, linux-kernel@vger.kernel.org, Gustavo Pimentel Subject: [PATCH] ARC: Add PCIe support for ARC HSDK platform Date: Mon, 18 Jun 2018 15:59:34 +0100 Message-Id: <3e9a2f384fd831fb2639ad99ec43ce0f019ac17c.1529333762.git.gustavo.pimentel@synopsys.com> X-Mailer: git-send-email 2.7.4 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add PCI support to the ARC HSDK platform allowing to use the generic PCI setup functions. Add GPIO interrupt configuration function on ARC HSDK platform and configures it to PCI support. Signed-off-by: Gustavo Pimentel --- arch/arc/plat-hsdk/Kconfig | 1 + arch/arc/plat-hsdk/platform.c | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/arch/arc/plat-hsdk/Kconfig b/arch/arc/plat-hsdk/Kconfig index 19ab3cf..556bc5e 100644 --- a/arch/arc/plat-hsdk/Kconfig +++ b/arch/arc/plat-hsdk/Kconfig @@ -9,3 +9,4 @@ menuconfig ARC_SOC_HSDK bool "ARC HS Development Kit SOC" select CLK_HSDK select RESET_HSDK + select MIGHT_HAVE_PCI diff --git a/arch/arc/plat-hsdk/platform.c b/arch/arc/plat-hsdk/platform.c index 2958aed..31adda7 100644 --- a/arch/arc/plat-hsdk/platform.c +++ b/arch/arc/plat-hsdk/platform.c @@ -42,6 +42,45 @@ static void __init hsdk_init_per_cpu(unsigned int cpu) #define SDIO_UHS_REG_EXT (SDIO_BASE + 0x108) #define SDIO_UHS_REG_EXT_DIV_2 (2 << 30) +#define HSDK_GPIO_INTC (ARC_PERIPHERAL_BASE + 0x3000) +#define GPIO_INTEN (HSDK_GPIO_INTC + 0x30) +#define GPIO_INTMASK (HSDK_GPIO_INTC + 0x34) +#define GPIO_INTTYPE_LEVEL (HSDK_GPIO_INTC + 0x38) +#define GPIO_INT_POLARITY (HSDK_GPIO_INTC + 0x3c) + +#define GPIO_BLUETOOTH_INT 0x00000001 +#define GPIO_HAPS_INT 0x00000004 +#define GPIO_AUDIO_INT 0x00000008 +/* PMOD_A header */ +#define GPIO_PIN_08_INT 0x00000100 +#define GPIO_PIN_09_INT 0x00000200 +#define GPIO_PIN_10_INT 0x00000400 +#define GPIO_PIN_11_INT 0x00000800 +/* PMOD_B header */ +#define GPIO_PIN_12_INT 0x00001000 +#define GPIO_PIN_13_INT 0x00002000 +#define GPIO_PIN_14_INT 0x00004000 +#define GPIO_PIN_15_INT 0x00008000 +/* PMOD_C header */ +#define GPIO_PIN_16_INT 0x00010000 +#define GPIO_PIN_17_INT 0x00020000 +#define GPIO_PIN_18_INT 0x00040000 +#define GPIO_PIN_19_INT 0x00080000 +#define GPIO_PIN_20_INT 0x00100000 +#define GPIO_PIN_21_INT 0x00200000 +#define GPIO_PIN_22_INT 0x00400000 +#define GPIO_PIN_23_INT 0x00800000 +static void __init hsdk_enable_gpio_intc_wire(void) +{ + u32 val = GPIO_HAPS_INT; + + iowrite32(0xffffffff, (void __iomem *) GPIO_INTMASK); + iowrite32(~val, (void __iomem *) GPIO_INTMASK); + iowrite32(0x00000000, (void __iomem *) GPIO_INTTYPE_LEVEL); + iowrite32(0xffffffff, (void __iomem *) GPIO_INT_POLARITY); + iowrite32(val, (void __iomem *) GPIO_INTEN); +} + static void __init hsdk_init_early(void) { /* @@ -62,6 +101,8 @@ static void __init hsdk_init_early(void) * minimum possible div-by-2. */ iowrite32(SDIO_UHS_REG_EXT_DIV_2, (void __iomem *) SDIO_UHS_REG_EXT); + + sdk_enable_gpio_intc_wire(); } static const char *hsdk_compat[] __initconst = { -- 2.7.4