Message ID | 20231201160925.3136868-20-peter.griffin@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add minimal Tensor/GS101 SoC support and Oriole/Pixel6 board | expand |
On 12/01/2023, Peter Griffin wrote: > Add initial board support for the Pixel 6 phone code named Oriole. This > has been tested with a minimal busybox initramfs and boots to a shell. > > Signed-off-by: Peter Griffin <peter.griffin@linaro.org> Tested-by: Will McVicker <willmcvicker@google.com> -- Verified boot to a busybox console on my oriole device. Thanks, Will > --- > arch/arm64/boot/dts/exynos/Makefile | 2 + > arch/arm64/boot/dts/exynos/google/Makefile | 4 + > .../boot/dts/exynos/google/gs101-oriole.dts | 105 ++++++++++++++++++ > 3 files changed, 111 insertions(+) > create mode 100644 arch/arm64/boot/dts/exynos/google/Makefile > create mode 100644 arch/arm64/boot/dts/exynos/google/gs101-oriole.dts > > diff --git a/arch/arm64/boot/dts/exynos/Makefile b/arch/arm64/boot/dts/exynos/Makefile > index 6e4ba69268e5..44c24a8ad9e1 100644 > --- a/arch/arm64/boot/dts/exynos/Makefile > +++ b/arch/arm64/boot/dts/exynos/Makefile > @@ -1,4 +1,6 @@ > # SPDX-License-Identifier: GPL-2.0 > +subdir-y += google > + > dtb-$(CONFIG_ARCH_EXYNOS) += \ > exynos5433-tm2.dtb \ > exynos5433-tm2e.dtb \ > diff --git a/arch/arm64/boot/dts/exynos/google/Makefile b/arch/arm64/boot/dts/exynos/google/Makefile > new file mode 100644 > index 000000000000..0a6d5e1fe4ee > --- /dev/null > +++ b/arch/arm64/boot/dts/exynos/google/Makefile > @@ -0,0 +1,4 @@ > +# SPDX-License-Identifier: GPL-2.0 > + > +dtb-$(CONFIG_ARCH_EXYNOS) += \ > + gs101-oriole.dtb \ > diff --git a/arch/arm64/boot/dts/exynos/google/gs101-oriole.dts b/arch/arm64/boot/dts/exynos/google/gs101-oriole.dts > new file mode 100644 > index 000000000000..6abd00fa337e > --- /dev/null > +++ b/arch/arm64/boot/dts/exynos/google/gs101-oriole.dts > @@ -0,0 +1,105 @@ > +// SPDX-License-Identifier: GPL-2.0-only > +/* > + * Oriole Device Tree > + * > + * Copyright 2021-2023 Google,LLC > + * Copyright 2023 Linaro Ltd - <peter.griffin@linaro.org> > + */ > + > +/dts-v1/; > + > +#include <dt-bindings/gpio/gpio.h> > +#include <dt-bindings/input/input.h> > +#include "gs101-pinctrl.h" > +#include "gs101.dtsi" > + > +/ { > + model = "Oriole"; > + compatible = "google,gs101-oriole", "google,gs101"; > + > + aliases { > + serial0 = &serial_0; > + }; > + > + chosen { > + /* Bootloader expects bootargs specified otherwise it crashes */ > + bootargs = ""; > + stdout-path = &serial_0; > + }; > + > + gpio-keys { > + compatible = "gpio-keys"; > + pinctrl-names = "default"; > + pinctrl-0 = <&key_voldown>, <&key_volup>, <&key_power>; > + > + button-vol-down { > + label = "KEY_VOLUMEDOWN"; > + linux,code = <KEY_VOLUMEDOWN>; > + gpios = <&gpa7 3 GPIO_ACTIVE_LOW>; > + wakeup-source; > + }; > + > + button-vol-up { > + label = "KEY_VOLUMEUP"; > + linux,code = <KEY_VOLUMEUP>; > + gpios = <&gpa8 1 GPIO_ACTIVE_LOW>; > + wakeup-source; > + }; > + > + button-power { > + label = "KEY_POWER"; > + linux,code = <KEY_POWER>; > + gpios = <&gpa10 1 GPIO_ACTIVE_LOW>; > + wakeup-source; > + }; > + }; > +}; > + > +&ext_24_5m { > + clock-frequency = <24576000>; > +}; > + > +&ext_200m { > + clock-frequency = <200000000>; > +}; > + > +&pinctrl_far_alive { > + key_voldown: key-voldown-pins { > + samsung,pins = "gpa7-3"; > + samsung,pin-function = <GS101_PIN_FUNC_EINT>; > + samsung,pin-pud = <GS101_PIN_PULL_NONE>; > + samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>; > + }; > + > + key_volup: key-volup-pins { > + samsung,pins = "gpa8-1"; > + samsung,pin-function = <GS101_PIN_FUNC_EINT>; > + samsung,pin-pud = <GS101_PIN_PULL_NONE>; > + samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>; > + }; > +}; > + > +&pinctrl_gpio_alive { > + key_power: key-power-pins { > + samsung,pins = "gpa10-1"; > + samsung,pin-function = <GS101_PIN_FUNC_EINT>; > + samsung,pin-pud = <GS101_PIN_PULL_NONE>; > + samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>; > + }; > +}; > + > +&serial_0 { > + status = "okay"; > + pinctrl-names = "default"; > + pinctrl-0 = <&uart0_bus>; > +}; > + > +&usi_uart { > + status = "okay"; > + samsung,clkreq-on; /* needed for UART mode */ > +}; > + > +&watchdog_cl0 { > + timeout-sec = <30>; > + status = "okay"; > +}; > -- > 2.43.0.rc2.451.g8631bc7472-goog >
On Fri, Dec 1, 2023 at 10:11 AM Peter Griffin <peter.griffin@linaro.org> wrote: > > Add initial board support for the Pixel 6 phone code named Oriole. This > has been tested with a minimal busybox initramfs and boots to a shell. > > Signed-off-by: Peter Griffin <peter.griffin@linaro.org> > --- > arch/arm64/boot/dts/exynos/Makefile | 2 + > arch/arm64/boot/dts/exynos/google/Makefile | 4 + > .../boot/dts/exynos/google/gs101-oriole.dts | 105 ++++++++++++++++++ > 3 files changed, 111 insertions(+) > create mode 100644 arch/arm64/boot/dts/exynos/google/Makefile > create mode 100644 arch/arm64/boot/dts/exynos/google/gs101-oriole.dts > > diff --git a/arch/arm64/boot/dts/exynos/Makefile b/arch/arm64/boot/dts/exynos/Makefile > index 6e4ba69268e5..44c24a8ad9e1 100644 > --- a/arch/arm64/boot/dts/exynos/Makefile > +++ b/arch/arm64/boot/dts/exynos/Makefile > @@ -1,4 +1,6 @@ > # SPDX-License-Identifier: GPL-2.0 > +subdir-y += google > + > dtb-$(CONFIG_ARCH_EXYNOS) += \ > exynos5433-tm2.dtb \ > exynos5433-tm2e.dtb \ > diff --git a/arch/arm64/boot/dts/exynos/google/Makefile b/arch/arm64/boot/dts/exynos/google/Makefile > new file mode 100644 > index 000000000000..0a6d5e1fe4ee > --- /dev/null > +++ b/arch/arm64/boot/dts/exynos/google/Makefile > @@ -0,0 +1,4 @@ > +# SPDX-License-Identifier: GPL-2.0 > + > +dtb-$(CONFIG_ARCH_EXYNOS) += \ > + gs101-oriole.dtb \ > diff --git a/arch/arm64/boot/dts/exynos/google/gs101-oriole.dts b/arch/arm64/boot/dts/exynos/google/gs101-oriole.dts > new file mode 100644 > index 000000000000..6abd00fa337e > --- /dev/null > +++ b/arch/arm64/boot/dts/exynos/google/gs101-oriole.dts > @@ -0,0 +1,105 @@ > +// SPDX-License-Identifier: GPL-2.0-only > +/* > + * Oriole Device Tree > + * > + * Copyright 2021-2023 Google,LLC Space after comma. Maybe also make this line consistent for all added files. Checking existing files, it's usually spelled "Copyright (C) <years>, Google LLC." Btw, I forgot to mention in my review for PATCH #18: please double check the commit message, there are some issues with punctuation there. > + * Copyright 2023 Linaro Ltd - <peter.griffin@linaro.org> > + */ > + > +/dts-v1/; > + > +#include <dt-bindings/gpio/gpio.h> > +#include <dt-bindings/input/input.h> > +#include "gs101-pinctrl.h" > +#include "gs101.dtsi" > + > +/ { > + model = "Oriole"; > + compatible = "google,gs101-oriole", "google,gs101"; > + > + aliases { > + serial0 = &serial_0; > + }; > + > + chosen { > + /* Bootloader expects bootargs specified otherwise it crashes */ Just wanted to say: I think you are doing a great job with this platform, and I can only imagine how hard it can be when you can't actually tinker with the bootloader source code. But I do appreciate that you was able to minimize stuff like earlycon, ect, etc :) And this one actually LGTM. Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org> > + bootargs = ""; > + stdout-path = &serial_0; > + }; > + > + gpio-keys { > + compatible = "gpio-keys"; > + pinctrl-names = "default"; > + pinctrl-0 = <&key_voldown>, <&key_volup>, <&key_power>; > + > + button-vol-down { > + label = "KEY_VOLUMEDOWN"; > + linux,code = <KEY_VOLUMEDOWN>; > + gpios = <&gpa7 3 GPIO_ACTIVE_LOW>; > + wakeup-source; > + }; > + > + button-vol-up { > + label = "KEY_VOLUMEUP"; > + linux,code = <KEY_VOLUMEUP>; > + gpios = <&gpa8 1 GPIO_ACTIVE_LOW>; > + wakeup-source; > + }; > + > + button-power { > + label = "KEY_POWER"; > + linux,code = <KEY_POWER>; > + gpios = <&gpa10 1 GPIO_ACTIVE_LOW>; > + wakeup-source; > + }; > + }; > +}; > + > +&ext_24_5m { > + clock-frequency = <24576000>; > +}; > + > +&ext_200m { > + clock-frequency = <200000000>; > +}; > + > +&pinctrl_far_alive { > + key_voldown: key-voldown-pins { > + samsung,pins = "gpa7-3"; > + samsung,pin-function = <GS101_PIN_FUNC_EINT>; > + samsung,pin-pud = <GS101_PIN_PULL_NONE>; > + samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>; > + }; > + > + key_volup: key-volup-pins { > + samsung,pins = "gpa8-1"; > + samsung,pin-function = <GS101_PIN_FUNC_EINT>; > + samsung,pin-pud = <GS101_PIN_PULL_NONE>; > + samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>; > + }; > +}; > + > +&pinctrl_gpio_alive { > + key_power: key-power-pins { > + samsung,pins = "gpa10-1"; > + samsung,pin-function = <GS101_PIN_FUNC_EINT>; > + samsung,pin-pud = <GS101_PIN_PULL_NONE>; > + samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>; > + }; > +}; > + > +&serial_0 { > + status = "okay"; > + pinctrl-names = "default"; > + pinctrl-0 = <&uart0_bus>; > +}; > + > +&usi_uart { > + status = "okay"; > + samsung,clkreq-on; /* needed for UART mode */ > +}; > + > +&watchdog_cl0 { > + timeout-sec = <30>; > + status = "okay"; > +}; > -- > 2.43.0.rc2.451.g8631bc7472-goog >
Hi Sam, On Sat, 2 Dec 2023 at 02:28, Sam Protsenko <semen.protsenko@linaro.org> wrote: > > On Fri, Dec 1, 2023 at 10:11 AM Peter Griffin <peter.griffin@linaro.org> wrote: > > > > Add initial board support for the Pixel 6 phone code named Oriole. This > > has been tested with a minimal busybox initramfs and boots to a shell. > > > > Signed-off-by: Peter Griffin <peter.griffin@linaro.org> > > --- > > arch/arm64/boot/dts/exynos/Makefile | 2 + > > arch/arm64/boot/dts/exynos/google/Makefile | 4 + > > .../boot/dts/exynos/google/gs101-oriole.dts | 105 ++++++++++++++++++ > > 3 files changed, 111 insertions(+) > > create mode 100644 arch/arm64/boot/dts/exynos/google/Makefile > > create mode 100644 arch/arm64/boot/dts/exynos/google/gs101-oriole.dts > > > > diff --git a/arch/arm64/boot/dts/exynos/Makefile b/arch/arm64/boot/dts/exynos/Makefile > > index 6e4ba69268e5..44c24a8ad9e1 100644 > > --- a/arch/arm64/boot/dts/exynos/Makefile > > +++ b/arch/arm64/boot/dts/exynos/Makefile > > @@ -1,4 +1,6 @@ > > # SPDX-License-Identifier: GPL-2.0 > > +subdir-y += google > > + > > dtb-$(CONFIG_ARCH_EXYNOS) += \ > > exynos5433-tm2.dtb \ > > exynos5433-tm2e.dtb \ > > diff --git a/arch/arm64/boot/dts/exynos/google/Makefile b/arch/arm64/boot/dts/exynos/google/Makefile > > new file mode 100644 > > index 000000000000..0a6d5e1fe4ee > > --- /dev/null > > +++ b/arch/arm64/boot/dts/exynos/google/Makefile > > @@ -0,0 +1,4 @@ > > +# SPDX-License-Identifier: GPL-2.0 > > + > > +dtb-$(CONFIG_ARCH_EXYNOS) += \ > > + gs101-oriole.dtb \ > > diff --git a/arch/arm64/boot/dts/exynos/google/gs101-oriole.dts b/arch/arm64/boot/dts/exynos/google/gs101-oriole.dts > > new file mode 100644 > > index 000000000000..6abd00fa337e > > --- /dev/null > > +++ b/arch/arm64/boot/dts/exynos/google/gs101-oriole.dts > > @@ -0,0 +1,105 @@ > > +// SPDX-License-Identifier: GPL-2.0-only > > +/* > > + * Oriole Device Tree > > + * > > + * Copyright 2021-2023 Google,LLC > > Space after comma. Maybe also make this line consistent for all added > files. Checking existing files, it's usually spelled "Copyright (C) > <years>, Google LLC." I've made it match the other files I've added in v6 (by removing the ,). There seems to be a lot of variation upstream as to whether a . is used at the end or not so I've left that as it was. > > Btw, I forgot to mention in my review for PATCH #18: please double > check the commit message, there are some issues with punctuation > there. Ok, I will check it. > > > + * Copyright 2023 Linaro Ltd - <peter.griffin@linaro.org> > > + */ > > + > > +/dts-v1/; > > + > > +#include <dt-bindings/gpio/gpio.h> > > +#include <dt-bindings/input/input.h> > > +#include "gs101-pinctrl.h" > > +#include "gs101.dtsi" > > + > > +/ { > > + model = "Oriole"; > > + compatible = "google,gs101-oriole", "google,gs101"; > > + > > + aliases { > > + serial0 = &serial_0; > > + }; > > + > > + chosen { > > + /* Bootloader expects bootargs specified otherwise it crashes */ > > Just wanted to say: I think you are doing a great job with this > platform, and I can only imagine how hard it can be when you can't > actually tinker with the bootloader source code. But I do appreciate > that you was able to minimize stuff like earlycon, ect, etc :) And > this one actually LGTM. > > Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org> Thanks, much appreciated! regards, Peter.
diff --git a/arch/arm64/boot/dts/exynos/Makefile b/arch/arm64/boot/dts/exynos/Makefile index 6e4ba69268e5..44c24a8ad9e1 100644 --- a/arch/arm64/boot/dts/exynos/Makefile +++ b/arch/arm64/boot/dts/exynos/Makefile @@ -1,4 +1,6 @@ # SPDX-License-Identifier: GPL-2.0 +subdir-y += google + dtb-$(CONFIG_ARCH_EXYNOS) += \ exynos5433-tm2.dtb \ exynos5433-tm2e.dtb \ diff --git a/arch/arm64/boot/dts/exynos/google/Makefile b/arch/arm64/boot/dts/exynos/google/Makefile new file mode 100644 index 000000000000..0a6d5e1fe4ee --- /dev/null +++ b/arch/arm64/boot/dts/exynos/google/Makefile @@ -0,0 +1,4 @@ +# SPDX-License-Identifier: GPL-2.0 + +dtb-$(CONFIG_ARCH_EXYNOS) += \ + gs101-oriole.dtb \ diff --git a/arch/arm64/boot/dts/exynos/google/gs101-oriole.dts b/arch/arm64/boot/dts/exynos/google/gs101-oriole.dts new file mode 100644 index 000000000000..6abd00fa337e --- /dev/null +++ b/arch/arm64/boot/dts/exynos/google/gs101-oriole.dts @@ -0,0 +1,105 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Oriole Device Tree + * + * Copyright 2021-2023 Google,LLC + * Copyright 2023 Linaro Ltd - <peter.griffin@linaro.org> + */ + +/dts-v1/; + +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> +#include "gs101-pinctrl.h" +#include "gs101.dtsi" + +/ { + model = "Oriole"; + compatible = "google,gs101-oriole", "google,gs101"; + + aliases { + serial0 = &serial_0; + }; + + chosen { + /* Bootloader expects bootargs specified otherwise it crashes */ + bootargs = ""; + stdout-path = &serial_0; + }; + + gpio-keys { + compatible = "gpio-keys"; + pinctrl-names = "default"; + pinctrl-0 = <&key_voldown>, <&key_volup>, <&key_power>; + + button-vol-down { + label = "KEY_VOLUMEDOWN"; + linux,code = <KEY_VOLUMEDOWN>; + gpios = <&gpa7 3 GPIO_ACTIVE_LOW>; + wakeup-source; + }; + + button-vol-up { + label = "KEY_VOLUMEUP"; + linux,code = <KEY_VOLUMEUP>; + gpios = <&gpa8 1 GPIO_ACTIVE_LOW>; + wakeup-source; + }; + + button-power { + label = "KEY_POWER"; + linux,code = <KEY_POWER>; + gpios = <&gpa10 1 GPIO_ACTIVE_LOW>; + wakeup-source; + }; + }; +}; + +&ext_24_5m { + clock-frequency = <24576000>; +}; + +&ext_200m { + clock-frequency = <200000000>; +}; + +&pinctrl_far_alive { + key_voldown: key-voldown-pins { + samsung,pins = "gpa7-3"; + samsung,pin-function = <GS101_PIN_FUNC_EINT>; + samsung,pin-pud = <GS101_PIN_PULL_NONE>; + samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>; + }; + + key_volup: key-volup-pins { + samsung,pins = "gpa8-1"; + samsung,pin-function = <GS101_PIN_FUNC_EINT>; + samsung,pin-pud = <GS101_PIN_PULL_NONE>; + samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>; + }; +}; + +&pinctrl_gpio_alive { + key_power: key-power-pins { + samsung,pins = "gpa10-1"; + samsung,pin-function = <GS101_PIN_FUNC_EINT>; + samsung,pin-pud = <GS101_PIN_PULL_NONE>; + samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>; + }; +}; + +&serial_0 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&uart0_bus>; +}; + +&usi_uart { + status = "okay"; + samsung,clkreq-on; /* needed for UART mode */ +}; + +&watchdog_cl0 { + timeout-sec = <30>; + status = "okay"; +};
Add initial board support for the Pixel 6 phone code named Oriole. This has been tested with a minimal busybox initramfs and boots to a shell. Signed-off-by: Peter Griffin <peter.griffin@linaro.org> --- arch/arm64/boot/dts/exynos/Makefile | 2 + arch/arm64/boot/dts/exynos/google/Makefile | 4 + .../boot/dts/exynos/google/gs101-oriole.dts | 105 ++++++++++++++++++ 3 files changed, 111 insertions(+) create mode 100644 arch/arm64/boot/dts/exynos/google/Makefile create mode 100644 arch/arm64/boot/dts/exynos/google/gs101-oriole.dts