123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- /*
- * OMAP powerdomain control
- *
- * Copyright (C) 2007-2008, 2011 Texas Instruments, Inc.
- * Copyright (C) 2007-2011 Nokia Corporation
- *
- * Written by Paul Walmsley
- * Added OMAP4 specific support by Abhijit Pagare <abhijitpagare@ti.com>
- * State counting code by Tero Kristo <tero.kristo@nokia.com>
- *
- * 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.
- */
- #undef DEBUG
- #include <linux/kernel.h>
- #include <linux/types.h>
- #include <linux/list.h>
- #include <linux/errno.h>
- #include <linux/string.h>
- #include <trace/events/power.h>
- #include "cm2xxx_3xxx.h"
- #include "prcm44xx.h"
- #include "cm44xx.h"
- #include "prm2xxx_3xxx.h"
- #include "prm44xx.h"
- #include <asm/cpu.h>
- #include "powerdomain.h"
- #include "clockdomain.h"
- #include "soc.h"
- #include "pm.h"
- #define PWRDM_TRACE_STATES_FLAG (1<<31)
- enum {
- PWRDM_STATE_NOW = 0,
- PWRDM_STATE_PREV,
- };
- /* pwrdm_list contains all registered struct powerdomains */
- static LIST_HEAD(pwrdm_list);
- static struct pwrdm_ops *arch_pwrdm;
- /* Private functions */
- static struct powerdomain *_pwrdm_lookup(const char *name)
- {
- struct powerdomain *pwrdm, *temp_pwrdm;
- pwrdm = NULL;
- list_for_each_entry(temp_pwrdm, &pwrdm_list, node) {
- if (!strcmp(name, temp_pwrdm->name)) {
- pwrdm = temp_pwrdm;
- break;
- }
- }
- return pwrdm;
- }
- /**
- * _pwrdm_register - register a powerdomain
- * @pwrdm: struct powerdomain * to register
- *
- * Adds a powerdomain to the internal powerdomain list. Returns
- * -EINVAL if given a null pointer, -EEXIST if a powerdomain is
- * already registered by the provided name, or 0 upon success.
|