#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
#
# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#

name="ppm" parent="pseudo" instance=0;

#
# ppm configuration format
#
# "ppm-domains" - in form of "domain_xxx" where "xxx" string highlights 
# the nature of the domain;
# 
# "domain_xxx-model" - PM model: CPU 
# "domain_xxx-model" - PM model: SX
#
# "domain_xxx-propname" - a property name that is exported by device in
# a domain.  Currently, it is used by PCI_PROP model to identify devices
# that are to have their clocks stopped when all power-manageable devices
# in the domain are at D3 power level.
#
# "domain-xxx-devices" - a list of prom path match patterns to match devices
# that fall into "domain_xxx", where wildcard '*' is allowed by observing
# the following expectations:
#	. a single wildcard with exact match up to (but exclude) the wildcard
#	  which then terminates the match pattern;
#	. a single wildcard that does not terminate a match pattern must
#	  match driver name (followed by '@');
#	. with two wildcard occurences, the first is to match driver name,
#	  the second function id, as well as the last character of the match
#	  pattern.
# 
# "domain-xxx-ctrl" - blank space separated definitions in the form of
# keyword=definition [keyword=definition...]
#    The keywords are as follows, where 'method' must come before mask as it
#       tells how to store 'mask' and 'val'.  Missing 'val' defaults to 0.
# 
#    which keywords apply depends on cmd.  There are two sets as shown below.
#    Here is the first:
#	cmd=[ENTER_S3 | ENTER_S4]
# 	path=<prompath>	- control device's prom pathname (includes minor)
# 	method=[KIO|I2CKIO]	This selects a method which may be
#		an ioctl that sets a single value or an i2c ioctl that
#		takes a value and a mask to access gpio register
#	iord=<integer> - value of ioctl command for reading
#	iowr=<integer> - value of ioctl command for writing
# 	val=<integer>	- a single integer value, generally the value to which
#			  the relevant bits of a register will be set
#	mask=<integer>	- which bits of val are relevant (if method is I2CKIO)
#
ppm-domains="domain_cpu" , "domain_estar";

#
# CPU domain
# A special rule exists on x86 to catch all CPU devices by using "/" as the
# device path.
#
domain_cpu-devices="/";
domain_cpu-model="CPU";

#
# Estar domain
#   0x4101 is APPMIOC_ENTER_S3	(('A' << 8) | 1)
#   0x4102 is APPMIOC_EXIT_S3	(('A' << 8) | 2)
#
domain_estar-devices="/";
domain_estar-model="SX";
domain_estar-control=
    "cmd=ENTER_S3 path=/pseudo/acpippm@0:acpi-ppm method=KIO iowr=0x4101",
    "cmd=EXIT_S3 path=/pseudo/acpippm@0:acpi-ppm method=KIO iowr=0x4102";

#
# S3-enable whitelist
#
S3-support-enable =
    "TOSHIBA", "TECRA M8",
    "TOSHIBA", "TECRA M9",
    "TOSHIBA", "TECRA M10",
    "TOSHIBA", "TECRA A9",
    "TOSHIBA", "Satellite A205",
    "TOSHIBA", "PORTEGE R500",
    "TOSHIBA", "PORTEGE R600",
    "TOSHIBA", "TOSHIBA NB205",
    "TOSHIBA", "TOSHIBA NB200",
    "LENOVO", "64608VU",
    "LENOVO", "889703U",
    "Sony Corporation", "VGN-CR490N",
    "Dell Inc.", "Latitude X1                     ",
    "Dell Inc.", "Latitude D630                   ",
    "Dell Inc.", "Precision M4300                 ",
    "Sun Microsystems", "Ultra 24",
    "Sun Microsystems", "Sun Ultra 40 Workstation",
    "Sun Microsystems", "Sun Ultra 20 Workstation";

S3-support-disable =
    "Sun Microsystems", "Sun Blade x8400 Server Module",
    "Sun Microsystems", "Sun Fire*"; 

S3-autoenable = 
    "TOSHIBA", "TECRA M8",
    "TOSHIBA", "TECRA M9",
    "TOSHIBA", "TECRA M10",
    "TOSHIBA", "TECRA A9",
    "TOSHIBA", "Satellite A205",
    "TOSHIBA", "PORTEGE R500",
    "TOSHIBA", "PORTEGE R600",
    "LENOVO", "64608VU",
    "LENOVO", "889703U",
    "Sony Corporation", "VGN-CR490N",
    "Dell Inc.", "Latitude X1                     ",
    "Dell Inc.", "Latitude D630                   ",
    "Dell Inc.", "Precision M4300                 ",
    "Sun Microsystems", "Ultra 24",
    "Sun Microsystems", "Sun Ultra 40 Workstation",
    "Sun Microsystems", "Sun Ultra 20 Workstation";

S3-autodisable =
    "Sun Microsystems", "Sun Blade x8400 Server Module",
    "Sun Microsystems", "Sun Fire*"; 

autopm-enable =
    "TOSHIBA", "TECRA M8",
    "TOSHIBA", "TECRA M9",
    "TOSHIBA", "TECRA M10",
    "TOSHIBA", "TECRA A9",
    "TOSHIBA", "Satellite A205",
    "TOSHIBA", "PORTEGE R500",
    "TOSHIBA", "PORTEGE R600",
    "LENOVO", "64608VU",
    "LENOVO", "889703U",
    "Sony Corporation", "VGN-CR490N",
    "Dell Inc.", "Latitude X1                     ",
    "Dell Inc.", "Latitude D630                   ",
    "Dell Inc.", "Precision M4300                 ",
    "Sun Microsystems", "Ultra 24",
    "Sun Microsystems", "Sun Ultra 40 Workstation",
    "Sun Microsystems", "Sun Ultra 20 Workstation";

autopm-disable = 
    "Sun Microsystems", "Sun Blade x8400 Server Module",
    "Sun Microsystems", "Sun Fire*"; 
