imx8: Replace SC_R_LAST with SC_R_NONE in DTB

We are currently using SC_R_LAST as a marker for imx8 power domain tree
nodes without a resource attached. This value is compiled into dtb as
part of the linux build and used by uboot.

The SC_R_LAST constant changes frequently as SCFW resources are added
(by design) and every time we need to update linux and uboot headers
together or boot can fail.

Fix this by replacing SC_R_LAST usage with a new constant SC_R_NONE
defined to be 0xFFF0.

Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
This commit is contained in:
Leonard Crestez 2020-05-04 21:16:54 +08:00 committed by Stefano Babic
parent 1074af51ec
commit 6fcb2ee783
4 changed files with 9 additions and 10 deletions

View File

@ -131,7 +131,7 @@
pd_lsio: PD_LSIO { pd_lsio: PD_LSIO {
compatible = "nxp,imx8-pd"; compatible = "nxp,imx8-pd";
reg = <SC_R_LAST>; reg = <SC_R_NONE>;
#power-domain-cells = <0>; #power-domain-cells = <0>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
@ -180,7 +180,7 @@
pd_conn: PD_CONN { pd_conn: PD_CONN {
compatible = "nxp,imx8-pd"; compatible = "nxp,imx8-pd";
reg = <SC_R_LAST>; reg = <SC_R_NONE>;
#power-domain-cells = <0>; #power-domain-cells = <0>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
@ -214,7 +214,7 @@
pd_dma: PD_DMA { pd_dma: PD_DMA {
compatible = "nxp,imx8-pd"; compatible = "nxp,imx8-pd";
reg = <SC_R_LAST>; reg = <SC_R_NONE>;
#power-domain-cells = <0>; #power-domain-cells = <0>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;

View File

@ -88,7 +88,7 @@
pd_lsio: PD_LSIO { pd_lsio: PD_LSIO {
compatible = "nxp,imx8-pd"; compatible = "nxp,imx8-pd";
reg = <SC_R_LAST>; reg = <SC_R_NONE>;
#power-domain-cells = <0>; #power-domain-cells = <0>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
@ -137,7 +137,7 @@
pd_conn: PD_CONN { pd_conn: PD_CONN {
compatible = "nxp,imx8-pd"; compatible = "nxp,imx8-pd";
reg = <SC_R_LAST>; reg = <SC_R_NONE>;
#power-domain-cells = <0>; #power-domain-cells = <0>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
@ -173,7 +173,7 @@
pd_dma: PD_DMA { pd_dma: PD_DMA {
compatible = "nxp,imx8-pd"; compatible = "nxp,imx8-pd";
reg = <SC_R_LAST>; reg = <SC_R_NONE>;
#power-domain-cells = <0>; #power-domain-cells = <0>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;

View File

@ -536,4 +536,3 @@ u32 get_cpu_rev(void)
return (id << 12) | rev; return (id << 12) | rev;
} }

View File

@ -90,7 +90,7 @@ static int imx8_power_domain_on(struct power_domain *power_domain)
if (ppriv->state_on) if (ppriv->state_on)
return 0; return 0;
if (pdata->resource_id != SC_R_LAST) { if (pdata->resource_id != SC_R_NONE) {
if (!sc_rm_is_resource_owned(-1, pdata->resource_id)) if (!sc_rm_is_resource_owned(-1, pdata->resource_id))
printf("%s [%d] not owned by curr partition\n", dev->name, pdata->resource_id); printf("%s [%d] not owned by curr partition\n", dev->name, pdata->resource_id);
@ -139,7 +139,7 @@ static int imx8_power_domain_off_node(struct power_domain *power_domain)
} }
} }
if (pdata->resource_id != SC_R_LAST) { if (pdata->resource_id != SC_R_NONE) {
ret = sc_pm_set_resource_power_mode(-1, pdata->resource_id, ret = sc_pm_set_resource_power_mode(-1, pdata->resource_id,
SC_PM_PW_MODE_OFF); SC_PM_PW_MODE_OFF);
if (ret) { if (ret) {
@ -202,7 +202,7 @@ static int imx8_power_domain_off_parentnodes(struct power_domain *power_domain)
} }
/* power off parent */ /* power off parent */
if (pdata->resource_id != SC_R_LAST) { if (pdata->resource_id != SC_R_NONE) {
ret = sc_pm_set_resource_power_mode(-1, ret = sc_pm_set_resource_power_mode(-1,
pdata->resource_id, pdata->resource_id,
SC_PM_PW_MODE_OFF); SC_PM_PW_MODE_OFF);