Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp472289ybz; Fri, 24 Apr 2020 03:46:35 -0700 (PDT) X-Google-Smtp-Source: APiQypJ/vrzwBablgV2vozCoueBZ4mNTc+wSmqMgE8N89Gqutc372s9CXwy8AgwAavVtgiAz6Grg X-Received: by 2002:a17:906:784c:: with SMTP id p12mr6738497ejm.346.1587725195568; Fri, 24 Apr 2020 03:46:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587725195; cv=none; d=google.com; s=arc-20160816; b=hNKhkRQic4GXrXbZ5+0EPea/qLfY5oI3+qv2PZ1coGktGfMGi6nBW7GmhVpJuPhy6z go6/vu0Emgy7vC/gWk+AaZ8qUCdRYZcGTAycveDJw+27SuZzhkLOfI2u98M8h6DJJwoE Y/1XD/44U9MzhjfmUxB5e7Q1zT8GegUJxUvFXgtT1Ba6tqAm9n/FynFuTB6zeOc6uXQG M4XlplVT+4M4sIX3CBJ9W8A6jMHYZUl6R27JLEIzgNr38JxQXNtmdhs7ogK2Upnq46Dl rzHDasqEPN1DniMqYjusZHFw66CVixFbF4Ki6iISTqRa/njXMPXDBSldwglWa2mfQSVt Ufeg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:ironport-sdr :ironport-sdr; bh=mIHd27cDpEX1Kf0EIZb4q9Qj4imU+PTWG2B9JLaYEDE=; b=nNY8O7Y/iWvVphpWOYOF2gvRJX7scntrw81VLA7GrAXc7/NvEoqJlbKRgbhRvmvbRn lr6ZXR0zFyV6drNsZQZ5/eYF1CR93GIi+gHp2RtnGD/STh2OB6TNbBNJESZNMds0C2rt FIT1Ano9EXnkPFHmcTmZulmlGLlwcpwK8hwJCEw6FQNQdCqzGbHMCfsyyJaUV7zyq0Ou Jro4b/qcH+o46eQH4KJcFPewZbhgLb6XH2ZYZDm0Ct9Wg6GVnqnRO2u0jW5GYlGcXckU t4euHRJAyY7tE10yIhqIt5I2bVoOgrlHjNcIUoSs/kb9kNxthz9kc+2PbUhkomKYE404 BUMA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g7si2886233edn.251.2020.04.24.03.46.12; Fri, 24 Apr 2020 03:46:35 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726961AbgDXKns (ORCPT + 99 others); Fri, 24 Apr 2020 06:43:48 -0400 Received: from mga12.intel.com ([192.55.52.136]:57626 "EHLO mga12.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726815AbgDXKnp (ORCPT ); Fri, 24 Apr 2020 06:43:45 -0400 IronPort-SDR: 2LF38Ww+7SFX2fAonbYCBKJpXoAs4TlQ1bh3oYhO6McgsDh3Hhx9rn947RzRx77FOoIJXjjaGZ SAHiPsUlZd8Q== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Apr 2020 03:43:44 -0700 IronPort-SDR: hYzhB4UPsAzvlETcc5tInjsnGgPykrj0j6Bw2g80I+2+qN3x7+/EoaaGcTPKvvzvI65w56KUKP L/Iv0muCKI/w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,311,1583222400"; d="scan'208";a="335307522" Received: from sgsxdev004.isng.intel.com (HELO localhost) ([10.226.88.13]) by orsmga001.jf.intel.com with ESMTP; 24 Apr 2020 03:43:41 -0700 From: Dilip Kota To: broonie@kernel.org, robh@kernel.org, linux-spi@vger.kernel.org, devicetree@vger.kernel.org Cc: linux-kernel@vger.kernel.org, daniel.schwierzeck@gmail.com, hauke@hauke-m.de, andriy.shevchenko@intel.com, cheol.yong.kim@intel.com, chuanhua.lei@linux.intel.com, qi-ming.wu@intel.com, Dilip Kota Subject: [PATCH 4/4] spi: lantiq: Add support to Lightning Mountain SoC Date: Fri, 24 Apr 2020 18:42:33 +0800 Message-Id: <5431aaf70b59ff668b347bc84782296a5f950439.1587702428.git.eswara.kota@linux.intel.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: References: In-Reply-To: References: Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add support to SPI controller on Intel Atom based Lightning Mountain SoC which reuses Lantiq SPI controller IP. Signed-off-by: Dilip Kota --- drivers/spi/Kconfig | 4 ++-- drivers/spi/spi-lantiq-ssc.c | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig index 4887be7f16de..089b0ba4afe3 100644 --- a/drivers/spi/Kconfig +++ b/drivers/spi/Kconfig @@ -495,11 +495,11 @@ config SPI_NPCM_PSPI config SPI_LANTIQ_SSC tristate "Lantiq SSC SPI controller" - depends on LANTIQ || COMPILE_TEST + depends on (LANTIQ || X86) || COMPILE_TEST help This driver supports the Lantiq SSC SPI controller in master mode. This controller is found on Intel (former Lantiq) SoCs like - the Danube, Falcon, xRX200, xRX300. + the Danube, Falcon, xRX200, xRX300, Lightning Mountain. config SPI_OC_TINY tristate "OpenCores tiny SPI" diff --git a/drivers/spi/spi-lantiq-ssc.c b/drivers/spi/spi-lantiq-ssc.c index 74a5d36c5048..f07fa6fbadbe 100644 --- a/drivers/spi/spi-lantiq-ssc.c +++ b/drivers/spi/spi-lantiq-ssc.c @@ -789,6 +789,18 @@ static int lantiq_ssc_transfer_one(struct spi_master *master, return transfer_start(spi, spidev, t); } +static int intel_cfg_irq(struct platform_device *pdev, struct lantiq_ssc_spi *spi) +{ + int irq; + + irq = platform_get_irq(pdev, 0); + if (irq < 0) + return irq; + + return devm_request_threaded_irq(&pdev->dev, irq, NULL, lantiq_ssc_isr, + IRQF_ONESHOT, "spi", spi); +} + static int lantiq_cfg_irq(struct platform_device *pdev, struct lantiq_ssc_spi *spi) { int irq, err; @@ -837,10 +849,18 @@ static const struct lantiq_ssc_hwcfg lantiq_ssc_xrx = { .irq_ack = false, }; +static const struct lantiq_ssc_hwcfg intel_ssc_lgm = { + .irnen_r = LTQ_SPI_IRNEN_R_XRX, + .irnen_t = LTQ_SPI_IRNEN_T_XRX, + .fifo_size_mask = GENMASK(7, 0), + .cfg_irq = intel_cfg_irq, +}; + static const struct of_device_id lantiq_ssc_match[] = { { .compatible = "lantiq,ase-spi", .data = &lantiq_ssc_xway, }, { .compatible = "lantiq,falcon-spi", .data = &lantiq_ssc_xrx, }, { .compatible = "lantiq,xrx100-spi", .data = &lantiq_ssc_xrx, }, + { .compatible = "intel,lgm-spi", .data = &intel_ssc_lgm, }, {}, }; MODULE_DEVICE_TABLE(of, lantiq_ssc_match); -- 2.11.0