Commit 68b679b3 authored by Arnd Bergmann's avatar Arnd Bergmann

Merge tag 'actions-drivers+s900-sps-for-4.20' of...

Merge tag 'actions-drivers+s900-sps-for-4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/afaerber/linux-actions into next/drivers

Actions Semi SoC drivers for v4.20 #2

The SPS power domain driver is extended for S900 SoC.
This required merging a topic branch for the new bindings header.

* tag 'actions-drivers+s900-sps-for-4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/afaerber/linux-actions:
  soc: actions: sps: Add S900 power domains
  dt-bindings: power: Add Actions Semi S900 SPS
  soc: actions: Update SPS help text for S700
  soc: actions: Convert to SPDX license identifiers
Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents d69f0d53 da8c37e1
...@@ -3,11 +3,13 @@ Actions Semi Owl Smart Power System (SPS) ...@@ -3,11 +3,13 @@ Actions Semi Owl Smart Power System (SPS)
Required properties: Required properties:
- compatible : "actions,s500-sps" for S500 - compatible : "actions,s500-sps" for S500
"actions,s700-sps" for S700 "actions,s700-sps" for S700
"actions,s900-sps" for S900
- reg : Offset and length of the register set for the device. - reg : Offset and length of the register set for the device.
- #power-domain-cells : Must be 1. - #power-domain-cells : Must be 1.
See macros in: See macros in:
include/dt-bindings/power/owl-s500-powergate.h for S500 include/dt-bindings/power/owl-s500-powergate.h for S500
include/dt-bindings/power/owl-s700-powergate.h for S700 include/dt-bindings/power/owl-s700-powergate.h for S700
include/dt-bindings/power/owl-s900-powergate.h for S900
Example: Example:
......
...@@ -10,7 +10,7 @@ config OWL_PM_DOMAINS ...@@ -10,7 +10,7 @@ config OWL_PM_DOMAINS
select PM_GENERIC_DOMAINS select PM_GENERIC_DOMAINS
help help
Say 'y' here to enable support for Smart Power System (SPS) Say 'y' here to enable support for Smart Power System (SPS)
power-gating on Actions Semiconductor S500 SoC. power-gating on Actions Semiconductor S500, S700 and S900 SoCs.
If unsure, say 'n'. If unsure, say 'n'.
endif endif
# SPDX-License-Identifier: GPL-2.0+
obj-$(CONFIG_OWL_PM_DOMAINS_HELPER) += owl-sps-helper.o obj-$(CONFIG_OWL_PM_DOMAINS_HELPER) += owl-sps-helper.o
obj-$(CONFIG_OWL_PM_DOMAINS) += owl-sps.o obj-$(CONFIG_OWL_PM_DOMAINS) += owl-sps.o
// SPDX-License-Identifier: GPL-2.0+
/* /*
* Actions Semi Owl Smart Power System (SPS) shared helpers * Actions Semi Owl Smart Power System (SPS) shared helpers
* *
...@@ -5,11 +6,6 @@ ...@@ -5,11 +6,6 @@
* Author: Actions Semi, Inc. * Author: Actions Semi, Inc.
* *
* Copyright (c) 2017 Andreas Färber * Copyright (c) 2017 Andreas Färber
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*/ */
#include <linux/delay.h> #include <linux/delay.h>
......
// SPDX-License-Identifier: GPL-2.0+
/* /*
* Actions Semi Owl Smart Power System (SPS) * Actions Semi Owl Smart Power System (SPS)
* *
...@@ -5,11 +6,6 @@ ...@@ -5,11 +6,6 @@
* Author: Actions Semi, Inc. * Author: Actions Semi, Inc.
* *
* Copyright (c) 2017 Andreas Färber * Copyright (c) 2017 Andreas Färber
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*/ */
#include <linux/of_address.h> #include <linux/of_address.h>
...@@ -18,6 +14,7 @@ ...@@ -18,6 +14,7 @@
#include <linux/soc/actions/owl-sps.h> #include <linux/soc/actions/owl-sps.h>
#include <dt-bindings/power/owl-s500-powergate.h> #include <dt-bindings/power/owl-s500-powergate.h>
#include <dt-bindings/power/owl-s700-powergate.h> #include <dt-bindings/power/owl-s700-powergate.h>
#include <dt-bindings/power/owl-s900-powergate.h>
struct owl_sps_domain_info { struct owl_sps_domain_info {
const char *name; const char *name;
...@@ -244,9 +241,66 @@ static const struct owl_sps_info s700_sps_info = { ...@@ -244,9 +241,66 @@ static const struct owl_sps_info s700_sps_info = {
.domains = s700_sps_domains, .domains = s700_sps_domains,
}; };
static const struct owl_sps_domain_info s900_sps_domains[] = {
[S900_PD_GPU_B] = {
.name = "GPU_B",
.pwr_bit = 3,
},
[S900_PD_VCE] = {
.name = "VCE",
.pwr_bit = 4,
},
[S900_PD_SENSOR] = {
.name = "SENSOR",
.pwr_bit = 5,
},
[S900_PD_VDE] = {
.name = "VDE",
.pwr_bit = 6,
},
[S900_PD_HDE] = {
.name = "HDE",
.pwr_bit = 7,
},
[S900_PD_USB3] = {
.name = "USB3",
.pwr_bit = 8,
},
[S900_PD_DDR0] = {
.name = "DDR0",
.pwr_bit = 9,
},
[S900_PD_DDR1] = {
.name = "DDR1",
.pwr_bit = 10,
},
[S900_PD_DE] = {
.name = "DE",
.pwr_bit = 13,
},
[S900_PD_NAND] = {
.name = "NAND",
.pwr_bit = 14,
},
[S900_PD_USB2_H0] = {
.name = "USB2_H0",
.pwr_bit = 15,
},
[S900_PD_USB2_H1] = {
.name = "USB2_H1",
.pwr_bit = 16,
},
};
static const struct owl_sps_info s900_sps_info = {
.num_domains = ARRAY_SIZE(s900_sps_domains),
.domains = s900_sps_domains,
};
static const struct of_device_id owl_sps_of_matches[] = { static const struct of_device_id owl_sps_of_matches[] = {
{ .compatible = "actions,s500-sps", .data = &s500_sps_info }, { .compatible = "actions,s500-sps", .data = &s500_sps_info },
{ .compatible = "actions,s700-sps", .data = &s700_sps_info }, { .compatible = "actions,s700-sps", .data = &s700_sps_info },
{ .compatible = "actions,s900-sps", .data = &s900_sps_info },
{ } { }
}; };
......
/* SPDX-License-Identifier: (GPL-2.0-or-later OR MIT) */
/*
* Actions Semi S900 SPS
*
* Copyright (c) 2018 Linaro Ltd.
*/
#ifndef DT_BINDINGS_POWER_OWL_S900_POWERGATE_H
#define DT_BINDINGS_POWER_OWL_S900_POWERGATE_H
#define S900_PD_GPU_B 0
#define S900_PD_VCE 1
#define S900_PD_SENSOR 2
#define S900_PD_VDE 3
#define S900_PD_HDE 4
#define S900_PD_USB3 5
#define S900_PD_DDR0 6
#define S900_PD_DDR1 7
#define S900_PD_DE 8
#define S900_PD_NAND 9
#define S900_PD_USB2_H0 10
#define S900_PD_USB2_H1 11
#endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment