[PATCH v3 17/20] arm64: dts: google: Add initial Google gs101 SoC support
Krzysztof Kozlowski
krzysztof.kozlowski at linaro.org
Wed Oct 11 23:40:02 PDT 2023
On 11/10/2023 20:48, Peter Griffin wrote:
...
> diff --git a/arch/arm64/boot/dts/google/gs101.dtsi b/arch/arm64/boot/dts/google/gs101.dtsi
> new file mode 100644
> index 000000000000..37fb0a4dc8d3
> --- /dev/null
> +++ b/arch/arm64/boot/dts/google/gs101.dtsi
> @@ -0,0 +1,504 @@
> +// SPDX-License-Identifier: GPL-2.0-only
> +/*
> + * GS101 SoC
> + *
> + * Copyright 2019-2023 Google LLC
> + *
> + */
> +
> +#include <dt-bindings/clock/google,gs101.h>
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/interrupt-controller/arm-gic.h>
> +
> +/ {
> + compatible = "google,gs101";
> + #address-cells = <2>;
> + #size-cells = <1>;
> +
> + interrupt-parent = <&gic>;
> +
> + aliases {
> + pinctrl0 = &pinctrl_0;
> + pinctrl1 = &pinctrl_1;
> + pinctrl2 = &pinctrl_2;
> + pinctrl3 = &pinctrl_3;
> + pinctrl4 = &pinctrl_4;
> + pinctrl5 = &pinctrl_5;
> + pinctrl6 = &pinctrl_6;
> + pinctrl7 = &pinctrl_7;
> + serial0 = &serial_0;
> + };
> +
> + arm-pmu {
pmu-0
> + compatible = "arm,armv8-pmuv3";
> + interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
> + };
> +
> + dsu-pmu-0 {
pmu-1
> + compatible = "arm,dsu-pmu";
> + interrupts = <GIC_SPI 257 IRQ_TYPE_LEVEL_HIGH>;
> + cpus = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>,
> + <&cpu4>, <&cpu5>, <&cpu6>, <&cpu7>;
> + };
> +
> + /* TODO replace with CCF clock */
> + dummy_clk: oscillator {
> + compatible = "fixed-clock";
> + #clock-cells = <0>;
> + clock-frequency = <12345>;
> + clock-output-names = "pclk";
> + };
> +
> + cpus {
> + #address-cells = <2>;
> + #size-cells = <0>;
> +
> + cpu-map {
> + cluster0 {
> + core0 {
> + cpu = <&cpu0>;
> + };
> + core1 {
> + cpu = <&cpu1>;
> + };
> + core2 {
> + cpu = <&cpu2>;
> + };
> + core3 {
> + cpu = <&cpu3>;
> + };
> + };
> +
> + cluster1 {
> + core0 {
> + cpu = <&cpu4>;
> + };
> + core1 {
> + cpu = <&cpu5>;
> + };
> + };
> +
> + cluster2 {
> + core0 {
> + cpu = <&cpu6>;
> + };
> + core1 {
> + cpu = <&cpu7>;
> + };
> + };
> + };
> +
> + cpu0: cpu at 0 {
> + device_type = "cpu";
> + compatible = "arm,armv8";
> + reg = <0x0 0x0000>;
> + enable-method = "psci";
> + cpu-idle-states = <&ANANKE_CPU_SLEEP>;
> + capacity-dmips-mhz = <250>;
> + dynamic-power-coefficient = <70>;
> + };
> +
> + cpu1: cpu at 100 {
> + device_type = "cpu";
> + compatible = "arm,armv8";
> + reg = <0x0 0x0100>;
> + enable-method = "psci";
> + cpu-idle-states = <&ANANKE_CPU_SLEEP>;
> + capacity-dmips-mhz = <250>;
> + dynamic-power-coefficient = <70>;
> + };
> +
> + cpu2: cpu at 200 {
> + device_type = "cpu";
> + compatible = "arm,armv8";
> + reg = <0x0 0x0200>;
> + enable-method = "psci";
> + cpu-idle-states = <&ANANKE_CPU_SLEEP>;
> + capacity-dmips-mhz = <250>;
> + dynamic-power-coefficient = <70>;
> + };
> +
> + cpu3: cpu at 300 {
> + device_type = "cpu";
> + compatible = "arm,armv8";
> + reg = <0x0 0x0300>;
> + enable-method = "psci";
> + cpu-idle-states = <&ANANKE_CPU_SLEEP>;
> + capacity-dmips-mhz = <250>;
> + dynamic-power-coefficient = <70>;
> + };
> +
> + cpu4: cpu at 400 {
> + device_type = "cpu";
> + compatible = "arm,armv8";
> + reg = <0x0 0x0400>;
> + enable-method = "psci";
> + cpu-idle-states = <&ENYO_CPU_SLEEP>;
> + capacity-dmips-mhz = <620>;
> + dynamic-power-coefficient = <284>;
> + };
> +
> + cpu5: cpu at 500 {
> + device_type = "cpu";
> + compatible = "arm,armv8";
> + reg = <0x0 0x0500>;
> + enable-method = "psci";
> + cpu-idle-states = <&ENYO_CPU_SLEEP>;
> + capacity-dmips-mhz = <620>;
> + dynamic-power-coefficient = <284>;
> + };
> +
> + cpu6: cpu at 600 {
> + device_type = "cpu";
> + compatible = "arm,armv8";
> + reg = <0x0 0x0600>;
> + enable-method = "psci";
> + cpu-idle-states = <&HERA_CPU_SLEEP>;
> + capacity-dmips-mhz = <1024>;
> + dynamic-power-coefficient = <650>;
> + };
> +
> + cpu7: cpu at 700 {
> + device_type = "cpu";
> + compatible = "arm,armv8";
> + reg = <0x0 0x0700>;
> + enable-method = "psci";
> + cpu-idle-states = <&HERA_CPU_SLEEP>;
> + capacity-dmips-mhz = <1024>;
> + dynamic-power-coefficient = <650>;
> + };
> +
> + idle-states {
> + entry-method = "psci";
> +
> + ANANKE_CPU_SLEEP: cpu-ananke-sleep {
> + idle-state-name = "c2";
> + compatible = "arm,idle-state";
> + arm,psci-suspend-param = <0x0010000>;
> + entry-latency-us = <70>;
> + exit-latency-us = <160>;
> + min-residency-us = <2000>;
> + };
> +
> + ENYO_CPU_SLEEP: cpu-enyo-sleep {
> + idle-state-name = "c2";
> + compatible = "arm,idle-state";
> + arm,psci-suspend-param = <0x0010000>;
> + entry-latency-us = <150>;
> + exit-latency-us = <190>;
> + min-residency-us = <2500>;
> + };
> +
> + HERA_CPU_SLEEP: cpu-hera-sleep {
> + idle-state-name = "c2";
> + compatible = "arm,idle-state";
> + arm,psci-suspend-param = <0x0010000>;
> + entry-latency-us = <235>;
> + exit-latency-us = <220>;
> + min-residency-us = <3500>;
> + };
> + };
> + };
> +
> + /* bootloader requires ect node */
> + ect {
This needs bindings.
> + parameter_address = <0x90000000>;
No underscores in property names. Use hyphen.
> + parameter_size = <0x53000>;
No underscores.
> + };
> +
> + ext_24_5m: clock-1 {
> + compatible = "fixed-clock";
> + #clock-cells = <0>;
> + clock-frequency = <24576000>;
> + clock-output-names = "oscclk";
> + };
Best regards,
Krzysztof
More information about the linux-arm-kernel
mailing list