#!/bin/sh

# Allow MMC to catch up
sleep 2

# APCS IPC                       0/0/0/0 (0)
assert_driver_present apcs-ipc-driver-present qcom_apcs_ipc
assert_device_present apcs-ipc-device-probed qcom_apcs_ipc b011000.*

# BAM                            0/0/0/0 (0)
assert_driver_present bam-driver-present bam-dma-engine
assert_device_present bam-blsp-dma-device-probed bam-dma-engine 7884000.*

# CPU clock                      0/0/0/0 (0)
assert_driver_present cpu-clock-driver-present qcom-apcs-msm8916-clk
assert_device_present cpu-clock-device-probed qcom-apcs-msm8916-clk qcom-apcs-msm8916-clk

# GCC                            0/0/0/0 (0)
assert_driver_present gcc-driver-present gcc-qcs404
assert_device_present gcc-device-probed gcc-qcs404 1800000.*

# GDSC                           0/0/0/0 (0)
assert_driver_present gdsc-driver-present gcc-qcs404
assert_device_present gdsc-device-probed gcc-qcs404 1800000.*

# GIC                            0/0/0/0 (0)
# CPR                            0/0/0/0 (0)
#assert_driver_present cpr-driver-present qcom-cpr
#assert_device_present cpr-device-probed qcom-cpr b018000.*

# I2C QUP                        0/0/0/0 (0)
#assert_driver_present qup-i2c-driver-present i2c_qup
#assert_device_present qup-i2c-blsp-i2c2-probed i2c_qup 78b6000.*
#assert_device_present qup-i2c-blsp-i2c4-probed i2c_qup 78b8000.*
#assert_device_present qup-i2c-blsp-i2c6-probed i2c_qup 78ba000.*

# MMCC                           0/0/0/0 (0)
# msm_bus                        0/0/0/0 (0)
# PSHOLD                         0/0/0/0 (0)
#assert_driver_present pshold-driver-present msm-restart
#assert_device_present pshold-device-probed msm-restart 4ab000.*

# QFPROM
#assert_driver_present qfprom-driver-present qcom,qfprom
#assert_device_present qfprom-device-probed qcom,qfprom a4000.*

# RPM-clocks                     0/0/0/0 (0)
assert_driver_present rpm-clock-driver-present qcom-clk-smd-rpm
assert_device_present rpm-clock-device-probed qcom-clk-smd-rpm *clock-controller*

# RPM-regulators                 0/0/0/0 (0)
assert_driver_present rpm-regulator-driver-present qcom_rpm_smd_regulator
assert_device_present rpm-pms405-regulator-device-probed qcom_rpm_smd_regulator *pms405*

# SCM
assert_driver_present scm-driver-present qcom_scm
assert_device_present scm-device-probed qcom_scm firmware:scm

# Serial                         0/0/0/0 (0)
assert_driver_present msm_serial-driver-present msm_serial
assert_device_present msm_serial-uart1-probed msm_serial 78b1000.*

# SMD                            0/0/0/0 (0)
#assert_driver_present smd-driver-present qcom-smd
#assert_device_present smd-device-present qcom-smd smd

# SMEM                           0/0/0/0 (0)
assert_driver_present smem-driver-present qcom-smem
assert_device_present smem-device-probed qcom-smem smem
# SMMU                           0/0/0/0 (0)
# SPI QUP                        0/0/0/0 (0)
#assert_driver_present qup-spi-driver-present spi_qup
#assert_device_present qup-spi-spi3-probed spi_qup 78b7000.*
#assert_device_present qup-spi-spi5-probed spi_qup 78b9000.*

# TCSR mutex                     0/0/0/0 (0)
assert_driver_present tcsr-mutex-driver-present qcom_hwspinlock
assert_device_present tcsr-mutex-device-probed qcom_hwspinlock hwlock

# Timer                          0/0/0/0 (0)
# TLMM                           0/0/0/0 (0)
assert_driver_present tlmm-driver-present qcs404-pinctrl
assert_device_present tlmm-device-probed 1000000.*

# APR                            0/0/0/0 (0)
# GLINK/SMEM                     0/0/0/0 (0)
# GLINK/SPSS                     0/0/0/0 (0)
# IPCROUTER                      0/0/0/0 (0)
# SMP2P                          0/0/0/0 (0)
assert_driver_present smp2p-driver-present qcom_smp2p
assert_device_present smp2p-hexagon-device-probed qcom_smp2p smp2p-adsp
assert_device_present smp2p-hexagon-device-probed qcom_smp2p smp2p-cdsp
assert_device_present smp2p-hexagon-device-probed qcom_smp2p smp2p-wcss

# SPCOM                          0/0/0/0 (0)
# CCI                            0/0/0/0 (0)
# CPP                            0/0/0/0 (0)
# CSID                           0/0/0/0 (0)
# CSIPHY                         0/0/0/0 (0)
# FaceDetect                     0/0/0/0 (0)
# JPEG                           0/0/0/0 (0)
# VFE                            0/0/0/0 (0)
# FastRPC                        0/0/0/0 (0)
# QCrypto                        0/0/0/0 (0)

# PRNG                           0/0/0/0 (0)
assert_driver_present qcom-prng-driver-present qcom_rng
assert_device_present qcom-prng-device-probed qcom_rng e3000.*

# Coresight                      0/0/0/0 (0)
# CPU hand detect                0/0/0/0 (0)
# DebugCC                        0/0/0/0 (0)
# Gladiator hang detect          0/0/0/0 (0)
# Watchdog                       0/0/0/0 (0)
# ADSP PIL                       0/0/0/0 (0)
# Compute PIL                    0/0/0/0 (0)
# RMTFS memory                   0/0/0/0 (0)
#assert_driver_present rmtfs-mem-driver-present qcom_rmtfs_mem

# Secure PIL                     0/0/0/0 (0)
# Sensor PIL                     0/0/0/0 (0)
# QMP (UFS)                      0/0/0/0 (0)
# SDHCI                          0/0/0/0 (0)
assert_driver_present sdhci-msm-driver-present sdhci_msm
assert_device_present sdhci-msm-mmc0-probed sdhci_msm 7804000.* 10
assert_mmc_present sdhci-msm-mmcblk0-probed mmc0:0001
assert_partition_found sdhci-msm-has-userdata userdata

# UFS                            0/0/0/0 (0)
# UFS ICE                        0/0/0/0 (0)
# Bluetooth                      0/1/0/0 (1)
# WiFi                           1/0/0/0 (1)

# Ensure /lib/firmware has firmware files
ensure_lib_firmware sdhci-msm-mount-lib-firmware

# Modem PIL                      1/1/0/0 (2)
#assert_driver_present mpss-rproc-driver-present qcom-q6v5-pil
#assert_device_present mpss-rproc-device-probed qcom-q6v5-pil 4080000.*

# WCNSS PIL                      6/0/0/0 (6)
#assert_driver_present wcnss-rproc-driver-present qcom-wcnss-pil
#assert_device_present wcnss-rproc-device-probed qcom-wcnss-pil a204000.*

# TSENS
assert_driver_present thermal-driver-tsens-present qcom-tsens
assert_device_present thermal-device-tsens0-probed qcom-tsens 4a9000.*
# 10 thermal zones: cpu x 4, gpu, aoss, wlan, dsp, lpass, cpu cluster
STATE=""
RANGE=""
for num in `seq 0 10`
do
    STATE="$STATE /sys/class/thermal/thermal_zone"${num}"/mode"
    RANGE="$RANGE /sys/class/thermal/thermal_zone"${num}"/temp"
done

state_check thermal-zone-enabled enabled "$STATE"
value_in_range thermal-zone-temperature 25000 50000 "$RANGE"
#for round in `seq 3`
#do
#	rproc-start wcnss-rproc-start-$round a204000.*
#	assert_device_present wcnss-wcnss_ctrl-probed-$round qcom_wcnss_ctrl *WCNSS_CTRL* 10
#	assert_device_present wcnss-btqcomsmd-probed-$round btqcomsmd a204000* 10
#	assert_device_present wcnss-wcn36xx-probed-$round wcn36xx a204000* 10
#	rproc-stop wcnss-rproc-stop-$round a204000.*
#done
