# # 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 2007 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # #pragma ident "%Z%%M% %I% %E% SMI" # 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= - 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= - value of ioctl command for reading # iowr= - value of ioctl command for writing # val= - a single integer value, generally the value to which # the relevant bits of a register will be set # mask= - which bits of val are relevant (if method is I2CKIO) # ppm-domains="domain_cpu" , "domain_estar"; # # CPU domain # domain_cpu-devices="/cpus/cpu@*"; 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 = "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 = "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 = "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*";