2022-08-09 00:21:03

by Rudraksha Gupta

[permalink] [raw]
Subject: [PATCH 1/2] ARM: msm8960: Rename cxo_board to cxo-board and add alias

This patch renames cxo_board to be up to date with the current naming
style. It also adds an alias

Signed-off-by: Rudraksha Gupta <[email protected]>
---
arch/arm/boot/dts/Makefile | 1 +
drivers/clk/qcom/gcc-msm8960.c | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 05d8aef6e5d2..d55f196ad733 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -1049,6 +1049,7 @@ dtb-$(CONFIG_ARCH_QCOM) += \
qcom-msm8660-surf.dtb \
qcom-msm8916-samsung-serranove.dtb \
qcom-msm8960-cdp.dtb \
+ qcom-msm8960-samsung-expressatt.dtb \
qcom-msm8974-lge-nexus5-hammerhead.dtb \
qcom-msm8974-sony-xperia-rhine-amami.dtb \
qcom-msm8974-sony-xperia-rhine-honami.dtb \
diff --git a/drivers/clk/qcom/gcc-msm8960.c b/drivers/clk/qcom/gcc-msm8960.c
index 051745ef99c8..56ce05a846dd 100644
--- a/drivers/clk/qcom/gcc-msm8960.c
+++ b/drivers/clk/qcom/gcc-msm8960.c
@@ -3624,7 +3624,7 @@ static int gcc_msm8960_probe(struct platform_device *pdev)
if (!match)
return -EINVAL;

- ret = qcom_cc_register_board_clk(dev, "cxo_board", "cxo", 19200000);
+ ret = qcom_cc_register_board_clk(dev, "cxo-board", "cxo", 19200000);
if (ret)
return ret;

--
2.25.1


2022-08-09 00:38:16

by Rudraksha Gupta

[permalink] [raw]
Subject: [PATCH 2/2] ARM: msm8960: Add Samsung Galaxy Express support

This adds a very basic device tree file for the Samsung Galaxy Express
SGH-I437. Currently, the following things work: UART, eMMC, SD Card, and
USB.

Signed-off-by: Rudraksha Gupta <[email protected]>
---
.../dts/qcom-msm8960-samsung-expressatt.dts | 337 ++++++++++++++++++
arch/arm/boot/dts/qcom-msm8960.dtsi | 2 +-
2 files changed, 338 insertions(+), 1 deletion(-)
create mode 100644 arch/arm/boot/dts/qcom-msm8960-samsung-expressatt.dts

