Commit 45038884 authored by Arnd Bergmann's avatar Arnd Bergmann

Merge tag 'samsung-dt64-6.8-2' of...

Merge tag 'samsung-dt64-6.8-2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/dt

Samsung DTS ARM64 changes for v6.8, part two

1. Tesla FSD: Add Multi Format Codec (MFC) device nodes, for accelerated
   video de/encoding.

2. Add initial Google Tensor GS101 SoC support. The GS101 SoC can be
   found on Google Pixel 6 phones.  Currently the DTS brings only basic
   support: core clock controllers, pin controllers, serial, watchdog
   and ARM core blocks.

* tag 'samsung-dt64-6.8-2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
  MAINTAINERS: adjust file entry in GOOGLE TENSOR SoC SUPPORT
  MAINTAINERS: add entry for Google Tensor SoC
  arm64: dts: exynos: google: Add initial Oriole/pixel 6 board support
  arm64: dts: exynos: google: Add initial Google gs101 SoC support
  dt-bindings: arm: google: Add bindings for Google ARM platforms
  arm64: dts: fsd: Add MFC related DT enteries

Link: https://lore.kernel.org/r/20231220084722.22149-2-krzysztof.kozlowski@linaro.orgSigned-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents 73ec2720 d0da0de3
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/google.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Google Tensor platforms
maintainers:
- Peter Griffin <peter.griffin@linaro.org>
description: |
ARM platforms using SoCs designed by Google branded "Tensor" used in Pixel
devices.
Currently upstream this is devices using "gs101" SoC which is found in Pixel
6, Pixel 6 Pro and Pixel 6a.
Google have a few different names for the SoC:
- Marketing name ("Tensor")
- Codename ("Whitechapel")
- SoC ID ("gs101")
- Die ID ("S5P9845")
Likewise there are a couple of names for the actual device
- Marketing name ("Pixel 6")
- Codename ("Oriole")
Devicetrees should use the lowercased SoC ID and lowercased board codename,
e.g. gs101 and gs101-oriole.
properties:
$nodename:
const: '/'
compatible:
oneOf:
- description: Google Pixel 6 / Oriole
items:
- enum:
- google,gs101-oriole
- const: google,gs101
# Bootloader requires empty ect node to be present
ect:
type: object
additionalProperties: false
required:
- ect
additionalProperties: true
...
......@@ -9007,6 +9007,16 @@ S: Maintained
T: git git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux.git
F: drivers/firmware/google/
GOOGLE TENSOR SoC SUPPORT
M: Peter Griffin <peter.griffin@linaro.org>
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
L: linux-samsung-soc@vger.kernel.org
S: Maintained
F: Documentation/devicetree/bindings/clock/google,gs101-clock.yaml
F: arch/arm64/boot/dts/exynos/google/
F: drivers/clk/samsung/clk-gs101.c
F: include/dt-bindings/clock/google,gs101.h
GPD POCKET FAN DRIVER
M: Hans de Goede <hdegoede@redhat.com>
L: platform-driver-x86@vger.kernel.org
......
# SPDX-License-Identifier: GPL-2.0
subdir-y += google
dtb-$(CONFIG_ARCH_EXYNOS) += \
exynos5433-tm2.dtb \
exynos5433-tm2e.dtb \
......
# SPDX-License-Identifier: GPL-2.0
dtb-$(CONFIG_ARCH_EXYNOS) += \
gs101-oriole.dtb \
// 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 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_bus>;
status = "okay";
};
&usi_uart {
samsung,clkreq-on; /* needed for UART mode */
status = "okay";
};
&watchdog_cl0 {
timeout-sec = <30>;
status = "okay";
};
This diff is collapsed.
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Pinctrl binding constants for GS101
*
* Copyright 2020-2023 Google LLC
*/
#ifndef __DTS_ARM64_SAMSUNG_EXYNOS_GOOGLE_PINCTRL_GS101_H__
#define __DTS_ARM64_SAMSUNG_EXYNOS_GOOGLE_PINCTRL_GS101_H__
#define GS101_PIN_PULL_NONE 0
#define GS101_PIN_PULL_DOWN 1
#define GS101_PIN_PULL_UP 3
/* Pin function in power down mode */
#define GS101_PIN_PDN_OUT0 0
#define GS101_PIN_PDN_OUT1 1
#define GS101_PIN_PDN_INPUT 2
#define GS101_PIN_PDN_PREV 3
/* GS101 drive strengths */
#define GS101_PIN_DRV_2_5_MA 0
#define GS101_PIN_DRV_5_MA 1
#define GS101_PIN_DRV_7_5_MA 2
#define GS101_PIN_DRV_10_MA 3
#define GS101_PIN_FUNC_INPUT 0
#define GS101_PIN_FUNC_OUTPUT 1
#define GS101_PIN_FUNC_2 2
#define GS101_PIN_FUNC_3 3
#define GS101_PIN_FUNC_EINT 0xf
#endif /* __DTS_ARM64_SAMSUNG_EXYNOS_GOOGLE_PINCTRL_GS101_H__ */
This diff is collapsed.
......@@ -342,6 +342,18 @@ fin_pll: clock {
#clock-cells = <0>;
};
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
mfc_left: region@84000000 {
compatible = "shared-dma-pool";
no-map;
reg = <0 0x84000000 0 0x8000000>;
};
};
soc: soc@0 {
compatible = "simple-bus";
#address-cells = <2>;
......@@ -956,6 +968,15 @@ timer@10040000 {
clock-names = "fin_pll", "mct";
};
mfc: mfc@12880000 {
compatible = "tesla,fsd-mfc";
reg = <0x0 0x12880000 0x0 0x10000>;
interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
clock-names = "mfc";
clocks = <&clock_mfc MFC_MFC_IPCLKPORT_ACLK>;
memory-region = <&mfc_left>;
};
ufs: ufs@15120000 {
compatible = "tesla,fsd-ufs";
reg = <0x0 0x15120000 0x0 0x200>, /* 0: HCI standard */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment