Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion drivers/soc/adi/Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)

obj-$(CONFIG_ADI_MACH_SC59X) += mach-sc59x/
obj-$(CONFIG_ADI_MACH_SC5XX) += mach-sc5xx/
5 changes: 0 additions & 5 deletions drivers/soc/adi/mach-sc59x/Makefile

This file was deleted.

37 changes: 0 additions & 37 deletions drivers/soc/adi/mach-sc59x/core.c

This file was deleted.

26 changes: 0 additions & 26 deletions drivers/soc/adi/mach-sc59x/core.h

This file was deleted.

41 changes: 20 additions & 21 deletions drivers/soc/adi/mach-sc5xx/icc.c
Original file line number Diff line number Diff line change
Expand Up @@ -83,22 +83,6 @@ void put_adi_tru(struct adi_tru *tru)
}
EXPORT_SYMBOL(put_adi_tru);

int adi_tru_trigger_device(struct adi_tru *tru, struct device *dev)
{
struct device_node *np = dev->of_node;
u32 master = 0;

if (of_property_read_u32(np, "adi,tru-master-id", &master)) {
dev_err(tru->dev,
"dts entry %s is missing a adi,tru-master-id",
np->full_name);
return -ENOENT;
}

return adi_tru_trigger(tru, master);
}
EXPORT_SYMBOL(adi_tru_trigger_device);

static int adi_tru_smc_trigger(struct adi_tru *tru, u32 master)
{
struct arm_smccc_res res;
Expand All @@ -107,7 +91,7 @@ static int adi_tru_smc_trigger(struct adi_tru *tru, u32 master)
return (res.a0 == 0) ? 0 : -EINVAL;
}

int adi_tru_trigger(struct adi_tru *tru, u32 master)
static int adi_tru_trigger(struct adi_tru *tru, u32 master)
{
if (master == 0 || master > tru->max_master_id) {
dev_err(tru->dev, "Invalid master ID to trigger %d\n",
Expand All @@ -121,7 +105,22 @@ int adi_tru_trigger(struct adi_tru *tru, u32 master)
writel(master, tru->ioaddr + ADI_TRU_REG_MTR);
return 0;
}
EXPORT_SYMBOL(adi_tru_trigger);

int adi_tru_trigger_device(struct adi_tru *tru, struct device *dev)
{
struct device_node *np = dev->of_node;
u32 master = 0;

if (of_property_read_u32(np, "adi,tru-master-id", &master)) {
dev_err(tru->dev,
"dts entry %s is missing a adi,tru-master-id",
np->full_name);
return -ENOENT;
}

return adi_tru_trigger(tru, master);
}
EXPORT_SYMBOL(adi_tru_trigger_device);

/**
* Configure the given slave (i.e. TRU_SSR[n]) to be triggered by the given
Expand All @@ -130,7 +129,7 @@ EXPORT_SYMBOL(adi_tru_trigger);
* count to SSR[187]) should be used as-is. There's effectively an ID 0 master
* that is unused and undocumented.
*/
int adi_tru_set_trigger_by_id(struct adi_tru *tru, u32 master, u32 slave)
static int adi_tru_set_trigger_by_id(struct adi_tru *tru, u32 master, u32 slave)
{
if (slave > tru->max_slave_id) {
dev_err(tru->dev, "Invalid slave ID %d passed to %s",
Expand Down Expand Up @@ -171,8 +170,8 @@ int adi_tru_set_trigger_by_id(struct adi_tru *tru, u32 master, u32 slave)
* };
* then parse the phandles and pass the node here, then put the node back.
*/
int adi_tru_set_trigger(struct adi_tru *tru, struct device_node *master,
struct device_node *slave)
static int adi_tru_set_trigger(struct adi_tru *tru, struct device_node *master,
struct device_node *slave)
{
u32 mid = 0;
u32 sid = 0;
Expand Down
18 changes: 5 additions & 13 deletions drivers/soc/adi/mach-sc5xx/rcu.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
// SPDX-License-Identifier: GPL-2.0-or-later
/*
* Driver for Analog Devices Reset Control Unit
Expand Down Expand Up @@ -126,17 +126,15 @@
}

// API for other drivers to interact with RCU
int adi_rcu_check_coreid_valid(struct adi_rcu *rcu, int coreid)
static int adi_rcu_check_coreid_valid(struct adi_rcu *rcu, int coreid)
{
if (coreid < rcu->sharc_min_coreid
|| coreid > rcu->sharc_max_coreid)
return -EINVAL;
return 0;
}

EXPORT_SYMBOL(adi_rcu_check_coreid_valid);

int adi_rcu_reset_core(struct adi_rcu *rcu, int coreid)
static int adi_rcu_reset_core(struct adi_rcu *rcu, int coreid)
{
u32 val;
int ret;
Expand Down Expand Up @@ -181,9 +179,7 @@
return 0;
}

EXPORT_SYMBOL(adi_rcu_reset_core);

int adi_rcu_start_core(struct adi_rcu *rcu, int coreid)
static int adi_rcu_start_core(struct adi_rcu *rcu, int coreid)
{
int ret;

Expand All @@ -200,8 +196,6 @@
return 0;
}

EXPORT_SYMBOL(adi_rcu_start_core);

int adi_rcu_is_core_idle(struct adi_rcu *rcu, int coreid)
{
int ret = adi_rcu_check_coreid_valid(rcu, coreid);
Expand All @@ -214,7 +208,7 @@

EXPORT_SYMBOL(adi_rcu_is_core_idle);

int adi_rcu_stop_core(struct adi_rcu *rcu, int coreid, int coreirq)
static int adi_rcu_stop_core(struct adi_rcu *rcu, int coreid, int coreirq)
{
unsigned long timeout = jiffies + ADI_RCU_CORE_INIT_TIMEOUT;
bool is_timeout = true;
Expand All @@ -240,7 +234,7 @@
sec_raise_irq(rcu->sec, coreirq);
}
// Wait until the specific core enter into IDLE bit(8:10)
// DSP should set the IDLE bit to 1 manully in ISR
// DSP should set the IDLE bit to 1 manually in ISR
do {
if (adi_rcu_is_core_idle(rcu, coreid)) {
is_timeout = false;
Expand All @@ -261,8 +255,6 @@
return 0;
}

EXPORT_SYMBOL(adi_rcu_stop_core);

/*
* Reset controller ops
*
Expand Down
34 changes: 0 additions & 34 deletions drivers/soc/adi/mach-sc5xx/sec.c
Original file line number Diff line number Diff line change
Expand Up @@ -128,40 +128,6 @@ void sec_set_ssi_coreid(struct adi_sec *sec, unsigned int sid,

EXPORT_SYMBOL(sec_set_ssi_coreid);

struct adi_sec *get_adi_sec_from_node(struct device *dev)
{
struct platform_device *sec_pdev;
struct device_node *sec_node;
struct adi_sec *ret = NULL;

sec_node = of_parse_phandle(dev->of_node, "adi,sec", 0);
if (!sec_node) {
dev_err(dev, "Missing adi,sec phandle in device tree\n");
return ERR_PTR(-ENODEV);
}

sec_pdev = of_find_device_by_node(sec_node);
if (!sec_pdev) {
ret = ERR_PTR(-EPROBE_DEFER);
goto cleanup;
}

ret = dev_get_drvdata(&sec_pdev->dev);

cleanup:
of_node_put(sec_node);
return ret;
}

EXPORT_SYMBOL(get_adi_sec_from_node);

void put_adi_sec(struct adi_sec *sec)
{
put_device(sec->dev);
}

EXPORT_SYMBOL(put_adi_sec);

static int adi_sec_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
Expand Down
2 changes: 0 additions & 2 deletions drivers/soc/adi/mach-sc5xx/sec.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,6 @@ void sec_enable_ssi(struct adi_sec *sec, unsigned int sid, bool fault,
bool source);
void sec_set_ssi_coreid(struct adi_sec *sec, unsigned int sid,
unsigned int coreid);
struct adi_sec *get_adi_sec_from_node(struct device *dev);
void put_adi_sec(struct adi_sec *sec);
void adi_sec_writel(u32 val, struct adi_sec *rcu, int offset);
u32 adi_sec_readl(struct adi_sec *rcu, int offset);

Expand Down
5 changes: 0 additions & 5 deletions include/linux/soc/adi/icc.h
Original file line number Diff line number Diff line change
Expand Up @@ -114,12 +114,7 @@ struct adi_tru;
struct adi_tru *get_adi_tru_from_node(struct device *dev);
void put_adi_tru(struct adi_tru *tru);
int adi_tru_trigger_device(struct adi_tru *tru, struct device *dev);
int adi_tru_trigger(struct adi_tru *tru, u32 master);
int adi_tru_set_trigger_by_id(struct adi_tru *tru, u32 master, u32 slave);
int adi_tru_probe(struct platform_device *pdev);
void adi_tru_remove(struct platform_device *pdev);
int adi_tru_set_trigger(struct adi_tru *tru,
struct device_node *master,
struct device_node *slave);

#endif
4 changes: 0 additions & 4 deletions include/linux/soc/adi/rcu.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,10 +76,6 @@ void adi_rcu_msg_clear(struct adi_rcu *rcu, u32 bits);
/*
* These are defined for use with SHARC cores not ARM cores
*/
int adi_rcu_check_coreid_valid(struct adi_rcu *rcu, int coreid);
int adi_rcu_reset_core(struct adi_rcu *rcu, int coreid);
int adi_rcu_start_core(struct adi_rcu *rcu, int coreid);
int adi_rcu_stop_core(struct adi_rcu *rcu, int coreid, int coreirq);
int adi_rcu_is_core_idle(struct adi_rcu *rcu, int coreid);

void adi_rcu_set_sec(struct adi_rcu *rcu, struct adi_sec *sec);
Expand Down
Loading