/*******************************************************************************
 * Copyright (C) 2010, Linaro
 * Copyright (C) 2010, IBM Corporation
 *
 * This file is part of PowerDebug.
 *
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     Amit Arora <amit.arora@linaro.org> (IBM Corporation)
 *       - initial API and implementation
 *******************************************************************************/

char *items_temp[32] = {"min", "max", "input", "label", ""};
char *suffix_temp[32] = {"°C", "°C", "°C", "", ""};
char *items_in[32] = {"min", "max", "input", "label", ""};
char *suffix_in[32] = {"Volts", "Volts", "Volts", "", ""};
char *items_fan[32] = {"min", "max", "input", "label", "div", "target", ""};
char *suffix_fan[32] = {"RPM", "RPM", "RPM", "", "", "RPM", ""};
char *items_pwm[32] = {"freq", "enable", "mode", ""};
char *suffix_pwm[32] = {"Hz", "", "", ""};