diff --git a/arch/arm/boot/dts/qcom-msm8960-samsung-expressatt.dts b/arch/arm/boot/dts/qcom-msm8960-samsung-expressatt.dts
new file mode 100644
index 000000000000..cf557f0c9a59
--- /dev/null
+++ b/arch/arm/boot/dts/qcom-msm8960-samsung-expressatt.dts
@@ -0,0 +1,337 @@
+// SPDX-License-Identifier: GPL-2.0-only
+#include <dt-bindings/input/input.h>
+#include "qcom-msm8960.dtsi"
+
+/ {
+ model = "Samsung Galaxy S3 SGH-I437";
+ compatible = "samsung,expressatt", "qcom,msm8960";
+
+ aliases {
+ serial0 = &gsbi5_serial;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+ };
+
+ soc {
+ gsbi@16400000 {
+ status = "ok";
+ qcom,mode = <GSBI_PROT_I2C_UART>;
+ serial@16440000 {
+ status = "ok";
+ };
+ };
+
+ amba {
+ /* eMMC */
+ sdcc1: mmc@12400000 {
+ status = "okay";
+ vmmc-supply = <&pm8921_l5>;
+ };
+
+ /* External micro SD card */
+ sdcc3: mmc@12180000 {
+ status = "okay";
+ vmmc-supply = <&pm8921_l6>;
+ vqmmc-supply = <&pm8921_l7>;
+ };
+ };
+
+ rpm@108000 {
+ regulators {
+ compatible = "qcom,rpm-pm8921-regulators";
+ vin_lvs1_3_6-supply = <&pm8921_s4>;
+ vin_lvs2-supply = <&pm8921_s4>;
+ vin_lvs4_5_7-supply = <&pm8921_s4>;
+ vdd_ncp-supply = <&pm8921_l6>;
+ vdd_l1_l2_l12_l18-supply = <&pm8921_s4>;
+ vdd_l21_l23_l29-supply = <&pm8921_s8>;
+ vdd_l24-supply = <&pm8921_s1>;
+ vdd_l25-supply = <&pm8921_s1>;
+ vdd_l27-supply = <&pm8921_s7>;
+ vdd_l28-supply = <&pm8921_s7>;
+
+ /* Buck SMPS */
+ pm8921_s1: s1 {
+ regulator-always-on;
+ regulator-min-microvolt = <1225000>;
+ regulator-max-microvolt = <1225000>;
+ qcom,switch-mode-frequency = <3200000>;
+ bias-pull-down;
+ };
+
+ pm8921_s2: s2 {
+ regulator-min-microvolt = <1300000>;
+ regulator-max-microvolt = <1300000>;
+ qcom,switch-mode-frequency = <1600000>;
+ bias-pull-down;
+ };
+
+ pm8921_s3: s3 {
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <1150000>;
+ qcom,switch-mode-frequency = <4800000>;
+ bias-pull-down;
+ };
+
+ pm8921_s4: s4 {
+ regulator-always-on;
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ qcom,switch-mode-frequency = <1600000>;
+ bias-pull-down;
+ qcom,force-mode = <QCOM_RPM_FORCE_MODE_AUTO>;
+ };
+
+ pm8921_s7: s7 {
+ regulator-min-microvolt = <1150000>;
+ regulator-max-microvolt = <1150000>;
+ qcom,switch-mode-frequency = <3200000>;
+ bias-pull-down;
+ };
+
+ pm8921_s8: s8 {
+ regulator-always-on;
+ regulator-min-microvolt = <2050000>;
+ regulator-max-microvolt = <2050000>;
+ qcom,switch-mode-frequency = <1600000>;
+ bias-pull-down;
+ };
+
+ /* PMOS LDO */
+ pm8921_l1: l1 {
+ regulator-always-on;
+ regulator-min-microvolt = <1050000>;
+ regulator-max-microvolt = <1050000>;
+ bias-pull-down;
+ };
+
+ pm8921_l2: l2 {
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ bias-pull-down;
+ };
+
+ pm8921_l3: l3 {
+ regulator-min-microvolt = <3075000>;
+ regulator-max-microvolt = <3300000>;
+ bias-pull-down;
+ };
+
+ pm8921_l4: l4 {
+ regulator-always-on;
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ bias-pull-down;
+ };
+
+ pm8921_l5: l5 {
+ regulator-min-microvolt = <2950000>;
+ regulator-max-microvolt = <2950000>;
+ bias-pull-down;
+ };
+
+ pm8921_l6: l6 {
+ regulator-min-microvolt = <2950000>;
+ regulator-max-microvolt = <2950000>;
+ bias-pull-down;
+ };
+
+ pm8921_l7: l7 {
+ regulator-always-on;
+ regulator-min-microvolt = <1850000>;
+ regulator-max-microvolt = <2950000>;
+ bias-pull-down;
+ };
+
+ pm8921_l8: l8 {
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3100000>;
+ bias-pull-down;
+ };
+
+ pm8921_l9: l9 {
+ regulator-min-microvolt = <2850000>;
+ regulator-max-microvolt = <2850000>;
+ bias-pull-down;
+ };
+
+ pm8921_l10: l10 {
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3000000>;
+ bias-pull-down;
+ };
+
+ pm8921_l11: l11 {
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <3300000>;
+ bias-pull-down;
+ };
+
+ pm8921_l12: l12 {
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ bias-pull-down;
+ };
+
+ pm8921_l14: l14 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ bias-pull-down;
+ };
+
+ pm8921_l15: l15 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <2950000>;
+ bias-pull-down;
+ };
+
+ pm8921_l16: l16 {
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <3000000>;
+ bias-pull-down;
+ };
+
+ pm8921_l17: l17 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
+ bias-pull-down;
+ };
+
+ pm8921_l18: l18 {
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1500000>;
+ bias-pull-down;
+ };
+
+ pm8921_l21: l21 {
+ regulator-min-microvolt = <1900000>;
+ regulator-max-microvolt = <1900000>;
+ bias-pull-down;
+ };
+
+ pm8921_l22: l22 {
+ regulator-min-microvolt = <2750000>;
+ regulator-max-microvolt = <2750000>;
+ bias-pull-down;
+ };
+
+ pm8921_l23: l23 {
+ regulator-always-on;
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ bias-pull-down;
+ };
+
+ pm8921_l24: l24 {
+ regulator-min-microvolt = <750000>;
+ regulator-max-microvolt = <1150000>;
+ bias-pull-down;
+ };
+
+ pm8921_l25: l25 {
+ regulator-always-on;
+ regulator-min-microvolt = <1225000>;
+ regulator-max-microvolt = <1225000>;
+ bias-pull-down;
+ };
+
+ /* Low Voltage Switch */
+ pm8921_lvs1: lvs1 {
+ bias-pull-down;
+ };
+
+ pm8921_lvs2: lvs2 {
+ bias-pull-down;
+ };
+
+ pm8921_lvs3: lvs3 {
+ bias-pull-down;
+ };
+
+ pm8921_lvs4: lvs4 {
+ bias-pull-down;
+ };
+
+ pm8921_lvs5: lvs5 {
+ bias-pull-down;
+ };
+
+ pm8921_lvs6: lvs6 {
+ bias-pull-down;
+ };
+
+ pm8921_lvs7: lvs7 {
+ bias-pull-down;
+ };
+
+ pm8921_ncp: ncp {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ qcom,switch-mode-frequency = <1600000>;
+ };
+ };
+ };
+
+ gsbi@16000000 {
+ status = "ok";
+ qcom,mode = <GSBI_PROT_SPI>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi1_default>;
+ spi@16080000 {
+ status = "ok";
+ };
+ };
+
+ pinctrl@800000 {
+ spi1_default: spi1_default {
+ mux {
+ pins = "gpio6", "gpio7", "gpio9";
+ function = "gsbi1";
+ };
+
+ mosi {
+ pins = "gpio6";
+ drive-strength = <12>;
+ bias-disable;
+ };
+
+ miso {
+ pins = "gpio7";
+ drive-strength = <12>;
+ bias-disable;
+ };
+
+ cs {
+ pins = "gpio8";
+ drive-strength = <12>;
+ bias-disable;
+ output-low;
+ };
+
+ clk {
+ pins = "gpio9";
+ drive-strength = <12>;
+ bias-disable;
+ };
+ };
+ };
+
+ usb@12500000 {
+ status = "okay";
+ dr_mode = "otg";
+
+ ulpi {
+ phy {
+ v3p3-supply = <&pm8921_l3>;
+ v1p8-supply = <&pm8921_l4>;
+ };
+ };
+ };
+ };
+};
diff --git a/arch/arm/boot/dts/qcom-msm8960.dtsi b/arch/arm/boot/dts/qcom-msm8960.dtsi
index 0e099aa7c889..2ed969785b78 100644
--- a/arch/arm/boot/dts/qcom-msm8960.dtsi
+++ b/arch/arm/boot/dts/qcom-msm8960.dtsi
@@ -58,7 +58,7 @@ cpu-pmu {
};

