/* Return: 0 if all went ok, else return appropriate error  */
static int k3_arm64_start(struct udevice *dev)
/* Return: 0 if all went ok, else return appropriate error  */
static int k3_arm64_start(struct udevice *dev)
{
	struct k3_arm64_privdata *rproc = dev_get_priv(dev);
	int ret;
	dev_dbg(dev, "%s\n", __func__);
	ret = power_domain_on(&rproc->gtc_pwrdmn);
	if (ret) {
		dev_err(dev, "power_domain_on() failed: %d\n", ret);
		return ret;
	}
	writel(GTC_CNTR_EN, rproc->gtc_base + GTC_CNTCR_REG);
	ret = power_domain_on(&rproc->rproc_pwrdmn);
	if (ret) {
		dev_err(dev, "power_domain_on() failed: %d\n", ret);
		return ret;
	}
	return ti_sci_proc_release(&rproc->tsp);
}