From patchwork Tue Sep 12 20:37:20 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergei Shtylyov X-Patchwork-Id: 9950131 X-Patchwork-Delegate: horms@verge.net.au Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 1423A603F3 for ; Tue, 12 Sep 2017 21:06:15 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 04FAF28F50 for ; Tue, 12 Sep 2017 21:06:15 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id EDABC290C6; Tue, 12 Sep 2017 21:06:14 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.4 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, RCVD_IN_DNSWL_HI, RCVD_IN_SORBS_SPAM autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3ADC7290CD for ; Tue, 12 Sep 2017 21:06:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751431AbdILVFZ (ORCPT ); Tue, 12 Sep 2017 17:05:25 -0400 Received: from mail-lf0-f52.google.com ([209.85.215.52]:32811 "EHLO mail-lf0-f52.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751412AbdILVFY (ORCPT ); Tue, 12 Sep 2017 17:05:24 -0400 Received: by mail-lf0-f52.google.com with SMTP id c80so29571245lfh.0 for ; Tue, 12 Sep 2017 14:05:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cogentembedded-com.20150623.gappssmtp.com; s=20150623; h=from:message-id:user-agent:date:to:cc:to:to:cc:subject:mime-version :content-disposition; bh=oxg2e5qklclyWW8IbAJZb7N6kzePEBC3e8lQ/JzNSQ4=; b=KN2VI1R5yyhMhwHYGAHxOK7OzR6YwB2Q52G9ccbh/AJq/y574FoseyFXKSSSb6hGH9 JHKptGTvc2djzLMOzv4bGogz6t3Ox4FkTO9HJXLacTEoOIoCvBRI81fS5AGHiW4lIJf1 VtsdjA4ZA/X+ERGZDsCIW+tLco8kxr+BkreB5Dy3S4mKpNXoy1fsLewwiIVpmBUU2687 CbOkAIQPXjw/kevTpalVjphwbPUlj6GAhWQp2ezUbvk4+etzMMuEGkLYt87CfJ3nVxUm nzzRshJ2wu90nA2hRukZa/wQOIkL8tb9P2GINsHy87fFFiE2LOYQLe2SAkitmaNbtngC IEgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:user-agent:date:to:cc:to:to:cc :subject:mime-version:content-disposition; bh=oxg2e5qklclyWW8IbAJZb7N6kzePEBC3e8lQ/JzNSQ4=; b=STyXliI7enUyx6GJAQXf8Bnu1I/YpBL1XCAJ3/02eetVCR/FFCDbTuYZMDbDyFYF1P 9eI8nOYHwa6dWkNMlz4p9o8BZkZ3sr7mh7QavIiFykSsaZLiqBK7illWO2Ue+CrDzBqu kYH1K3H7KPMG23u0tD1Ca74mk0zxgLWYIROHVDtYt/t9iRL8x8bbtPjHh0SVY/iwwEDE w1innsRmwxOZhRs9XsI0XBBP+Vjn6bdx7fzckNKtjgtAoA91+c3eihhpjIBYKhTFvv6x L9cWZqlRRKIJKyAzLV+CDRDGJ7gCCTM52VkcJZrgJJxxtUhWqjbLMis9VxWG6QcjilDJ LC3Q== X-Gm-Message-State: AHPjjUg5hAf+HE4zcId/Mrul38LqYR9OmVU1IIg8TLhOoT0Yg4LiAl31 aACanZyyLhKj70si X-Google-Smtp-Source: ADKCNb7wwlW10r52EjHWoLQrta2WetAmcihk2UKHtbctFwmSyGsjBL/qFj4+zGkcusHj4+heBoUYAQ== X-Received: by 10.46.16.71 with SMTP id j68mr3273231lje.110.1505250323315; Tue, 12 Sep 2017 14:05:23 -0700 (PDT) Received: from wasted.cogentembedded.com ([31.173.85.236]) by smtp.gmail.com with ESMTPSA id c23sm773673lfg.81.2017.09.12.14.05.18 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 12 Sep 2017 14:05:20 -0700 (PDT) From: Sergei Shtylyov X-Google-Original-From: "Sergei Shtylyov" Received: by wasted.cogentembedded.com (sSMTP sendmail emulation); Wed, 13 Sep 2017 00:05:18 +0300 Message-Id: <20170912210518.203740259@cogentembedded.com> User-Agent: quilt/0.64 Date: Tue, 12 Sep 2017 23:37:20 +0300 To: Rob Herring , Mark Rutland , Simon Horman , devicetree@vger.kernel.org, linux-renesas-soc@vger.kernel.org Cc: Magnus Damm , Vladimir Barinov , Sergei Shtylyov To: Catalin Marinas To: Will Deacon Cc: linux-arm-kernel@lists.infradead.org Subject: [PATCH 04/11] soc: renesas: rcar-sysc: add R8A77970 support MIME-Version: 1.0 Content-Disposition: inline; filename=soc-renesas-rcar-sysc-add-R8A77970-support.patch Sender: linux-renesas-soc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-renesas-soc@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Add support for R-Car V3M (R8A77970) SoC power areas to the R-Car SYSC driver. Based on the original (and large) patch by Daisuke Matsushita . Signed-off-by: Vladimir Barinov Signed-off-by: Sergei Shtylyov Reviewed-by: Geert Uytterhoeven --- Documentation/devicetree/bindings/power/renesas,rcar-sysc.txt | 1 drivers/soc/renesas/Kconfig | 5 + drivers/soc/renesas/Makefile | 1 drivers/soc/renesas/r8a77970-sysc.c | 39 ++++++++++ drivers/soc/renesas/rcar-sysc.c | 3 drivers/soc/renesas/rcar-sysc.h | 1 6 files changed, 50 insertions(+) Index: renesas/Documentation/devicetree/bindings/power/renesas,rcar-sysc.txt =================================================================== --- renesas.orig/Documentation/devicetree/bindings/power/renesas,rcar-sysc.txt +++ renesas/Documentation/devicetree/bindings/power/renesas,rcar-sysc.txt @@ -17,6 +17,7 @@ Required properties: - "renesas,r8a7794-sysc" (R-Car E2) - "renesas,r8a7795-sysc" (R-Car H3) - "renesas,r8a7796-sysc" (R-Car M3-W) + - "renesas,r8a77970-sysc" (R-Car V3M) - "renesas,r8a77995-sysc" (R-Car D3) - reg: Address start and address range for the device. - #power-domain-cells: Must be 1. Index: renesas/drivers/soc/renesas/Kconfig =================================================================== --- renesas.orig/drivers/soc/renesas/Kconfig +++ renesas/drivers/soc/renesas/Kconfig @@ -14,6 +14,7 @@ config SOC_RENESAS select SYSC_R8A7794 if ARCH_R8A7794 select SYSC_R8A7795 if ARCH_R8A7795 select SYSC_R8A7796 if ARCH_R8A7796 + select SYSC_R8A77970 if ARCH_R8A77970 select SYSC_R8A77995 if ARCH_R8A77995 if SOC_RENESAS @@ -55,6 +56,10 @@ config SYSC_R8A7796 bool "R-Car M3-W System Controller support" if COMPILE_TEST select SYSC_RCAR +config SYSC_R8A77970 + bool "R-Car V3M System Controller support" if COMPILE_TEST + select SYSC_RCAR + config SYSC_R8A77995 bool "R-Car D3 System Controller support" if COMPILE_TEST select SYSC_RCAR Index: renesas/drivers/soc/renesas/Makefile =================================================================== --- renesas.orig/drivers/soc/renesas/Makefile +++ renesas/drivers/soc/renesas/Makefile @@ -11,6 +11,7 @@ obj-$(CONFIG_SYSC_R8A7792) += r8a7792-sy obj-$(CONFIG_SYSC_R8A7794) += r8a7794-sysc.o obj-$(CONFIG_SYSC_R8A7795) += r8a7795-sysc.o obj-$(CONFIG_SYSC_R8A7796) += r8a7796-sysc.o +obj-$(CONFIG_SYSC_R8A77970) += r8a77970-sysc.o obj-$(CONFIG_SYSC_R8A77995) += r8a77995-sysc.o # Family Index: renesas/drivers/soc/renesas/r8a77970-sysc.c =================================================================== --- /dev/null +++ renesas/drivers/soc/renesas/r8a77970-sysc.c @@ -0,0 +1,39 @@ +/* + * Renesas R-Car V3M System Controller + * + * Copyright (C) 2017 Cogent Embedded Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include +#include + +#include + +#include "rcar-sysc.h" + +static const struct rcar_sysc_area r8a77970_areas[] __initconst = { + { "always-on", 0, 0, R8A77970_PD_ALWAYS_ON, -1, PD_ALWAYS_ON }, + { "ca53-scu", 0x140, 0, R8A77970_PD_CA53_SCU, R8A77970_PD_ALWAYS_ON, + PD_SCU }, + { "ca53-cpu0", 0x200, 0, R8A77970_PD_CA53_CPU0, R8A77970_PD_CA53_SCU, + PD_CPU_NOCR }, + { "ca53-cpu1", 0x200, 1, R8A77970_PD_CA53_CPU1, R8A77970_PD_CA53_SCU, + PD_CPU_NOCR }, + { "cr7", 0x240, 0, R8A77970_PD_CR7, R8A77970_PD_ALWAYS_ON }, + { "a3ir", 0x180, 0, R8A77970_PD_A3IR, R8A77970_PD_ALWAYS_ON }, + { "a2ir0", 0x400, 0, R8A77970_PD_A2IR0, R8A77970_PD_ALWAYS_ON }, + { "a2ir1", 0x400, 1, R8A77970_PD_A2IR1, R8A77970_PD_A2IR0 }, + { "a2ir2", 0x400, 2, R8A77970_PD_A2IR2, R8A77970_PD_A2IR0 }, + { "a2ir3", 0x400, 3, R8A77970_PD_A2IR3, R8A77970_PD_A2IR0 }, + { "a2sc0", 0x400, 4, R8A77970_PD_A2SC0, R8A77970_PD_ALWAYS_ON }, + { "a2sc1", 0x400, 5, R8A77970_PD_A2SC1, R8A77970_PD_A2SC0 }, +}; + +const struct rcar_sysc_info r8a77970_sysc_info __initconst = { + .areas = r8a77970_areas, + .num_areas = ARRAY_SIZE(r8a77970_areas), +}; Index: renesas/drivers/soc/renesas/rcar-sysc.c =================================================================== --- renesas.orig/drivers/soc/renesas/rcar-sysc.c +++ renesas/drivers/soc/renesas/rcar-sysc.c @@ -284,6 +284,9 @@ static const struct of_device_id rcar_sy #ifdef CONFIG_SYSC_R8A7796 { .compatible = "renesas,r8a7796-sysc", .data = &r8a7796_sysc_info }, #endif +#ifdef CONFIG_SYSC_R8A77970 + { .compatible = "renesas,r8a77970-sysc", .data = &r8a77970_sysc_info }, +#endif #ifdef CONFIG_SYSC_R8A77995 { .compatible = "renesas,r8a77995-sysc", .data = &r8a77995_sysc_info }, #endif Index: renesas/drivers/soc/renesas/rcar-sysc.h =================================================================== --- renesas.orig/drivers/soc/renesas/rcar-sysc.h +++ renesas/drivers/soc/renesas/rcar-sysc.h @@ -58,6 +58,7 @@ extern const struct rcar_sysc_info r8a77 extern const struct rcar_sysc_info r8a7794_sysc_info; extern const struct rcar_sysc_info r8a7795_sysc_info; extern const struct rcar_sysc_info r8a7796_sysc_info; +extern const struct rcar_sysc_info r8a77970_sysc_info; extern const struct rcar_sysc_info r8a77995_sysc_info;