clocks {
- cxo_board {
+ cxo_board: cxo-board {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <19200000>;
--
2.25.1

2022-08-09 01:15:37

by Rudraksha Gupta

[permalink] [raw]
Subject: [PATCH v2 1/2] ARM: msm8960: Rename cxo_board to cxo-board and add alias

This patch renames cxo_board to be up to date with the current naming
style. It also adds an alias.

Signed-off-by: Rudraksha Gupta <[email protected]>
---
v2:
- Group the correct changes together

arch/arm/boot/dts/qcom-msm8960.dtsi | 2 +-
drivers/clk/qcom/gcc-msm8960.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/boot/dts/qcom-msm8960.dtsi b/arch/arm/boot/dts/qcom-msm8960.dtsi
index 0e099aa7c889..2ed969785b78 100644
--- a/arch/arm/boot/dts/qcom-msm8960.dtsi
+++ b/arch/arm/boot/dts/qcom-msm8960.dtsi
@@ -58,7 +58,7 @@ cpu-pmu {
};

clocks {
- cxo_board {
+ cxo_board: cxo-board {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <19200000>;
diff --git a/drivers/clk/qcom/gcc-msm8960.c b/drivers/clk/qcom/gcc-msm8960.c
index 051745ef99c8..56ce05a846dd 100644
--- a/drivers/clk/qcom/gcc-msm8960.c
+++ b/drivers/clk/qcom/gcc-msm8960.c
@@ -3624,7 +3624,7 @@ static int gcc_msm8960_probe(struct platform_device *pdev)
if (!match)
return -EINVAL;

- ret = qcom_cc_register_board_clk(dev, "cxo_board", "cxo", 19200000);
+ ret = qcom_cc_register_board_clk(dev, "cxo-board", "cxo", 19200000);
if (ret)
return ret;

--
2.25.1

2022-08-09 05:34:17

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v2 1/2] ARM: msm8960: Rename cxo_board to cxo-board and add alias

On 09/08/2022 03:02, Rudraksha Gupta wrote:
> This patch renames cxo_board to be up to date with the current naming
> style. It also adds an alias.

Same comment as v1.

Additionally you do not explain why you are doing it.

>
> Signed-off-by: Rudraksha Gupta <[email protected]>
> ---
> v2:
> - Group the correct changes together

Don't link new patchsets to some other threads.
>
> arch/arm/boot/dts/qcom-msm8960.dtsi | 2 +-
> drivers/clk/qcom/gcc-msm8960.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/boot/dts/qcom-msm8960.dtsi b/arch/arm/boot/dts/qcom-msm8960.dtsi
> index 0e099aa7c889..2ed969785b78 100644
> --- a/arch/arm/boot/dts/qcom-msm8960.dtsi
> +++ b/arch/arm/boot/dts/qcom-msm8960.dtsi
> @@ -58,7 +58,7 @@ cpu-pmu {
> };
>
> clocks {
> - cxo_board {
> + cxo_board: cxo-board {
> compatible = "fixed-clock";
> #clock-cells = <0>;
> clock-frequency = <19200000>;
> diff --git a/drivers/clk/qcom/gcc-msm8960.c b/drivers/clk/qcom/gcc-msm8960.c
> index 051745ef99c8..56ce05a846dd 100644
> --- a/drivers/clk/qcom/gcc-msm8960.c
> +++ b/drivers/clk/qcom/gcc-msm8960.c
> @@ -3624,7 +3624,7 @@ static int gcc_msm8960_probe(struct platform_device *pdev)
> if (!match)
> return -EINVAL;
>
> - ret = qcom_cc_register_board_clk(dev, "cxo_board", "cxo", 19200000);
> + ret = qcom_cc_register_board_clk(dev, "cxo-board", "cxo", 19200000);


My comment from v1 still applies - this does not match subsystem.
Additionally DTS change and driver change *cannot* go together.
Basically your commit is non-bisectable which is indication it is not
correct approach.

Best regards,
Krzysztof

2022-08-09 05:38:25

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH 1/2] ARM: msm8960: Rename cxo_board to cxo-board and add alias

On 09/08/2022 02:47, Rudraksha Gupta wrote:
> This patch renames cxo_board to be up to date with the current naming
> style. It also adds an alias

Do not use "This commit/patch".
https://elixir.bootlin.com/linux/v5.17.1/source/Documentation/process/submitting-patches.rst#L95

>
> Signed-off-by: Rudraksha Gupta <[email protected]>
> ---
> arch/arm/boot/dts/Makefile | 1 +
> drivers/clk/qcom/gcc-msm8960.c | 2 +-
> 2 files changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 05d8aef6e5d2..d55f196ad733 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -1049,6 +1049,7 @@ dtb-$(CONFIG_ARCH_QCOM) += \
> qcom-msm8660-surf.dtb \
> qcom-msm8916-samsung-serranove.dtb \
> qcom-msm8960-cdp.dtb \
> + qcom-msm8960-samsung-expressatt.dtb \

This does not look related at all.

> qcom-msm8974-lge-nexus5-hammerhead.dtb \
> qcom-msm8974-sony-xperia-rhine-amami.dtb \
> qcom-msm8974-sony-xperia-rhine-honami.dtb \
> diff --git a/drivers/clk/qcom/gcc-msm8960.c b/drivers/clk/qcom/gcc-msm8960.c
> index 051745ef99c8..56ce05a846dd 100644
> --- a/drivers/clk/qcom/gcc-msm8960.c
> +++ b/drivers/clk/qcom/gcc-msm8960.c
> @@ -3624,7 +3624,7 @@ static int gcc_msm8960_probe(struct platform_device *pdev)
> if (!match)
> return -EINVAL;
>
> - ret = qcom_cc_register_board_clk(dev, "cxo_board", "cxo", 19200000);
> + ret = qcom_cc_register_board_clk(dev, "cxo-board", "cxo", 19200000);

... and this does not look related to subject prefix.

Best regards,
Krzysztof

2022-08-10 20:23:23

by Bjorn Andersson

[permalink] [raw]
Subject: Re: [PATCH v2 1/2] ARM: msm8960: Rename cxo_board to cxo-board and add alias

On Mon 08 Aug 17:02 PDT 2022, Rudraksha Gupta wrote:

> This patch renames cxo_board to be up to date with the current naming
> style. It also adds an alias.
>
> Signed-off-by: Rudraksha Gupta <[email protected]>
> ---
> v2:
> - Group the correct changes together
>
> arch/arm/boot/dts/qcom-msm8960.dtsi | 2 +-
> drivers/clk/qcom/gcc-msm8960.c | 2 +-

Clock and dts patches goes through two different paths towards mainline,
so they should be separated.

> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/boot/dts/qcom-msm8960.dtsi b/arch/arm/boot/dts/qcom-msm8960.dtsi
> index 0e099aa7c889..2ed969785b78 100644
> --- a/arch/arm/boot/dts/qcom-msm8960.dtsi
> +++ b/arch/arm/boot/dts/qcom-msm8960.dtsi
> @@ -58,7 +58,7 @@ cpu-pmu {
> };
>
> clocks {
> - cxo_board {
> + cxo_board: cxo-board {
> compatible = "fixed-clock";
> #clock-cells = <0>;
> clock-frequency = <19200000>;
> diff --git a/drivers/clk/qcom/gcc-msm8960.c b/drivers/clk/qcom/gcc-msm8960.c
> index 051745ef99c8..56ce05a846dd 100644
> --- a/drivers/clk/qcom/gcc-msm8960.c
> +++ b/drivers/clk/qcom/gcc-msm8960.c
> @@ -3624,7 +3624,7 @@ static int gcc_msm8960_probe(struct platform_device *pdev)
> if (!match)
> return -EINVAL;
>
> - ret = qcom_cc_register_board_clk(dev, "cxo_board", "cxo", 19200000);
> + ret = qcom_cc_register_board_clk(dev, "cxo-board", "cxo", 19200000);

This breaks compatibility with existing DTB files.

What you probably want is to make sure that any clocks with parent name
of "cxo", should have a .fw_name = "cxo", then you can make a
phandle-based reference in DT and these global names doesn't matter (and
in the end we can remove this board_clk from the driver).

Regards,
Bjorn

> if (ret)
> return ret;
>
> --
> 2.25.1
>

2022-08-11 02:59:31

by Rudraksha Gupta

[permalink] [raw]
Subject: Re: [PATCH v2 1/2] ARM: msm8960: Rename cxo_board to cxo-board and add alias

> Clock and dts patches goes through two different paths towards mainline,

> so they should be separated.

Gotcha, thanks. I will do that.


> This breaks compatibility with existing DTB files.

> What you probably want is to make sure that any clocks with parent name

> of "cxo", should have a .fw_name = "cxo", then you can make a

> phandle-based reference in DT and these global names doesn't matter (and

> in the end we can remove this board_clk from the driver).

Ah, I see. If I understand correctly, it should be something like this,
right?
https://github.com/torvalds/linux/blob/master/drivers/clk/qcom/gcc-msm8996.c#L169-L172

2022-08-29 22:07:55

by Bjorn Andersson

[permalink] [raw]
Subject: Re: [PATCH v2 1/2] ARM: msm8960: Rename cxo_board to cxo-board and add alias

On Wed, Aug 10, 2022 at 10:51:51PM -0400, Rudraksha Gupta wrote:
> > Clock and dts patches goes through two different paths towards mainline,
>
> > so they should be separated.
>
> Gotcha, thanks. I will do that.
>
>
> > This breaks compatibility with existing DTB files.
>
> > What you probably want is to make sure that any clocks with parent name
>
> > of "cxo", should have a .fw_name = "cxo", then you can make a
>
> > phandle-based reference in DT and these global names doesn't matter (and
>
> > in the end we can remove this board_clk from the driver).
>
> Ah, I see. If I understand correctly, it should be something like this,
> right?
> https://github.com/torvalds/linux/blob/master/drivers/clk/qcom/gcc-msm8996.c#L169-L172

Correct, this will try to find the clock by clock-names of "cxo" and if
not found fall back to do a lookup globally just on the name "xo_board".

So it seems making .name "cxo_board" should handle both cases nicely.

Regards,
Bjorn

2023-02-21 06:40:48

by Rudraksha Gupta

[permalink] [raw]
Subject: Re: [PATCH v2 1/2] ARM: msm8960: Rename cxo_board to cxo-board and add alias

Hello,


So I'm trying to add a cxo-board node to my dts, however the current
implementation seems like it wants cxo_board. It was recommended a while
ago that I refactor gcc-msm8960.c to be more like
https://github.com/torvalds/linux/blob/master/drivers/clk/qcom/gcc-msm8996.c#L36
. However, I have a couple of questions:

- The xo struct that I listed above is listed in another struct
https://github.com/torvalds/linux/blob/master/drivers/clk/qcom/gcc-msm8996.c#L3408
which is listed in the SoC desc struct
https://github.com/torvalds/linux/blob/master/drivers/clk/qcom/gcc-msm8996.c#L3818
. My question is that even though gcc-msm8960.c has an msm8960/apq8064
desc struct, it doesn't have anything like gcc_msm8996_hws. How would I
know what goes in a hypothetical gcc_(msm8960/apq8064)_hws struct? I'm
assuming that all I need in the hw struct is the pxo and cxo listed here
https://github.com/torvalds/linux/blob/master/drivers/clk/qcom/gcc-msm8960.c#L3727
however I'm not 100% sure how to verify this. Would anything else go
into a hypothetical gcc_(msm8960/apq8064)_hws struct?

- Is there documentation on how the gcc-<soc> files work? I'm still
quite new to contributing to the Linux kernel and would like to learn
more about the modern way to format these files and to learn more about
how they work in general


Thanks,

Rudraksha