* [PATCH 0/2] MediaTek Helio X10 MT6795 - power domains @ 2022-05-03 10:54 AngeloGioacchino Del Regno 2022-05-03 10:54 ` [PATCH 1/2] dt-bindings: power: Add MediaTek Helio X10 MT6795 " AngeloGioacchino Del Regno 2022-05-03 10:54 ` [PATCH 2/2] soc: mediatek: pm-domains: Add support for Helio X10 MT6795 AngeloGioacchino Del Regno 0 siblings, 2 replies; 7+ messages in thread From: AngeloGioacchino Del Regno @ 2022-05-03 10:54 UTC (permalink / raw) To: robh+dt Cc: krzysztof.kozlowski+dt, matthias.bgg, chun-jie.chen, angelogioacchino.delregno, weiyi.lu, mbrugger, devicetree, linux-kernel, linux-arm-kernel, linux-mediatek, kernel, nfraprado In an effort to give some love to the apparently forgotten MT6795 SoC, I am upstreaming more components that are necessary to support platforms powered by this one apart from a simple boot to serial console. This series introduces support for the MTCMOS power domains found on the Helio X10. Tested on a Sony Xperia M5 (codename "Holly") smartphone. AngeloGioacchino Del Regno (2): dt-bindings: power: Add MediaTek Helio X10 MT6795 power domains soc: mediatek: pm-domains: Add support for Helio X10 MT6795 .../power/mediatek,power-controller.yaml | 2 + drivers/soc/mediatek/mt6795-pm-domains.h | 112 ++++++++++++++++++ drivers/soc/mediatek/mtk-pm-domains.c | 5 + include/dt-bindings/power/mt6795-power.h | 16 +++ 4 files changed, 135 insertions(+) create mode 100644 drivers/soc/mediatek/mt6795-pm-domains.h create mode 100644 include/dt-bindings/power/mt6795-power.h -- 2.35.1 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/2] dt-bindings: power: Add MediaTek Helio X10 MT6795 power domains 2022-05-03 10:54 [PATCH 0/2] MediaTek Helio X10 MT6795 - power domains AngeloGioacchino Del Regno @ 2022-05-03 10:54 ` AngeloGioacchino Del Regno 2022-05-03 12:38 ` Krzysztof Kozlowski 2022-05-03 10:54 ` [PATCH 2/2] soc: mediatek: pm-domains: Add support for Helio X10 MT6795 AngeloGioacchino Del Regno 1 sibling, 1 reply; 7+ messages in thread From: AngeloGioacchino Del Regno @ 2022-05-03 10:54 UTC (permalink / raw) To: robh+dt Cc: krzysztof.kozlowski+dt, matthias.bgg, chun-jie.chen, angelogioacchino.delregno, weiyi.lu, mbrugger, devicetree, linux-kernel, linux-arm-kernel, linux-mediatek, kernel, nfraprado Add power domains dt-bindings for MediaTek Helio X10 (MT6795). Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> --- .../power/mediatek,power-controller.yaml | 2 ++ include/dt-bindings/power/mt6795-power.h | 16 ++++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 include/dt-bindings/power/mt6795-power.h diff --git a/Documentation/devicetree/bindings/power/mediatek,power-controller.yaml b/Documentation/devicetree/bindings/power/mediatek,power-controller.yaml index 135c6f722091..b448101fac43 100644 --- a/Documentation/devicetree/bindings/power/mediatek,power-controller.yaml +++ b/Documentation/devicetree/bindings/power/mediatek,power-controller.yaml @@ -23,6 +23,7 @@ properties: compatible: enum: + - mediatek,mt6795-power-controller - mediatek,mt8167-power-controller - mediatek,mt8173-power-controller - mediatek,mt8183-power-controller @@ -62,6 +63,7 @@ patternProperties: reg: description: | Power domain index. Valid values are defined in: + "include/dt-bindings/power/mt6795-power.h" - for MT8167 type power domain. "include/dt-bindings/power/mt8167-power.h" - for MT8167 type power domain. "include/dt-bindings/power/mt8173-power.h" - for MT8173 type power domain. "include/dt-bindings/power/mt8183-power.h" - for MT8183 type power domain. diff --git a/include/dt-bindings/power/mt6795-power.h b/include/dt-bindings/power/mt6795-power.h new file mode 100644 index 000000000000..0e27bc7fa748 --- /dev/null +++ b/include/dt-bindings/power/mt6795-power.h @@ -0,0 +1,16 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef _DT_BINDINGS_POWER_MT6795_POWER_H +#define _DT_BINDINGS_POWER_MT6795_POWER_H + +#define MT6795_POWER_DOMAIN_MM 0 +#define MT6795_POWER_DOMAIN_VDEC 1 +#define MT6795_POWER_DOMAIN_VENC 2 +#define MT6795_POWER_DOMAIN_ISP 3 +#define MT6795_POWER_DOMAIN_MJC 4 +#define MT6795_POWER_DOMAIN_AUDIO 5 +#define MT6795_POWER_DOMAIN_MFG_ASYNC 6 +#define MT6795_POWER_DOMAIN_MFG_2D 7 +#define MT6795_POWER_DOMAIN_MFG 8 +#define MT6795_POWER_DOMAIN_MODEM 9 + +#endif /* _DT_BINDINGS_POWER_MT6795_POWER_H */ -- 2.35.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] dt-bindings: power: Add MediaTek Helio X10 MT6795 power domains 2022-05-03 10:54 ` [PATCH 1/2] dt-bindings: power: Add MediaTek Helio X10 MT6795 " AngeloGioacchino Del Regno @ 2022-05-03 12:38 ` Krzysztof Kozlowski 2022-05-03 12:43 ` AngeloGioacchino Del Regno 0 siblings, 1 reply; 7+ messages in thread From: Krzysztof Kozlowski @ 2022-05-03 12:38 UTC (permalink / raw) To: AngeloGioacchino Del Regno, robh+dt Cc: krzysztof.kozlowski+dt, matthias.bgg, chun-jie.chen, weiyi.lu, mbrugger, devicetree, linux-kernel, linux-arm-kernel, linux-mediatek, kernel, nfraprado On 03/05/2022 12:54, AngeloGioacchino Del Regno wrote: > Add power domains dt-bindings for MediaTek Helio X10 (MT6795). > > Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> > --- > .../power/mediatek,power-controller.yaml | 2 ++ > include/dt-bindings/power/mt6795-power.h | 16 ++++++++++++++++ > 2 files changed, 18 insertions(+) > create mode 100644 include/dt-bindings/power/mt6795-power.h > > diff --git a/Documentation/devicetree/bindings/power/mediatek,power-controller.yaml b/Documentation/devicetree/bindings/power/mediatek,power-controller.yaml > index 135c6f722091..b448101fac43 100644 > --- a/Documentation/devicetree/bindings/power/mediatek,power-controller.yaml > +++ b/Documentation/devicetree/bindings/power/mediatek,power-controller.yaml > @@ -23,6 +23,7 @@ properties: > > compatible: > enum: > + - mediatek,mt6795-power-controller > - mediatek,mt8167-power-controller > - mediatek,mt8173-power-controller > - mediatek,mt8183-power-controller > @@ -62,6 +63,7 @@ patternProperties: > reg: > description: | > Power domain index. Valid values are defined in: > + "include/dt-bindings/power/mt6795-power.h" - for MT8167 type power domain. > "include/dt-bindings/power/mt8167-power.h" - for MT8167 type power domain. > "include/dt-bindings/power/mt8173-power.h" - for MT8173 type power domain. > "include/dt-bindings/power/mt8183-power.h" - for MT8183 type power domain. > diff --git a/include/dt-bindings/power/mt6795-power.h b/include/dt-bindings/power/mt6795-power.h > new file mode 100644 > index 000000000000..0e27bc7fa748 > --- /dev/null > +++ b/include/dt-bindings/power/mt6795-power.h > @@ -0,0 +1,16 @@ > +/* SPDX-License-Identifier: GPL-2.0 */ If it is not a derivative work, should be GPL-2.0 OR BSD Best regards, Krzysztof ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] dt-bindings: power: Add MediaTek Helio X10 MT6795 power domains 2022-05-03 12:38 ` Krzysztof Kozlowski @ 2022-05-03 12:43 ` AngeloGioacchino Del Regno 2022-05-03 12:57 ` Krzysztof Kozlowski 0 siblings, 1 reply; 7+ messages in thread From: AngeloGioacchino Del Regno @ 2022-05-03 12:43 UTC (permalink / raw) To: Krzysztof Kozlowski, robh+dt Cc: krzysztof.kozlowski+dt, matthias.bgg, chun-jie.chen, weiyi.lu, mbrugger, devicetree, linux-kernel, linux-arm-kernel, linux-mediatek, kernel, nfraprado Il 03/05/22 14:38, Krzysztof Kozlowski ha scritto: > On 03/05/2022 12:54, AngeloGioacchino Del Regno wrote: >> Add power domains dt-bindings for MediaTek Helio X10 (MT6795). >> >> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> >> --- >> .../power/mediatek,power-controller.yaml | 2 ++ >> include/dt-bindings/power/mt6795-power.h | 16 ++++++++++++++++ >> 2 files changed, 18 insertions(+) >> create mode 100644 include/dt-bindings/power/mt6795-power.h >> >> diff --git a/Documentation/devicetree/bindings/power/mediatek,power-controller.yaml b/Documentation/devicetree/bindings/power/mediatek,power-controller.yaml >> index 135c6f722091..b448101fac43 100644 >> --- a/Documentation/devicetree/bindings/power/mediatek,power-controller.yaml >> +++ b/Documentation/devicetree/bindings/power/mediatek,power-controller.yaml >> @@ -23,6 +23,7 @@ properties: >> >> compatible: >> enum: >> + - mediatek,mt6795-power-controller >> - mediatek,mt8167-power-controller >> - mediatek,mt8173-power-controller >> - mediatek,mt8183-power-controller >> @@ -62,6 +63,7 @@ patternProperties: >> reg: >> description: | >> Power domain index. Valid values are defined in: >> + "include/dt-bindings/power/mt6795-power.h" - for MT8167 type power domain. >> "include/dt-bindings/power/mt8167-power.h" - for MT8167 type power domain. >> "include/dt-bindings/power/mt8173-power.h" - for MT8173 type power domain. >> "include/dt-bindings/power/mt8183-power.h" - for MT8183 type power domain. >> diff --git a/include/dt-bindings/power/mt6795-power.h b/include/dt-bindings/power/mt6795-power.h >> new file mode 100644 >> index 000000000000..0e27bc7fa748 >> --- /dev/null >> +++ b/include/dt-bindings/power/mt6795-power.h >> @@ -0,0 +1,16 @@ >> +/* SPDX-License-Identifier: GPL-2.0 */ > > If it is not a derivative work, should be GPL-2.0 OR BSD > On that, I agree with you, fully. Though, all of the mt(xxxx)-power.h headers provide this license tag and I wanted to follow that to give the same. Should I change it to (GPL-2.0-only OR BSD-2-Clause)? Regards, Angelo > > Best regards, > Krzysztof ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] dt-bindings: power: Add MediaTek Helio X10 MT6795 power domains 2022-05-03 12:43 ` AngeloGioacchino Del Regno @ 2022-05-03 12:57 ` Krzysztof Kozlowski 2022-05-03 12:58 ` AngeloGioacchino Del Regno 0 siblings, 1 reply; 7+ messages in thread From: Krzysztof Kozlowski @ 2022-05-03 12:57 UTC (permalink / raw) To: AngeloGioacchino Del Regno, robh+dt Cc: krzysztof.kozlowski+dt, matthias.bgg, chun-jie.chen, weiyi.lu, mbrugger, devicetree, linux-kernel, linux-arm-kernel, linux-mediatek, kernel, nfraprado On 03/05/2022 14:43, AngeloGioacchino Del Regno wrote: >> >> If it is not a derivative work, should be GPL-2.0 OR BSD >> > > On that, I agree with you, fully. > > Though, all of the mt(xxxx)-power.h headers provide this license tag and I > wanted to follow that to give the same. > > Should I change it to (GPL-2.0-only OR BSD-2-Clause)? Yes, please, for this one. For the other bindings - you would need acks from people involved. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] dt-bindings: power: Add MediaTek Helio X10 MT6795 power domains 2022-05-03 12:57 ` Krzysztof Kozlowski @ 2022-05-03 12:58 ` AngeloGioacchino Del Regno 0 siblings, 0 replies; 7+ messages in thread From: AngeloGioacchino Del Regno @ 2022-05-03 12:58 UTC (permalink / raw) To: Krzysztof Kozlowski, robh+dt Cc: krzysztof.kozlowski+dt, matthias.bgg, chun-jie.chen, weiyi.lu, mbrugger, devicetree, linux-kernel, linux-arm-kernel, linux-mediatek, kernel, nfraprado Il 03/05/22 14:57, Krzysztof Kozlowski ha scritto: > On 03/05/2022 14:43, AngeloGioacchino Del Regno wrote: >>> >>> If it is not a derivative work, should be GPL-2.0 OR BSD >>> >> >> On that, I agree with you, fully. >> >> Though, all of the mt(xxxx)-power.h headers provide this license tag and I >> wanted to follow that to give the same. >> >> Should I change it to (GPL-2.0-only OR BSD-2-Clause)? > > Yes, please, for this one. > > For the other bindings - you would need acks from people involved. > I'm glad to read this. I'll change it in the next version. Thank you! ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 2/2] soc: mediatek: pm-domains: Add support for Helio X10 MT6795 2022-05-03 10:54 [PATCH 0/2] MediaTek Helio X10 MT6795 - power domains AngeloGioacchino Del Regno 2022-05-03 10:54 ` [PATCH 1/2] dt-bindings: power: Add MediaTek Helio X10 MT6795 " AngeloGioacchino Del Regno @ 2022-05-03 10:54 ` AngeloGioacchino Del Regno 1 sibling, 0 replies; 7+ messages in thread From: AngeloGioacchino Del Regno @ 2022-05-03 10:54 UTC (permalink / raw) To: robh+dt Cc: krzysztof.kozlowski+dt, matthias.bgg, chun-jie.chen, angelogioacchino.delregno, weiyi.lu, mbrugger, devicetree, linux-kernel, linux-arm-kernel, linux-mediatek, kernel, nfraprado Add pm-domains (mtcmos) data for MediaTek Helio X10 MT6795 SoC. Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> --- drivers/soc/mediatek/mt6795-pm-domains.h | 112 +++++++++++++++++++++++ drivers/soc/mediatek/mtk-pm-domains.c | 5 + 2 files changed, 117 insertions(+) create mode 100644 drivers/soc/mediatek/mt6795-pm-domains.h diff --git a/drivers/soc/mediatek/mt6795-pm-domains.h b/drivers/soc/mediatek/mt6795-pm-domains.h new file mode 100644 index 000000000000..ef07c9dfdd9b --- /dev/null +++ b/drivers/soc/mediatek/mt6795-pm-domains.h @@ -0,0 +1,112 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#ifndef __SOC_MEDIATEK_MT6795_PM_DOMAINS_H +#define __SOC_MEDIATEK_MT6795_PM_DOMAINS_H + +#include "mtk-pm-domains.h" +#include <dt-bindings/power/mt6795-power.h> + +/* + * MT6795 power domain support + */ + +static const struct scpsys_domain_data scpsys_domain_data_mt6795[] = { + [MT6795_POWER_DOMAIN_VDEC] = { + .name = "vdec", + .sta_mask = PWR_STATUS_VDEC, + .ctl_offs = SPM_VDE_PWR_CON, + .pwr_sta_offs = SPM_PWR_STATUS, + .pwr_sta2nd_offs = SPM_PWR_STATUS_2ND, + .sram_pdn_bits = GENMASK(11, 8), + .sram_pdn_ack_bits = GENMASK(12, 12), + }, + [MT6795_POWER_DOMAIN_VENC] = { + .name = "venc", + .sta_mask = PWR_STATUS_VENC, + .ctl_offs = SPM_VEN_PWR_CON, + .pwr_sta_offs = SPM_PWR_STATUS, + .pwr_sta2nd_offs = SPM_PWR_STATUS_2ND, + .sram_pdn_bits = GENMASK(11, 8), + .sram_pdn_ack_bits = GENMASK(15, 12), + }, + [MT6795_POWER_DOMAIN_ISP] = { + .name = "isp", + .sta_mask = PWR_STATUS_ISP, + .ctl_offs = SPM_ISP_PWR_CON, + .pwr_sta_offs = SPM_PWR_STATUS, + .pwr_sta2nd_offs = SPM_PWR_STATUS_2ND, + .sram_pdn_bits = GENMASK(11, 8), + .sram_pdn_ack_bits = GENMASK(13, 12), + }, + [MT6795_POWER_DOMAIN_MM] = { + .name = "mm", + .sta_mask = PWR_STATUS_DISP, + .ctl_offs = SPM_DIS_PWR_CON, + .pwr_sta_offs = SPM_PWR_STATUS, + .pwr_sta2nd_offs = SPM_PWR_STATUS_2ND, + .sram_pdn_bits = GENMASK(11, 8), + .sram_pdn_ack_bits = GENMASK(12, 12), + .bp_infracfg = { + BUS_PROT_UPDATE_TOPAXI(MT8173_TOP_AXI_PROT_EN_MM_M0 | + MT8173_TOP_AXI_PROT_EN_MM_M1), + }, + }, + [MT6795_POWER_DOMAIN_MJC] = { + .name = "mjc", + .sta_mask = BIT(20), + .ctl_offs = 0x298, + .pwr_sta_offs = SPM_PWR_STATUS, + .pwr_sta2nd_offs = SPM_PWR_STATUS_2ND, + .sram_pdn_bits = GENMASK(11, 8), + .sram_pdn_ack_bits = GENMASK(15, 12), + }, + [MT6795_POWER_DOMAIN_AUDIO] = { + .name = "audio", + .sta_mask = PWR_STATUS_AUDIO, + .ctl_offs = SPM_AUDIO_PWR_CON, + .pwr_sta_offs = SPM_PWR_STATUS, + .pwr_sta2nd_offs = SPM_PWR_STATUS_2ND, + .sram_pdn_bits = GENMASK(11, 8), + .sram_pdn_ack_bits = GENMASK(15, 12), + }, + [MT6795_POWER_DOMAIN_MFG_ASYNC] = { + .name = "mfg_async", + .sta_mask = PWR_STATUS_MFG_ASYNC, + .ctl_offs = SPM_MFG_ASYNC_PWR_CON, + .pwr_sta_offs = SPM_PWR_STATUS, + .pwr_sta2nd_offs = SPM_PWR_STATUS_2ND, + .sram_pdn_bits = GENMASK(11, 8), + .sram_pdn_ack_bits = 0, + }, + [MT6795_POWER_DOMAIN_MFG_2D] = { + .name = "mfg_2d", + .sta_mask = PWR_STATUS_MFG_2D, + .ctl_offs = SPM_MFG_2D_PWR_CON, + .pwr_sta_offs = SPM_PWR_STATUS, + .pwr_sta2nd_offs = SPM_PWR_STATUS_2ND, + .sram_pdn_bits = GENMASK(11, 8), + .sram_pdn_ack_bits = GENMASK(13, 12), + }, + [MT6795_POWER_DOMAIN_MFG] = { + .name = "mfg", + .sta_mask = PWR_STATUS_MFG, + .ctl_offs = SPM_MFG_PWR_CON, + .pwr_sta_offs = SPM_PWR_STATUS, + .pwr_sta2nd_offs = SPM_PWR_STATUS_2ND, + .sram_pdn_bits = GENMASK(13, 8), + .sram_pdn_ack_bits = GENMASK(21, 16), + .bp_infracfg = { + BUS_PROT_UPDATE_TOPAXI(MT8173_TOP_AXI_PROT_EN_MFG_S | + MT8173_TOP_AXI_PROT_EN_MFG_M0 | + MT8173_TOP_AXI_PROT_EN_MFG_M1 | + MT8173_TOP_AXI_PROT_EN_MFG_SNOOP_OUT), + }, + }, +}; + +static const struct scpsys_soc_data mt6795_scpsys_data = { + .domains_data = scpsys_domain_data_mt6795, + .num_domains = ARRAY_SIZE(scpsys_domain_data_mt6795), +}; + +#endif /* __SOC_MEDIATEK_MT6795_PM_DOMAINS_H */ diff --git a/drivers/soc/mediatek/mtk-pm-domains.c b/drivers/soc/mediatek/mtk-pm-domains.c index 5ced254b082b..4da53488c381 100644 --- a/drivers/soc/mediatek/mtk-pm-domains.c +++ b/drivers/soc/mediatek/mtk-pm-domains.c @@ -16,6 +16,7 @@ #include <linux/regulator/consumer.h> #include <linux/soc/mediatek/infracfg.h> +#include "mt6795-pm-domains.h" #include "mt8167-pm-domains.h" #include "mt8173-pm-domains.h" #include "mt8183-pm-domains.h" @@ -555,6 +556,10 @@ static void scpsys_domain_cleanup(struct scpsys *scpsys) } static const struct of_device_id scpsys_of_match[] = { + { + .compatible = "mediatek,mt6795-power-controller", + .data = &mt6795_scpsys_data, + }, { .compatible = "mediatek,mt8167-power-controller", .data = &mt8167_scpsys_data, -- 2.35.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2022-05-03 12:58 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-05-03 10:54 [PATCH 0/2] MediaTek Helio X10 MT6795 - power domains AngeloGioacchino Del Regno 2022-05-03 10:54 ` [PATCH 1/2] dt-bindings: power: Add MediaTek Helio X10 MT6795 " AngeloGioacchino Del Regno 2022-05-03 12:38 ` Krzysztof Kozlowski 2022-05-03 12:43 ` AngeloGioacchino Del Regno 2022-05-03 12:57 ` Krzysztof Kozlowski 2022-05-03 12:58 ` AngeloGioacchino Del Regno 2022-05-03 10:54 ` [PATCH 2/2] soc: mediatek: pm-domains: Add support for Helio X10 MT6795 AngeloGioacchino Del Regno
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).