Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -3,11 +3,13 @@ Actions Semi Owl Smart Power System (SPS)
Required properties:
- compatible          :  "actions,s500-sps" for S500
                         "actions,s700-sps" for S700
                         "actions,s900-sps" for S900
- reg                 :  Offset and length of the register set for the device.
- #power-domain-cells :  Must be 1.
                         See macros in:
                          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-s900-powergate.h for S900


Example:
+1 −1
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@ config OWL_PM_DOMAINS
	select PM_GENERIC_DOMAINS
	help
	  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'.

endif
+2 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0+

obj-$(CONFIG_OWL_PM_DOMAINS_HELPER) += owl-sps-helper.o
obj-$(CONFIG_OWL_PM_DOMAINS) += owl-sps.o
+1 −5
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0+
/*
 * Actions Semi Owl Smart Power System (SPS) shared helpers
 *
@@ -5,11 +6,6 @@
 * Author: Actions Semi, Inc.
 *
 * 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>
+59 −5
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0+
/*
 * Actions Semi Owl Smart Power System (SPS)
 *
@@ -5,11 +6,6 @@
 * Author: Actions Semi, Inc.
 *
 * 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>
@@ -18,6 +14,7 @@
#include <linux/soc/actions/owl-sps.h>
#include <dt-bindings/power/owl-s500-powergate.h>
#include <dt-bindings/power/owl-s700-powergate.h>
#include <dt-bindings/power/owl-s900-powergate.h>

struct owl_sps_domain_info {
	const char *name;
@@ -244,9 +241,66 @@ static const struct owl_sps_info s700_sps_info = {
	.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[] = {
	{ .compatible = "actions,s500-sps", .data = &s500_sps_info },
	{ .compatible = "actions,s700-sps", .data = &s700_sps_info },
	{ .compatible = "actions,s900-sps", .data = &s900_sps_info },
	{ }
};

Loading