/*
 * Copyright (c) 2018-2019, ARM Limited and Contributors. All rights reserved.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

#include <stdint.h>

#include "aml_private.h"

static int32_t modules_initialized = -1;

/*******************************************************************************
 * Unknown commands related to something thermal-related
 ******************************************************************************/
void gxbb_thermal_unknown(void)
{
	uint16_t ret;

	if (modules_initialized == -1) {
		scpi_efuse_read(&ret, 0, 2);
		modules_initialized = ret;
	}

	scpi_unknown_thermal(10, 2,  /* thermal */
			     13, 1); /* thermalver */
}
