linux-postmarketos-mediatek-mt8183: upgrade to 6.6.16 (MR 4813)
[ci:skip-build]: already built successfully in CI
This commit is contained in:
parent
b73b434423
commit
497374e290
24 changed files with 1252 additions and 1559 deletions
|
@ -1,554 +0,0 @@
|
||||||
based on: https://patchwork.freedesktop.org/patch/482097/
|
|
||||||
adjusted for v6.1: inx_panel_remove returns void now in drivers/gpu/drm/panel/panel-innolux-himax8279d.c
|
|
||||||
|
|
||||||
diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig
|
|
||||||
index ddf5f38e8731..375a67f69230 100644
|
|
||||||
--- a/drivers/gpu/drm/panel/Kconfig
|
|
||||||
+++ b/drivers/gpu/drm/panel/Kconfig
|
|
||||||
@@ -180,6 +180,15 @@ config DRM_PANEL_INNOLUX_EJ030NA
|
|
||||||
320x480 3.0" panel as found in the RS97 V2.1, RG300(non-ips)
|
|
||||||
and LDK handheld gaming consoles.
|
|
||||||
|
|
||||||
+config DRM_PANEL_INNOLUX_HIMAX8279D
|
|
||||||
+ tristate "INX 2081101qfh032011-53g 1200x1920 video panel"
|
|
||||||
+ depends on OF
|
|
||||||
+ depends on DRM_MIPI_DSI
|
|
||||||
+ depends on BACKLIGHT_CLASS_DEVICE
|
|
||||||
+ help
|
|
||||||
+ Say Y here if you want to support for inx 2081101qfh032011-53g
|
|
||||||
+ 1200x1920 video panel.
|
|
||||||
+
|
|
||||||
config DRM_PANEL_INNOLUX_P079ZCA
|
|
||||||
tristate "Innolux P079ZCA panel"
|
|
||||||
depends on OF
|
|
||||||
diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile
|
|
||||||
index 5740911f637c..a57e72dcbb12 100644
|
|
||||||
--- a/drivers/gpu/drm/panel/Makefile
|
|
||||||
+++ b/drivers/gpu/drm/panel/Makefile
|
|
||||||
@@ -16,6 +16,7 @@ obj-$(CONFIG_DRM_PANEL_ILITEK_IL9322) += panel-ilitek-ili9322.o
|
|
||||||
obj-$(CONFIG_DRM_PANEL_ILITEK_ILI9341) += panel-ilitek-ili9341.o
|
|
||||||
obj-$(CONFIG_DRM_PANEL_ILITEK_ILI9881C) += panel-ilitek-ili9881c.o
|
|
||||||
obj-$(CONFIG_DRM_PANEL_INNOLUX_EJ030NA) += panel-innolux-ej030na.o
|
|
||||||
+obj-$(CONFIG_DRM_PANEL_INNOLUX_HIMAX8279D) += panel-innolux-himax8279d.o
|
|
||||||
obj-$(CONFIG_DRM_PANEL_INNOLUX_P079ZCA) += panel-innolux-p079zca.o
|
|
||||||
obj-$(CONFIG_DRM_PANEL_JDI_LT070ME05000) += panel-jdi-lt070me05000.o
|
|
||||||
obj-$(CONFIG_DRM_PANEL_JDI_R63452) += panel-jdi-fhd-r63452.o
|
|
||||||
diff --git a/drivers/gpu/drm/panel/panel-innolux-himax8279d.c b/drivers/gpu/drm/panel/panel-innolux-himax8279d.c
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..6840449548e4
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/drivers/gpu/drm/panel/panel-innolux-himax8279d.c
|
|
||||||
@@ -0,0 +1,513 @@
|
|
||||||
+// SPDX-License-Identifier: GPL-2.0
|
|
||||||
+/*
|
|
||||||
+ * Copyright (c) 2021, Huaqin Telecom Technology Co., Ltd
|
|
||||||
+ * Author: Zhengqiao Xia <xiazhengqiao@huaqin.corp-partner.google.com>
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+#include <linux/delay.h>
|
|
||||||
+#include <linux/gpio/consumer.h>
|
|
||||||
+#include <linux/module.h>
|
|
||||||
+#include <linux/of.h>
|
|
||||||
+#include <linux/of_device.h>
|
|
||||||
+#include <linux/regulator/consumer.h>
|
|
||||||
+
|
|
||||||
+#include <drm/drm_connector.h>
|
|
||||||
+#include <drm/drm_crtc.h>
|
|
||||||
+#include <drm/drm_mipi_dsi.h>
|
|
||||||
+#include <drm/drm_panel.h>
|
|
||||||
+
|
|
||||||
+#include <video/mipi_display.h>
|
|
||||||
+
|
|
||||||
+struct panel_desc {
|
|
||||||
+ const struct drm_display_mode *modes;
|
|
||||||
+ unsigned int bpc;
|
|
||||||
+
|
|
||||||
+ /**
|
|
||||||
+ * @width_mm: width of the panel's active display area
|
|
||||||
+ * @height_mm: height of the panel's active display area
|
|
||||||
+ */
|
|
||||||
+ struct {
|
|
||||||
+ unsigned int width_mm;
|
|
||||||
+ unsigned int height_mm;
|
|
||||||
+ } size;
|
|
||||||
+
|
|
||||||
+ unsigned long mode_flags;
|
|
||||||
+ enum mipi_dsi_pixel_format format;
|
|
||||||
+ const struct panel_init_cmd *init_cmds;
|
|
||||||
+ unsigned int lanes;
|
|
||||||
+ bool discharge_on_disable;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+struct inx_panel {
|
|
||||||
+ struct drm_panel base;
|
|
||||||
+ struct mipi_dsi_device *dsi;
|
|
||||||
+
|
|
||||||
+ const struct panel_desc *desc;
|
|
||||||
+
|
|
||||||
+ enum drm_panel_orientation orientation;
|
|
||||||
+ struct regulator *pp1800;
|
|
||||||
+ struct regulator *avee;
|
|
||||||
+ struct regulator *avdd;
|
|
||||||
+ struct gpio_desc *enable_gpio;
|
|
||||||
+
|
|
||||||
+ bool prepared;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+enum dsi_cmd_type {
|
|
||||||
+ INIT_DCS_CMD,
|
|
||||||
+ DELAY_CMD,
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+struct panel_init_cmd {
|
|
||||||
+ enum dsi_cmd_type type;
|
|
||||||
+ size_t len;
|
|
||||||
+ const char *data;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+#define _INIT_DCS_CMD(...) { \
|
|
||||||
+ .type = INIT_DCS_CMD, \
|
|
||||||
+ .len = sizeof((char[]){__VA_ARGS__}), \
|
|
||||||
+ .data = (char[]){__VA_ARGS__} }
|
|
||||||
+
|
|
||||||
+#define _INIT_DELAY_CMD(...) { \
|
|
||||||
+ .type = DELAY_CMD,\
|
|
||||||
+ .len = sizeof((char[]){__VA_ARGS__}), \
|
|
||||||
+ .data = (char[]){__VA_ARGS__} }
|
|
||||||
+
|
|
||||||
+static const struct panel_init_cmd starry_qfh032011_53g_init_cmd[] = {
|
|
||||||
+ _INIT_DCS_CMD(0xB0, 0x01),
|
|
||||||
+ _INIT_DCS_CMD(0xC3, 0x4F),
|
|
||||||
+ _INIT_DCS_CMD(0xC4, 0x40),
|
|
||||||
+ _INIT_DCS_CMD(0xC5, 0x40),
|
|
||||||
+ _INIT_DCS_CMD(0xC6, 0x40),
|
|
||||||
+ _INIT_DCS_CMD(0xC7, 0x40),
|
|
||||||
+ _INIT_DCS_CMD(0xC8, 0x4D),
|
|
||||||
+ _INIT_DCS_CMD(0xC9, 0x52),
|
|
||||||
+ _INIT_DCS_CMD(0xCA, 0x51),
|
|
||||||
+ _INIT_DCS_CMD(0xCD, 0x5D),
|
|
||||||
+ _INIT_DCS_CMD(0xCE, 0x5B),
|
|
||||||
+ _INIT_DCS_CMD(0xCF, 0x4B),
|
|
||||||
+ _INIT_DCS_CMD(0xD0, 0x49),
|
|
||||||
+ _INIT_DCS_CMD(0xD1, 0x47),
|
|
||||||
+ _INIT_DCS_CMD(0xD2, 0x45),
|
|
||||||
+ _INIT_DCS_CMD(0xD3, 0x41),
|
|
||||||
+ _INIT_DCS_CMD(0xD7, 0x50),
|
|
||||||
+ _INIT_DCS_CMD(0xD8, 0x40),
|
|
||||||
+ _INIT_DCS_CMD(0xD9, 0x40),
|
|
||||||
+ _INIT_DCS_CMD(0xDA, 0x40),
|
|
||||||
+ _INIT_DCS_CMD(0xDB, 0x40),
|
|
||||||
+ _INIT_DCS_CMD(0xDC, 0x4E),
|
|
||||||
+ _INIT_DCS_CMD(0xDD, 0x52),
|
|
||||||
+ _INIT_DCS_CMD(0xDE, 0x51),
|
|
||||||
+ _INIT_DCS_CMD(0xE1, 0x5E),
|
|
||||||
+ _INIT_DCS_CMD(0xE2, 0x5C),
|
|
||||||
+ _INIT_DCS_CMD(0xE3, 0x4C),
|
|
||||||
+ _INIT_DCS_CMD(0xE4, 0x4A),
|
|
||||||
+ _INIT_DCS_CMD(0xE5, 0x48),
|
|
||||||
+ _INIT_DCS_CMD(0xE6, 0x46),
|
|
||||||
+ _INIT_DCS_CMD(0xE7, 0x42),
|
|
||||||
+ _INIT_DCS_CMD(0xB0, 0x03),
|
|
||||||
+ _INIT_DCS_CMD(0xBE, 0x03),
|
|
||||||
+ _INIT_DCS_CMD(0xCC, 0x44),
|
|
||||||
+ _INIT_DCS_CMD(0xC8, 0x07),
|
|
||||||
+ _INIT_DCS_CMD(0xC9, 0x05),
|
|
||||||
+ _INIT_DCS_CMD(0xCA, 0x42),
|
|
||||||
+ _INIT_DCS_CMD(0xCD, 0x3E),
|
|
||||||
+ _INIT_DCS_CMD(0xCF, 0x60),
|
|
||||||
+ _INIT_DCS_CMD(0xD2, 0x04),
|
|
||||||
+ _INIT_DCS_CMD(0xD3, 0x04),
|
|
||||||
+ _INIT_DCS_CMD(0xD4, 0x01),
|
|
||||||
+ _INIT_DCS_CMD(0xD5, 0x00),
|
|
||||||
+ _INIT_DCS_CMD(0xD6, 0x03),
|
|
||||||
+ _INIT_DCS_CMD(0xD7, 0x04),
|
|
||||||
+ _INIT_DCS_CMD(0xD9, 0x01),
|
|
||||||
+ _INIT_DCS_CMD(0xDB, 0x01),
|
|
||||||
+ _INIT_DCS_CMD(0xE4, 0xF0),
|
|
||||||
+ _INIT_DCS_CMD(0xE5, 0x0A),
|
|
||||||
+ _INIT_DCS_CMD(0xB0, 0x00),
|
|
||||||
+ _INIT_DCS_CMD(0xCC, 0x08),
|
|
||||||
+ _INIT_DCS_CMD(0xC2, 0x08),
|
|
||||||
+ _INIT_DCS_CMD(0xC4, 0x10),
|
|
||||||
+ _INIT_DCS_CMD(0xB0, 0x02),
|
|
||||||
+ _INIT_DCS_CMD(0xC0, 0x00),
|
|
||||||
+ _INIT_DCS_CMD(0xC1, 0x0A),
|
|
||||||
+ _INIT_DCS_CMD(0xC2, 0x20),
|
|
||||||
+ _INIT_DCS_CMD(0xC3, 0x24),
|
|
||||||
+ _INIT_DCS_CMD(0xC4, 0x23),
|
|
||||||
+ _INIT_DCS_CMD(0xC5, 0x29),
|
|
||||||
+ _INIT_DCS_CMD(0xC6, 0x23),
|
|
||||||
+ _INIT_DCS_CMD(0xC7, 0x1C),
|
|
||||||
+ _INIT_DCS_CMD(0xC8, 0x19),
|
|
||||||
+ _INIT_DCS_CMD(0xC9, 0x17),
|
|
||||||
+ _INIT_DCS_CMD(0xCA, 0x17),
|
|
||||||
+ _INIT_DCS_CMD(0xCB, 0x18),
|
|
||||||
+ _INIT_DCS_CMD(0xCC, 0x1A),
|
|
||||||
+ _INIT_DCS_CMD(0xCD, 0x1E),
|
|
||||||
+ _INIT_DCS_CMD(0xCE, 0x20),
|
|
||||||
+ _INIT_DCS_CMD(0xCF, 0x23),
|
|
||||||
+ _INIT_DCS_CMD(0xD0, 0x07),
|
|
||||||
+ _INIT_DCS_CMD(0xD1, 0x00),
|
|
||||||
+ _INIT_DCS_CMD(0xD2, 0x00),
|
|
||||||
+ _INIT_DCS_CMD(0xD3, 0x0A),
|
|
||||||
+ _INIT_DCS_CMD(0xD4, 0x13),
|
|
||||||
+ _INIT_DCS_CMD(0xD5, 0x1C),
|
|
||||||
+ _INIT_DCS_CMD(0xD6, 0x1A),
|
|
||||||
+ _INIT_DCS_CMD(0xD7, 0x13),
|
|
||||||
+ _INIT_DCS_CMD(0xD8, 0x17),
|
|
||||||
+ _INIT_DCS_CMD(0xD9, 0x1C),
|
|
||||||
+ _INIT_DCS_CMD(0xDA, 0x19),
|
|
||||||
+ _INIT_DCS_CMD(0xDB, 0x17),
|
|
||||||
+ _INIT_DCS_CMD(0xDC, 0x17),
|
|
||||||
+ _INIT_DCS_CMD(0xDD, 0x18),
|
|
||||||
+ _INIT_DCS_CMD(0xDE, 0x1A),
|
|
||||||
+ _INIT_DCS_CMD(0xDF, 0x1E),
|
|
||||||
+ _INIT_DCS_CMD(0xE0, 0x20),
|
|
||||||
+ _INIT_DCS_CMD(0xE1, 0x23),
|
|
||||||
+ _INIT_DCS_CMD(0xE2, 0x07),
|
|
||||||
+ _INIT_DCS_CMD(0X11),
|
|
||||||
+ _INIT_DELAY_CMD(120),
|
|
||||||
+ _INIT_DCS_CMD(0X29),
|
|
||||||
+ _INIT_DELAY_CMD(80),
|
|
||||||
+ {},
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+static inline struct inx_panel *to_inx_panel(struct drm_panel *panel)
|
|
||||||
+{
|
|
||||||
+ return container_of(panel, struct inx_panel, base);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int inx_panel_init_dcs_cmd(struct inx_panel *inx)
|
|
||||||
+{
|
|
||||||
+ struct mipi_dsi_device *dsi = inx->dsi;
|
|
||||||
+ struct drm_panel *panel = &inx->base;
|
|
||||||
+ int i, err = 0;
|
|
||||||
+
|
|
||||||
+ if (inx->desc->init_cmds) {
|
|
||||||
+ const struct panel_init_cmd *init_cmds = inx->desc->init_cmds;
|
|
||||||
+
|
|
||||||
+ for (i = 0; init_cmds[i].len != 0; i++) {
|
|
||||||
+ const struct panel_init_cmd *cmd = &init_cmds[i];
|
|
||||||
+
|
|
||||||
+ switch (cmd->type) {
|
|
||||||
+ case DELAY_CMD:
|
|
||||||
+ msleep(cmd->data[0]);
|
|
||||||
+ err = 0;
|
|
||||||
+ break;
|
|
||||||
+
|
|
||||||
+ case INIT_DCS_CMD:
|
|
||||||
+ err = mipi_dsi_dcs_write(dsi, cmd->data[0],
|
|
||||||
+ cmd->len <= 1 ? NULL :
|
|
||||||
+ &cmd->data[1],
|
|
||||||
+ cmd->len - 1);
|
|
||||||
+ break;
|
|
||||||
+
|
|
||||||
+ default:
|
|
||||||
+ err = -EINVAL;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (err < 0) {
|
|
||||||
+ dev_err(panel->dev,
|
|
||||||
+ "failed to write command %u\n", i);
|
|
||||||
+ return err;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int inx_panel_enter_sleep_mode(struct inx_panel *inx)
|
|
||||||
+{
|
|
||||||
+ struct mipi_dsi_device *dsi = inx->dsi;
|
|
||||||
+ int ret;
|
|
||||||
+
|
|
||||||
+ dsi->mode_flags &= ~MIPI_DSI_MODE_LPM;
|
|
||||||
+
|
|
||||||
+ ret = mipi_dsi_dcs_set_display_off(dsi);
|
|
||||||
+ if (ret < 0)
|
|
||||||
+ return ret;
|
|
||||||
+
|
|
||||||
+ ret = mipi_dsi_dcs_enter_sleep_mode(dsi);
|
|
||||||
+ if (ret < 0)
|
|
||||||
+ return ret;
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int inx_panel_unprepare(struct drm_panel *panel)
|
|
||||||
+{
|
|
||||||
+ struct inx_panel *inx = to_inx_panel(panel);
|
|
||||||
+ int ret;
|
|
||||||
+
|
|
||||||
+ if (!inx->prepared)
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
+ ret = inx_panel_enter_sleep_mode(inx);
|
|
||||||
+ if (ret < 0) {
|
|
||||||
+ dev_err(panel->dev, "failed to set panel off: %d\n", ret);
|
|
||||||
+ return ret;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ msleep(150);
|
|
||||||
+
|
|
||||||
+ if (inx->desc->discharge_on_disable) {
|
|
||||||
+ regulator_disable(inx->avee);
|
|
||||||
+ regulator_disable(inx->avdd);
|
|
||||||
+ usleep_range(5000, 7000);
|
|
||||||
+ gpiod_set_value(inx->enable_gpio, 0);
|
|
||||||
+ usleep_range(5000, 7000);
|
|
||||||
+ regulator_disable(inx->pp1800);
|
|
||||||
+ } else {
|
|
||||||
+ gpiod_set_value(inx->enable_gpio, 0);
|
|
||||||
+ usleep_range(500, 1000);
|
|
||||||
+ regulator_disable(inx->avee);
|
|
||||||
+ regulator_disable(inx->avdd);
|
|
||||||
+ usleep_range(5000, 7000);
|
|
||||||
+ regulator_disable(inx->pp1800);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ inx->prepared = false;
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int inx_panel_prepare(struct drm_panel *panel)
|
|
||||||
+{
|
|
||||||
+ struct inx_panel *inx = to_inx_panel(panel);
|
|
||||||
+ int ret;
|
|
||||||
+
|
|
||||||
+ if (inx->prepared)
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
+ gpiod_set_value(inx->enable_gpio, 0);
|
|
||||||
+ usleep_range(1000, 1500);
|
|
||||||
+
|
|
||||||
+ ret = regulator_enable(inx->pp1800);
|
|
||||||
+ if (ret < 0)
|
|
||||||
+ return ret;
|
|
||||||
+
|
|
||||||
+ usleep_range(3000, 5000);
|
|
||||||
+
|
|
||||||
+ ret = regulator_enable(inx->avdd);
|
|
||||||
+ if (ret < 0)
|
|
||||||
+ goto poweroff1v8;
|
|
||||||
+ ret = regulator_enable(inx->avee);
|
|
||||||
+ if (ret < 0)
|
|
||||||
+ goto poweroffavdd;
|
|
||||||
+
|
|
||||||
+ usleep_range(5000, 10000);
|
|
||||||
+
|
|
||||||
+ gpiod_set_value(inx->enable_gpio, 1);
|
|
||||||
+ usleep_range(1000, 2000);
|
|
||||||
+ gpiod_set_value(inx->enable_gpio, 0);
|
|
||||||
+ usleep_range(1000, 2000);
|
|
||||||
+ gpiod_set_value(inx->enable_gpio, 1);
|
|
||||||
+ usleep_range(6000, 10000);
|
|
||||||
+
|
|
||||||
+ ret = inx_panel_init_dcs_cmd(inx);
|
|
||||||
+ if (ret < 0) {
|
|
||||||
+ dev_err(panel->dev, "failed to init panel: %d\n", ret);
|
|
||||||
+ goto poweroff;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ inx->prepared = true;
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
+poweroff:
|
|
||||||
+ regulator_disable(inx->avee);
|
|
||||||
+poweroffavdd:
|
|
||||||
+ regulator_disable(inx->avdd);
|
|
||||||
+poweroff1v8:
|
|
||||||
+ usleep_range(5000, 7000);
|
|
||||||
+ regulator_disable(inx->pp1800);
|
|
||||||
+ gpiod_set_value(inx->enable_gpio, 0);
|
|
||||||
+
|
|
||||||
+ return ret;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int inx_panel_enable(struct drm_panel *panel)
|
|
||||||
+{
|
|
||||||
+ msleep(130);
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static const struct drm_display_mode starry_qfh032011_53g_default_mode = {
|
|
||||||
+ .clock = 165731,
|
|
||||||
+ .hdisplay = 1200,
|
|
||||||
+ .hsync_start = 1200 + 100,
|
|
||||||
+ .hsync_end = 1200 + 100 + 10,
|
|
||||||
+ .htotal = 1200 + 100 + 10 + 100,
|
|
||||||
+ .vdisplay = 1920,
|
|
||||||
+ .vsync_start = 1920 + 14,
|
|
||||||
+ .vsync_end = 1920 + 14 + 10,
|
|
||||||
+ .vtotal = 1920 + 14 + 10 + 15,
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+static const struct panel_desc starry_qfh032011_53g_desc = {
|
|
||||||
+ .modes = &starry_qfh032011_53g_default_mode,
|
|
||||||
+ .bpc = 8,
|
|
||||||
+ .size = {
|
|
||||||
+ .width_mm = 135,
|
|
||||||
+ .height_mm = 216,
|
|
||||||
+ },
|
|
||||||
+ .lanes = 4,
|
|
||||||
+ .format = MIPI_DSI_FMT_RGB888,
|
|
||||||
+ .mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE |
|
|
||||||
+ MIPI_DSI_MODE_LPM,
|
|
||||||
+ .init_cmds = starry_qfh032011_53g_init_cmd,
|
|
||||||
+ .discharge_on_disable = false,
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+static int inx_panel_get_modes(struct drm_panel *panel,
|
|
||||||
+ struct drm_connector *connector)
|
|
||||||
+{
|
|
||||||
+ struct inx_panel *inx = to_inx_panel(panel);
|
|
||||||
+ const struct drm_display_mode *m = inx->desc->modes;
|
|
||||||
+ struct drm_display_mode *mode;
|
|
||||||
+
|
|
||||||
+ mode = drm_mode_duplicate(connector->dev, m);
|
|
||||||
+ if (!mode) {
|
|
||||||
+ dev_err(panel->dev, "failed to add mode %ux%u@%u\n",
|
|
||||||
+ m->hdisplay, m->vdisplay, drm_mode_vrefresh(m));
|
|
||||||
+ return -ENOMEM;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED;
|
|
||||||
+ drm_mode_set_name(mode);
|
|
||||||
+ drm_mode_probed_add(connector, mode);
|
|
||||||
+
|
|
||||||
+ connector->display_info.width_mm = inx->desc->size.width_mm;
|
|
||||||
+ connector->display_info.height_mm = inx->desc->size.height_mm;
|
|
||||||
+ connector->display_info.bpc = inx->desc->bpc;
|
|
||||||
+ drm_connector_set_panel_orientation(connector, inx->orientation);
|
|
||||||
+
|
|
||||||
+ return 1;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static const struct drm_panel_funcs inx_panel_funcs = {
|
|
||||||
+ .unprepare = inx_panel_unprepare,
|
|
||||||
+ .prepare = inx_panel_prepare,
|
|
||||||
+ .enable = inx_panel_enable,
|
|
||||||
+ .get_modes = inx_panel_get_modes,
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+static int inx_panel_add(struct inx_panel *inx)
|
|
||||||
+{
|
|
||||||
+ struct device *dev = &inx->dsi->dev;
|
|
||||||
+ int err;
|
|
||||||
+
|
|
||||||
+ inx->avdd = devm_regulator_get(dev, "avdd");
|
|
||||||
+ if (IS_ERR(inx->avdd))
|
|
||||||
+ return PTR_ERR(inx->avdd);
|
|
||||||
+
|
|
||||||
+ inx->avee = devm_regulator_get(dev, "avee");
|
|
||||||
+ if (IS_ERR(inx->avee))
|
|
||||||
+ return PTR_ERR(inx->avee);
|
|
||||||
+
|
|
||||||
+ inx->pp1800 = devm_regulator_get(dev, "pp1800");
|
|
||||||
+ if (IS_ERR(inx->pp1800))
|
|
||||||
+ return PTR_ERR(inx->pp1800);
|
|
||||||
+
|
|
||||||
+ inx->enable_gpio = devm_gpiod_get(dev, "enable", GPIOD_OUT_LOW);
|
|
||||||
+ if (IS_ERR(inx->enable_gpio)) {
|
|
||||||
+ dev_err(dev, "cannot get reset-gpios %ld\n",
|
|
||||||
+ PTR_ERR(inx->enable_gpio));
|
|
||||||
+ return PTR_ERR(inx->enable_gpio);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ gpiod_set_value(inx->enable_gpio, 0);
|
|
||||||
+
|
|
||||||
+ drm_panel_init(&inx->base, dev, &inx_panel_funcs,
|
|
||||||
+ DRM_MODE_CONNECTOR_DSI);
|
|
||||||
+ err = of_drm_get_panel_orientation(dev->of_node, &inx->orientation);
|
|
||||||
+ if (err < 0) {
|
|
||||||
+ dev_err(dev, "%pOF: failed to get orientation %d\n", dev->of_node, err);
|
|
||||||
+ return err;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ err = drm_panel_of_backlight(&inx->base);
|
|
||||||
+ if (err)
|
|
||||||
+ return err;
|
|
||||||
+
|
|
||||||
+ inx->base.funcs = &inx_panel_funcs;
|
|
||||||
+ inx->base.dev = &inx->dsi->dev;
|
|
||||||
+
|
|
||||||
+ drm_panel_add(&inx->base);
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int inx_panel_probe(struct mipi_dsi_device *dsi)
|
|
||||||
+{
|
|
||||||
+ struct inx_panel *inx;
|
|
||||||
+ int ret;
|
|
||||||
+ const struct panel_desc *desc;
|
|
||||||
+
|
|
||||||
+ inx = devm_kzalloc(&dsi->dev, sizeof(*inx), GFP_KERNEL);
|
|
||||||
+ if (!inx)
|
|
||||||
+ return -ENOMEM;
|
|
||||||
+
|
|
||||||
+ desc = of_device_get_match_data(&dsi->dev);
|
|
||||||
+ dsi->lanes = desc->lanes;
|
|
||||||
+ dsi->format = desc->format;
|
|
||||||
+ dsi->mode_flags = desc->mode_flags;
|
|
||||||
+ inx->desc = desc;
|
|
||||||
+ inx->dsi = dsi;
|
|
||||||
+ ret = inx_panel_add(inx);
|
|
||||||
+ if (ret < 0)
|
|
||||||
+ return ret;
|
|
||||||
+
|
|
||||||
+ mipi_dsi_set_drvdata(dsi, inx);
|
|
||||||
+
|
|
||||||
+ ret = mipi_dsi_attach(dsi);
|
|
||||||
+ if (ret)
|
|
||||||
+ drm_panel_remove(&inx->base);
|
|
||||||
+
|
|
||||||
+ return ret;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void inx_panel_shutdown(struct mipi_dsi_device *dsi)
|
|
||||||
+{
|
|
||||||
+ struct inx_panel *inx = mipi_dsi_get_drvdata(dsi);
|
|
||||||
+
|
|
||||||
+ drm_panel_disable(&inx->base);
|
|
||||||
+ drm_panel_unprepare(&inx->base);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void inx_panel_remove(struct mipi_dsi_device *dsi)
|
|
||||||
+{
|
|
||||||
+ struct inx_panel *inx = mipi_dsi_get_drvdata(dsi);
|
|
||||||
+ int ret;
|
|
||||||
+
|
|
||||||
+ inx_panel_shutdown(dsi);
|
|
||||||
+
|
|
||||||
+ ret = mipi_dsi_detach(dsi);
|
|
||||||
+ if (ret < 0)
|
|
||||||
+ dev_err(&dsi->dev, "failed to detach from DSI host: %d\n", ret);
|
|
||||||
+
|
|
||||||
+ if (inx->base.dev)
|
|
||||||
+ drm_panel_remove(&inx->base);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static const struct of_device_id inx_of_match[] = {
|
|
||||||
+ { .compatible = "starry,2081101qfh032011-53g",
|
|
||||||
+ .data = &starry_qfh032011_53g_desc
|
|
||||||
+ },
|
|
||||||
+ { /* sentinel */ }
|
|
||||||
+};
|
|
||||||
+MODULE_DEVICE_TABLE(of, inx_of_match);
|
|
||||||
+
|
|
||||||
+static struct mipi_dsi_driver inx_panel_driver = {
|
|
||||||
+ .driver = {
|
|
||||||
+ .name = "panel-innolux-himax8279d",
|
|
||||||
+ .of_match_table = inx_of_match,
|
|
||||||
+ },
|
|
||||||
+ .probe = inx_panel_probe,
|
|
||||||
+ .remove = inx_panel_remove,
|
|
||||||
+ .shutdown = inx_panel_shutdown,
|
|
||||||
+};
|
|
||||||
+module_mipi_dsi_driver(inx_panel_driver);
|
|
||||||
+
|
|
||||||
+MODULE_AUTHOR("Zhengqiao Xia <xiazhengqiao@huaqin.corp-partner.google.com>");
|
|
||||||
+MODULE_DESCRIPTION("INNOLUX HIMAX8279D 1200x1920 video mode panel driver");
|
|
||||||
+MODULE_LICENSE("GPL v2");
|
|
|
@ -1,94 +0,0 @@
|
||||||
based on: https://patchwork.kernel.org/project/linux-mediatek/patch/20211213162856.235130-1-hsinyi@chromium.org/
|
|
||||||
|
|
||||||
diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-katsu-sku32.dts b/arch/arm64/boot/dts/mediatek/mt8183-kukui-katsu-sku32.dts
|
|
||||||
new file mode 100644
|
|
||||||
index 00000000000000..f923b8c3c49c36
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-katsu-sku32.dts
|
|
||||||
@@ -0,0 +1,38 @@
|
|
||||||
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
|
||||||
+/*
|
|
||||||
+ * Copyright 2021 Google LLC
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+/dts-v1/;
|
|
||||||
+#include "mt8183-kukui-kakadu.dtsi"
|
|
||||||
+#include "mt8183-kukui-audio-da7219-rt1015p.dtsi"
|
|
||||||
+
|
|
||||||
+/ {
|
|
||||||
+ model = "MediaTek katsu board";
|
|
||||||
+ compatible = "google,katsu-sku32", "google,katsu", "mediatek,mt8183";
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&i2c0 {
|
|
||||||
+ status = "okay";
|
|
||||||
+
|
|
||||||
+ /delete-node/touchscreen@10;
|
|
||||||
+ touchscreen1: touchscreen@5d {
|
|
||||||
+ compatible = "goodix,gt7375p";
|
|
||||||
+ reg = <0x5d>;
|
|
||||||
+ pinctrl-names = "default";
|
|
||||||
+ pinctrl-0 = <&open_touch>;
|
|
||||||
+
|
|
||||||
+ interrupt-parent = <&pio>;
|
|
||||||
+ interrupts = <155 IRQ_TYPE_LEVEL_LOW>;
|
|
||||||
+
|
|
||||||
+ reset-gpios = <&pio 156 GPIO_ACTIVE_LOW>;
|
|
||||||
+ };
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&panel {
|
|
||||||
+ compatible = "starry,2081101qfh032011-53g";
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&qca_wifi {
|
|
||||||
+ qcom,ath10k-calibration-variant = "GO_KATSU";
|
|
||||||
+};
|
|
||||||
diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-katsu-sku38.dts b/arch/arm64/boot/dts/mediatek/mt8183-kukui-katsu-sku38.dts
|
|
||||||
new file mode 100644
|
|
||||||
index 00000000000000..1ab14096a279c6
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-katsu-sku38.dts
|
|
||||||
@@ -0,0 +1,42 @@
|
|
||||||
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
|
||||||
+/*
|
|
||||||
+ * Copyright 2021 Google LLC
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+/dts-v1/;
|
|
||||||
+#include "mt8183-kukui-kakadu.dtsi"
|
|
||||||
+#include "mt8183-kukui-audio-rt1015p.dtsi"
|
|
||||||
+
|
|
||||||
+/ {
|
|
||||||
+ model = "MediaTek katsu sku38 board";
|
|
||||||
+ compatible = "google,katsu-sku38", "google,katsu", "mediatek,mt8183";
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&i2c0 {
|
|
||||||
+ status = "okay";
|
|
||||||
+
|
|
||||||
+ /delete-node/touchscreen@10;
|
|
||||||
+ touchscreen1: touchscreen@5d {
|
|
||||||
+ compatible = "goodix,gt7375p";
|
|
||||||
+ reg = <0x5d>;
|
|
||||||
+ pinctrl-names = "default";
|
|
||||||
+ pinctrl-0 = <&open_touch>;
|
|
||||||
+
|
|
||||||
+ interrupt-parent = <&pio>;
|
|
||||||
+ interrupts = <155 IRQ_TYPE_LEVEL_LOW>;
|
|
||||||
+
|
|
||||||
+ reset-gpios = <&pio 156 GPIO_ACTIVE_LOW>;
|
|
||||||
+ };
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&panel {
|
|
||||||
+ compatible = "starry,2081101qfh032011-53g";
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&qca_wifi {
|
|
||||||
+ qcom,ath10k-calibration-variant = "GO_KATSU";
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&sound {
|
|
||||||
+ compatible = "mediatek,mt8183_mt6358_ts3a227_rt1015p";
|
|
||||||
+};
|
|
|
@ -1,62 +0,0 @@
|
||||||
based on: https://patchwork.kernel.org/project/linux-mediatek/patch/20211213162856.235130-2-hsinyi@chromium.org/
|
|
||||||
|
|
||||||
diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-makomo-sku0.dts b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-makomo-sku0.dts
|
|
||||||
new file mode 100644
|
|
||||||
index 00000000000000..51bf2893ec03b1
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-makomo-sku0.dts
|
|
||||||
@@ -0,0 +1,24 @@
|
|
||||||
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
|
||||||
+/*
|
|
||||||
+ * Copyright 2021 Google LLC
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+/dts-v1/;
|
|
||||||
+#include "mt8183-kukui-jacuzzi-fennel.dtsi"
|
|
||||||
+#include "mt8183-kukui-audio-da7219-rt1015p.dtsi"
|
|
||||||
+
|
|
||||||
+/ {
|
|
||||||
+ model = "Google makomo sku0 board";
|
|
||||||
+ compatible = "google,makomo-rev4-sku0", "google,makomo-rev5-sku0",
|
|
||||||
+ "google,makomo", "mediatek,mt8183";
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&qca_wifi {
|
|
||||||
+ qcom,ath10k-calibration-variant = "GO_FENNEL14";
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&mmc1_pins_uhs {
|
|
||||||
+ pins_clk {
|
|
||||||
+ drive-strength = <MTK_DRIVE_6mA>;
|
|
||||||
+ };
|
|
||||||
+};
|
|
||||||
diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-makomo-sku1.dts b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-makomo-sku1.dts
|
|
||||||
new file mode 100644
|
|
||||||
index 00000000000000..c3b7e9bb0c8960
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-makomo-sku1.dts
|
|
||||||
@@ -0,0 +1,24 @@
|
|
||||||
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
|
||||||
+/*
|
|
||||||
+ * Copyright 2021 Google LLC
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+/dts-v1/;
|
|
||||||
+#include "mt8183-kukui-jacuzzi-fennel.dtsi"
|
|
||||||
+#include "mt8183-kukui-audio-ts3a227e-rt1015p.dtsi"
|
|
||||||
+
|
|
||||||
+/ {
|
|
||||||
+ model = "Google makomo sku1 board";
|
|
||||||
+ compatible = "google,makomo-rev4-sku1", "google,makomo-rev5-sku1",
|
|
||||||
+ "google,makomo", "mediatek,mt8183";
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&qca_wifi {
|
|
||||||
+ qcom,ath10k-calibration-variant = "GO_FENNEL14";
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&mmc1_pins_uhs {
|
|
||||||
+ pins_clk {
|
|
||||||
+ drive-strength = <MTK_DRIVE_6mA>;
|
|
||||||
+ };
|
|
||||||
+};
|
|
|
@ -1,20 +0,0 @@
|
||||||
based on: https://patchwork.kernel.org/project/linux-mediatek/patch/20211213162856.235130-3-hsinyi@chromium.org/
|
|
||||||
|
|
||||||
diff --git a/Documentation/devicetree/bindings/arm/mediatek.yaml b/Documentation/devicetree/bindings/arm/mediatek.yaml
|
|
||||||
index 723810cffce2e7..75bb06d1802a08 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/arm/mediatek.yaml
|
|
||||||
+++ b/Documentation/devicetree/bindings/arm/mediatek.yaml
|
|
||||||
@@ -175,6 +175,13 @@ properties:
|
|
||||||
items:
|
|
||||||
- const: google,kappa
|
|
||||||
- const: mediatek,mt8183
|
|
||||||
+ - description: Google Katsu (ASUS Chromebook Detachable CZ1)
|
|
||||||
+ items:
|
|
||||||
+ - enum:
|
|
||||||
+ - google,katsu-sku32
|
|
||||||
+ - google,katsu-sku38
|
|
||||||
+ - const: google,katsu
|
|
||||||
+ - const: mediatek,mt8183
|
|
||||||
- description: Google Kodama (Lenovo 10e Chromebook Tablet)
|
|
||||||
items:
|
|
||||||
- enum:
|
|
|
@ -1,25 +0,0 @@
|
||||||
based on: https://patchwork.kernel.org/project/linux-mediatek/patch/20211213162856.235130-4-hsinyi@chromium.org/
|
|
||||||
|
|
||||||
diff --git a/Documentation/devicetree/bindings/arm/mediatek.yaml b/Documentation/devicetree/bindings/arm/mediatek.yaml
|
|
||||||
index 75bb06d1802a08..828f5f3fde4e20 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/arm/mediatek.yaml
|
|
||||||
+++ b/Documentation/devicetree/bindings/arm/mediatek.yaml
|
|
||||||
@@ -191,6 +191,18 @@ properties:
|
|
||||||
- google,kodama-sku32
|
|
||||||
- const: google,kodama
|
|
||||||
- const: mediatek,mt8183
|
|
||||||
+ - description: Google Makomo (Lenovo 100e Gen 2)
|
|
||||||
+ items:
|
|
||||||
+ - const: google,makomo-rev4-sku0
|
|
||||||
+ - const: google,makomo-rev5-sku0
|
|
||||||
+ - const: google,makomo
|
|
||||||
+ - const: mediatek,mt8183
|
|
||||||
+ - description: Google Makomo (Lenovo 100e Gen 2)
|
|
||||||
+ items:
|
|
||||||
+ - const: google,makomo-rev4-sku1
|
|
||||||
+ - const: google,makomo-rev5-sku1
|
|
||||||
+ - const: google,makomo
|
|
||||||
+ - const: mediatek,mt8183
|
|
||||||
- description: Google Willow (Acer Chromebook 311 C722/C722T)
|
|
||||||
items:
|
|
||||||
- enum:
|
|
|
@ -1,22 +0,0 @@
|
||||||
based on: https://patchwork.kernel.org/project/linux-mediatek/patch/20210604052312.1040707-2-hsinyi@chromium.org/
|
|
||||||
|
|
||||||
diff --git a/Documentation/devicetree/bindings/arm/mediatek.yaml b/Documentation/devicetree/bindings/arm/mediatek.yaml
|
|
||||||
index 80a05f6fee85b..02c0653737648 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/arm/mediatek.yaml
|
|
||||||
+++ b/Documentation/devicetree/bindings/arm/mediatek.yaml
|
|
||||||
@@ -126,6 +126,15 @@ properties:
|
|
||||||
items:
|
|
||||||
- const: google,burnet
|
|
||||||
- const: mediatek,mt8183
|
|
||||||
+ - description: Google Cerise (ASUS Chromebook CZ1) / Stern (ASUS Chromebook Flip CZ1)
|
|
||||||
+ items:
|
|
||||||
+ - enum:
|
|
||||||
+ - google,cerise-sku0
|
|
||||||
+ - google,cerise-sku1
|
|
||||||
+ - google,cerise-rev3-sku0
|
|
||||||
+ - google,cerise-rev3-sku1
|
|
||||||
+ - const: google,cerise
|
|
||||||
+ - const: mediatek,mt8183
|
|
||||||
- description: Google Krane (Lenovo IdeaPad Duet, 10e,...)
|
|
||||||
items:
|
|
||||||
- enum:
|
|
|
@ -1,30 +0,0 @@
|
||||||
diff --git a/arch/arm64/boot/dts/mediatek/Makefile b/arch/arm64/boot/dts/mediatek/Makefile
|
|
||||||
index af362a085a02..52d291eeff53 100644
|
|
||||||
--- a/arch/arm64/boot/dts/mediatek/Makefile
|
|
||||||
+++ b/arch/arm64/boot/dts/mediatek/Makefile
|
|
||||||
@@ -16,6 +16,8 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt8173-elm-hana-rev7.dtb
|
|
||||||
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8173-evb.dtb
|
|
||||||
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-evb.dtb
|
|
||||||
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-burnet.dtb
|
|
||||||
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-cerise.dtb
|
|
||||||
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-cerise-rev3.dtb
|
|
||||||
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-cozmo.dtb
|
|
||||||
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-damu.dtb
|
|
||||||
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-fennel-sku1.dtb
|
|
||||||
@@ -26,10 +28,16 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-fennel14-sku2.dtb
|
|
||||||
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-juniper-sku16.dtb
|
|
||||||
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-kappa.dtb
|
|
||||||
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-kenzo.dtb
|
|
||||||
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-makomo-sku0.dtb
|
|
||||||
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-makomo-sku1.dtb
|
|
||||||
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-stern.dtb
|
|
||||||
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-stern-rev3.dtb
|
|
||||||
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-willow-sku0.dtb
|
|
||||||
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-willow-sku1.dtb
|
|
||||||
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-kakadu.dtb
|
|
||||||
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-kakadu-sku22.dtb
|
|
||||||
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-katsu-sku32.dtb
|
|
||||||
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-katsu-sku38.dtb
|
|
||||||
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-kodama-sku16.dtb
|
|
||||||
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-kodama-sku272.dtb
|
|
||||||
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-kodama-sku288.dtb
|
|
|
@ -1,8 +1,8 @@
|
||||||
# Maintainer: Jenneron <jenneron@protonmail.com>
|
# Maintainer: WeirdTreeThing <bradyn127@protonmail.com>
|
||||||
# Based on https://github.com/hexdump0815/linux-mainline-mediatek-mt81xx-kernel
|
# Co-Maintainer: Jenneron <jenneron@protonmail.com>
|
||||||
pkgname=linux-postmarketos-mediatek-mt8183
|
pkgname=linux-postmarketos-mediatek-mt8183
|
||||||
pkgver=6.1.39
|
pkgver=6.6.16
|
||||||
pkgrel=3
|
pkgrel=0
|
||||||
pkgdesc="Mainline kernel for mediatek mt8183"
|
pkgdesc="Mainline kernel for mediatek mt8183"
|
||||||
arch="aarch64"
|
arch="aarch64"
|
||||||
_flavor="${pkgname#linux-}"
|
_flavor="${pkgname#linux-}"
|
||||||
|
@ -42,24 +42,20 @@ esac
|
||||||
|
|
||||||
source="
|
source="
|
||||||
https://cdn.kernel.org/pub/linux/kernel/v${_kernver%%.*}.x/linux-$_kernver.tar.xz
|
https://cdn.kernel.org/pub/linux/kernel/v${_kernver%%.*}.x/linux-$_kernver.tar.xz
|
||||||
01-RESEND-v2-1-2-drm-panel-Add-inx-Himax8279d-MIPI-DSI-LCD-panel-driver.patch
|
arm64-dts-mediatek-mt8183-Add-missing-GPU-clocks.patch
|
||||||
03-v2-1-4-arm64-dts-mt8183-Add-katsu-board.patch
|
arm64-dts-mediatek-mt8183-Add-missing-syscon-power-d.patch
|
||||||
04-v2-2-4-arm64-dts-mt8183-Add-kukui-jacuzzi-makomo-board.patch
|
arm64-dts-mediatek-mt8183-Add-video-encoder-decoder.patch
|
||||||
05-v2-3-4-dt-bindings-arm64-dts-mediatek-Add-mt8183-kukui-katsu.patch
|
arm64-dts-mediatek-mt8183-Drop-VDEC_SYS-register.patch
|
||||||
06-v2-4-4-dt-bindings-arm64-dts-mediatek-Add-mt8183-kukui-jacuzzi-makomo.patch
|
arm64-dts-mediatek-mt8183-Add-register-names-and-sys.patch
|
||||||
07-1-2-arm64-dts-mt8183-Add-kukui-jacuzzi-cerise-board.patch
|
arm64-dts-mt8183-Add-jacuzzi-makomo-board.patch
|
||||||
08-2-2-dt-bindings-arm64-dts-mediatek-Add-mt8183-kukui-jacuzzi-cerise.patch
|
arm64-dts-mt8183-Add-jacuzzi-pico-pico6-board.patch
|
||||||
09-add-new-dtbs-to-makefile.patch
|
arm64-dts-mt8183-Add-kukui-katsu-board.patch
|
||||||
CHROMIUM-ARM64-dts-add-vdec-venc-h264-dtsi.patch
|
arm64-dts-mt8183-Add-kukui-jacuzzi-cerise-board.patch
|
||||||
mt8183-cadmium-kukui.enable-ite.patch
|
|
||||||
mt8183-fix-audio-module-loading.patch
|
|
||||||
mt8183-fix-bluetooth.patch
|
|
||||||
mt8183-kukui-disable-unsupported-thermal-zones.patch
|
|
||||||
mt8183-kukui-jacuzzi-fennel14-rt1015p-sound.patch
|
|
||||||
mt8183-kukui-jacuzzi-fix-display-resume.patch
|
mt8183-kukui-jacuzzi-fix-display-resume.patch
|
||||||
mt8183-kukui-jacuzzi-hack-dpms-resume.patch
|
mt8183-kukui-jacuzzi-hack-dpms-resume.patch
|
||||||
mt81xx-fix-low-speed-usb-devices.patch
|
mt8183-fix-bluetooth.patch
|
||||||
mt81xx-usb-02.patch
|
Revert-ASoC-mediatek-mt8183-da7219-max98357-Map-miss.patch
|
||||||
|
mt8183-kukui-jacuzzi-fennel14-rt1015p-sound.patch
|
||||||
config-$_flavor.aarch64
|
config-$_flavor.aarch64
|
||||||
"
|
"
|
||||||
builddir="$srcdir/linux-$_kernver"
|
builddir="$srcdir/linux-$_kernver"
|
||||||
|
@ -92,24 +88,20 @@ package() {
|
||||||
|
|
||||||
|
|
||||||
sha512sums="
|
sha512sums="
|
||||||
20d468ae89b57dda82d7c7b814c3d8b1b510e1623775b09a8a0b0a8a0431461e0a1d2df2bfa01f3102932c8eef91405546898b50ec3e6f30015098bb39722b41 linux-6.1.39.tar.xz
|
3823a776f8e4aefdec75dce7c959adcb038ab0776d8d7e60fb79626d2d9410c0a334df71b1cd10499ed9ba82d7e50cec415c3f2b821b33f53171ca00b1a3b7f1 linux-6.6.16.tar.xz
|
||||||
06e901fd36d4c3a8b51673ed6682a51229856259a4a0c83e65ed10a234c24a4a8828e9f6ed3101713470a25db10af9d5bab29c480b7f5c87af6bd7e81d8c0fe7 01-RESEND-v2-1-2-drm-panel-Add-inx-Himax8279d-MIPI-DSI-LCD-panel-driver.patch
|
669a1bbf8707ec9294da83336673fbb55061a2eed0c6ddb2613da3ae4fa9b0e2bdbdd91ad166694173e3540ea934b2f3bf27d5f9659a6952de806765eed9b824 arm64-dts-mediatek-mt8183-Add-missing-GPU-clocks.patch
|
||||||
4c7a89fd1e3e7b4589fe3c2addc7c4963cec7ebabf49413b1d6db92386b4b2ba7bf25c961aaa53fc344a4684871b4132806aa4b8c1a63e091651e548bab750ef 03-v2-1-4-arm64-dts-mt8183-Add-katsu-board.patch
|
027fee259454764e47ffee7100dba7cb9f0741a156ba3d1b47815a0beb6b4ea6cccba885f93b068923ff88047fa82a3d937d3808d0199f1de85cf553068a9ba7 arm64-dts-mediatek-mt8183-Add-missing-syscon-power-d.patch
|
||||||
a0742fa788d13c836d9dc8827c55a14e804ce77234627f2689fd511b14e5fba17b00f5a8cebd9ae4fa4c644d87cc98d4f18eba385ec4f57bb6fe07d3aff057fd 04-v2-2-4-arm64-dts-mt8183-Add-kukui-jacuzzi-makomo-board.patch
|
40246a8da036dc6c21592efd6625a4be22d6f524b067854f17f5671f5f3b134ed1c63a8c03a15a55e9b45b7d8d1a9b63833b86f38a6f5863e02cc8ddbf70fa57 arm64-dts-mediatek-mt8183-Add-video-encoder-decoder.patch
|
||||||
7d29cefe1e338868c6f31516dcff73ef1fdb5e50353ffd0874018bee1c9c116dea65b0bea6e9a5d31f416958ff025a685234e684557705f4675ad4710709e197 05-v2-3-4-dt-bindings-arm64-dts-mediatek-Add-mt8183-kukui-katsu.patch
|
aee85972804ab4a254f007805e25d30a82bb87e48144a05805ccefd49f8530f588e2c50b6550f302895a675003ffbe8e7986c2214d76763474b88804fe7f1519 arm64-dts-mediatek-mt8183-Drop-VDEC_SYS-register.patch
|
||||||
53279b9019c4aa94488405a823c501734f536acc6f68c7d89f3f76fba04cde897c229ab59d22e97acd68f8ab9fc75ad39bb74fef777a1dbbdf1788bf19ae52c4 06-v2-4-4-dt-bindings-arm64-dts-mediatek-Add-mt8183-kukui-jacuzzi-makomo.patch
|
567b13d7508fdf584a64bf3f9d71ba34c045c6e4610ef7f7024ed98f4e7ebbd78c0ee2d5dccc7a50e651e4a088c0621f5150d477520069965466d5db265160ab arm64-dts-mediatek-mt8183-Add-register-names-and-sys.patch
|
||||||
20be60004e19068e652010f18353f93a289b109a4b13cfa85184401a13f02417aea644e29accf5c21d6cf511044f2024e3872b211512d15e301ca34613ee0077 07-1-2-arm64-dts-mt8183-Add-kukui-jacuzzi-cerise-board.patch
|
c0ac0f26bb515a68b89515a19113a14e2cd11c940f01649a2e4e9261f852be66af6a53683fc3d4f2ae7b1289fa9247111772f458ff96e51742b2b1efc7a73a11 arm64-dts-mt8183-Add-jacuzzi-makomo-board.patch
|
||||||
27e1e536f446dc278ce8a9dd9bd64e5ec6678589b2ca276be7bab5e0a80f119052e9109e6834357a57bbffe30fda48e03d24531f53ad0225f42ad075142f3a37 08-2-2-dt-bindings-arm64-dts-mediatek-Add-mt8183-kukui-jacuzzi-cerise.patch
|
5a1bdadc6cb12c1fb52c1ed8710e0d0c05e91b4559725fe7b26c41bc6fa375800cbb51e554401cdf419fbfdf6ab7f91f1efb5ad333db2e0e0466036f41eff519 arm64-dts-mt8183-Add-jacuzzi-pico-pico6-board.patch
|
||||||
604fb37887786a2919e93648fb3fd002ce4b948b35a915931e3f2bf3f3a1451fad4f6e042cd0fd9aa7f11bba5864f1b95c9be9ab6aed57a63652c49a7a145a3e 09-add-new-dtbs-to-makefile.patch
|
69f26a25a9a35eaf8f0c655e3f50a5ab19a5f727b1cdf49ad0c9cb89c69cd9517bd381a62e5197c1f00a7c2f03cd2411415f455e9fb5a2c8c1afa777e754398e arm64-dts-mt8183-Add-kukui-katsu-board.patch
|
||||||
2553c147c7b9a387678e5c2508182417346b6acb94f9d22aec10f4aa3e66bb7d84b83ddc0c39f1f3e0dd2137e906891aef349de9da89ce63b3f43c4f42b5e933 CHROMIUM-ARM64-dts-add-vdec-venc-h264-dtsi.patch
|
a95ce4a71d249ef401ca04cf8faf85b9022114d35fef5a0ce18929f734a0ac80ed0332648cc9768625f3c26b3720679e1a20bf8ac564087bd4c64f49cd96cc45 arm64-dts-mt8183-Add-kukui-jacuzzi-cerise-board.patch
|
||||||
4216543acf0ffea0c91b2b7c112cd333be838414f2902cea9f07f5811b96ab5da0e09954086966359316fe0632ac0af65add154b9df0aa11d05962429954e362 mt8183-cadmium-kukui.enable-ite.patch
|
|
||||||
b9a9e2f620d229ca8acf2df764d6406a304fd51f435929f78c4dfd7f52cd6f1f298f031bb6d7bb7fc8ea360dd8bbd4584bb298f9351100dfb20707de50076244 mt8183-fix-audio-module-loading.patch
|
|
||||||
d74da1231181835bec82015da1b3f5b08a1fe9c3c35dd712e285891094d94d9427ceac75d32f74be3a635e17d93ad82b37adf97db8176efc91aed17535023fc2 mt8183-fix-bluetooth.patch
|
|
||||||
a5e99ea30bbdde3a5f0f9745306c9f58876a60489c3cbeacd783cf7e47a013d47c9fb77e4a9dbbd34ec6307d40e64a3623e3cece2f254f734979987f5a22e700 mt8183-kukui-disable-unsupported-thermal-zones.patch
|
|
||||||
9b8707de42635734031495da055c5860addeb656051540f1a14404b10aa8b501168d8b0e274b37bce989db3bc050e9beef722189556f6d782b92cc907731488d mt8183-kukui-jacuzzi-fennel14-rt1015p-sound.patch
|
|
||||||
519b6468bca78d0e315c826592ae40dddca9daeba7c2b451a20ca996494cca45721833b9138fefbb543f53e0b9257c78ec4fec54de2a160aa8df730daf3ac996 mt8183-kukui-jacuzzi-fix-display-resume.patch
|
519b6468bca78d0e315c826592ae40dddca9daeba7c2b451a20ca996494cca45721833b9138fefbb543f53e0b9257c78ec4fec54de2a160aa8df730daf3ac996 mt8183-kukui-jacuzzi-fix-display-resume.patch
|
||||||
e9a128a8ddd98c6c8957ba45186afa2ea8ebeac83d4f2db3ff9ee8a5dd8027af90868c334a7b456bfe7dce793517f27ad63efa220bc933e3407f6362da6d7b2a mt8183-kukui-jacuzzi-hack-dpms-resume.patch
|
e9a128a8ddd98c6c8957ba45186afa2ea8ebeac83d4f2db3ff9ee8a5dd8027af90868c334a7b456bfe7dce793517f27ad63efa220bc933e3407f6362da6d7b2a mt8183-kukui-jacuzzi-hack-dpms-resume.patch
|
||||||
ca1eec5277c3cd8afc2e6079fd4ccfe2f3937cdc8296cafac1d61bb14ca7acdde6e97d561f5a80a919b01fbc06ec991767d3ea1ff4bc34c1d9033993f2689130 mt81xx-fix-low-speed-usb-devices.patch
|
d74da1231181835bec82015da1b3f5b08a1fe9c3c35dd712e285891094d94d9427ceac75d32f74be3a635e17d93ad82b37adf97db8176efc91aed17535023fc2 mt8183-fix-bluetooth.patch
|
||||||
5db854d3cb1bad58e93eba86014deb1e2cf3b79a1a74561e22832dccf5cd79f6f0c42cc6210926e0dfc4ca9c939b666018cb2ce5612eb49ad84a8b285dc63e07 mt81xx-usb-02.patch
|
9e64ef057ecd9bb23b0b0e830007c50ea9c481f64f460d063e9f64735d70d5a4bcf87d9148aa5cc90963ccd5860fe4a9e6f25556a902332b95ef48537d6ee045 Revert-ASoC-mediatek-mt8183-da7219-max98357-Map-miss.patch
|
||||||
629d4b58586dd1374b786c2ac4ac3ce4bd39f7f0b53f050c5087232aa93083504ebd5c79f41f6d89d7dcf988b9a1baaab0683654e817d5bd8e34f3a1f605d01b config-postmarketos-mediatek-mt8183.aarch64
|
9b8707de42635734031495da055c5860addeb656051540f1a14404b10aa8b501168d8b0e274b37bce989db3bc050e9beef722189556f6d782b92cc907731488d mt8183-kukui-jacuzzi-fennel14-rt1015p-sound.patch
|
||||||
|
0a384eaf25c652891bce2d8cf94ffa43340ee56482ba6c2d98a092eecc5e8af2ef872aefe15ad7e1c33f0488a9d5e57bef2a27560063bbb28e00f49f78ad51b9 config-postmarketos-mediatek-mt8183.aarch64
|
||||||
"
|
"
|
||||||
|
|
|
@ -0,0 +1,103 @@
|
||||||
|
From 7e23f30143f2f44b859aa424d27115a966f785bc Mon Sep 17 00:00:00 2001
|
||||||
|
From: Anton Bambura <jenneron@protonmail.com>
|
||||||
|
Date: Sat, 10 Feb 2024 03:35:48 +0200
|
||||||
|
Subject: [PATCH] Revert "ASoC: mediatek: mt8183-da7219-max98357: Map missing
|
||||||
|
jack kcontrols"
|
||||||
|
|
||||||
|
This reverts commit 9c7388baa2053f333dc524814be4d95f0c2c8ae7.
|
||||||
|
---
|
||||||
|
.../mediatek/mt8183/mt8183-da7219-max98357.c | 43 +++----------------
|
||||||
|
1 file changed, 7 insertions(+), 36 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c b/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c
|
||||||
|
index acaf81fd6c9b..195962f02471 100644
|
||||||
|
--- a/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c
|
||||||
|
+++ b/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c
|
||||||
|
@@ -29,21 +29,6 @@ struct mt8183_da7219_max98357_priv {
|
||||||
|
struct snd_soc_jack headset_jack, hdmi_jack;
|
||||||
|
};
|
||||||
|
|
||||||
|
-static struct snd_soc_jack_pin mt8183_da7219_max98357_jack_pins[] = {
|
||||||
|
- {
|
||||||
|
- .pin = "Headphone",
|
||||||
|
- .mask = SND_JACK_HEADPHONE,
|
||||||
|
- },
|
||||||
|
- {
|
||||||
|
- .pin = "Headset Mic",
|
||||||
|
- .mask = SND_JACK_MICROPHONE,
|
||||||
|
- },
|
||||||
|
- {
|
||||||
|
- .pin = "Line Out",
|
||||||
|
- .mask = SND_JACK_LINEOUT,
|
||||||
|
- },
|
||||||
|
-};
|
||||||
|
-
|
||||||
|
static int mt8183_mt6358_i2s_hw_params(struct snd_pcm_substream *substream,
|
||||||
|
struct snd_pcm_hw_params *params)
|
||||||
|
{
|
||||||
|
@@ -587,15 +572,13 @@ mt8183_da7219_max98357_headset_init(struct snd_soc_component *component)
|
||||||
|
snd_soc_card_get_drvdata(component->card);
|
||||||
|
|
||||||
|
/* Enable Headset and 4 Buttons Jack detection */
|
||||||
|
- ret = snd_soc_card_jack_new_pins(component->card,
|
||||||
|
- "Headset Jack",
|
||||||
|
- SND_JACK_HEADSET |
|
||||||
|
- SND_JACK_BTN_0 | SND_JACK_BTN_1 |
|
||||||
|
- SND_JACK_BTN_2 | SND_JACK_BTN_3 |
|
||||||
|
- SND_JACK_LINEOUT,
|
||||||
|
- &priv->headset_jack,
|
||||||
|
- mt8183_da7219_max98357_jack_pins,
|
||||||
|
- ARRAY_SIZE(mt8183_da7219_max98357_jack_pins));
|
||||||
|
+ ret = snd_soc_card_jack_new(component->card,
|
||||||
|
+ "Headset Jack",
|
||||||
|
+ SND_JACK_HEADSET |
|
||||||
|
+ SND_JACK_BTN_0 | SND_JACK_BTN_1 |
|
||||||
|
+ SND_JACK_BTN_2 | SND_JACK_BTN_3 |
|
||||||
|
+ SND_JACK_LINEOUT,
|
||||||
|
+ &priv->headset_jack);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
@@ -626,18 +609,12 @@ static struct snd_soc_codec_conf mt6358_codec_conf[] = {
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct snd_kcontrol_new mt8183_da7219_max98357_snd_controls[] = {
|
||||||
|
- SOC_DAPM_PIN_SWITCH("Headphone"),
|
||||||
|
- SOC_DAPM_PIN_SWITCH("Headset Mic"),
|
||||||
|
SOC_DAPM_PIN_SWITCH("Speakers"),
|
||||||
|
- SOC_DAPM_PIN_SWITCH("Line Out"),
|
||||||
|
};
|
||||||
|
|
||||||
|
static const
|
||||||
|
struct snd_soc_dapm_widget mt8183_da7219_max98357_dapm_widgets[] = {
|
||||||
|
- SND_SOC_DAPM_HP("Headphone", NULL),
|
||||||
|
- SND_SOC_DAPM_MIC("Headset Mic", NULL),
|
||||||
|
SND_SOC_DAPM_SPK("Speakers", NULL),
|
||||||
|
- SND_SOC_DAPM_SPK("Line Out", NULL),
|
||||||
|
SND_SOC_DAPM_PINCTRL("TDM_OUT_PINCTRL",
|
||||||
|
"aud_tdm_out_on", "aud_tdm_out_off"),
|
||||||
|
};
|
||||||
|
@@ -680,20 +657,14 @@ static struct snd_soc_codec_conf mt8183_da7219_rt1015_codec_conf[] = {
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct snd_kcontrol_new mt8183_da7219_rt1015_snd_controls[] = {
|
||||||
|
- SOC_DAPM_PIN_SWITCH("Headphone"),
|
||||||
|
- SOC_DAPM_PIN_SWITCH("Headset Mic"),
|
||||||
|
SOC_DAPM_PIN_SWITCH("Left Spk"),
|
||||||
|
SOC_DAPM_PIN_SWITCH("Right Spk"),
|
||||||
|
- SOC_DAPM_PIN_SWITCH("Line Out"),
|
||||||
|
};
|
||||||
|
|
||||||
|
static const
|
||||||
|
struct snd_soc_dapm_widget mt8183_da7219_rt1015_dapm_widgets[] = {
|
||||||
|
- SND_SOC_DAPM_HP("Headphone", NULL),
|
||||||
|
- SND_SOC_DAPM_MIC("Headset Mic", NULL),
|
||||||
|
SND_SOC_DAPM_SPK("Left Spk", NULL),
|
||||||
|
SND_SOC_DAPM_SPK("Right Spk", NULL),
|
||||||
|
- SND_SOC_DAPM_LINE("Line Out", NULL),
|
||||||
|
SND_SOC_DAPM_PINCTRL("TDM_OUT_PINCTRL",
|
||||||
|
"aud_tdm_out_on", "aud_tdm_out_off"),
|
||||||
|
};
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
From d5327028da2f2c7ff90133b57fa2fbb3bb23a760 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Alicja Michalska <ahplka19@gmail.com>
|
||||||
|
Date: Sun, 26 Nov 2023 14:44:30 +0100
|
||||||
|
Subject: [PATCH] arm64: dts: mediatek: mt8183: Add missing GPU clocks
|
||||||
|
|
||||||
|
Signed-off-by: Alicja Michalska <ahplka19@gmail.com>
|
||||||
|
---
|
||||||
|
arch/arm64/boot/dts/mediatek/mt8183.dtsi | 15 ++++++++++++++-
|
||||||
|
1 file changed, 14 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/arch/arm64/boot/dts/mediatek/mt8183.dtsi b/arch/arm64/boot/dts/mediatek/mt8183.dtsi
|
||||||
|
index 2c5665e695d2..352363db7481 100644
|
||||||
|
--- a/arch/arm64/boot/dts/mediatek/mt8183.dtsi
|
||||||
|
+++ b/arch/arm64/boot/dts/mediatek/mt8183.dtsi
|
||||||
|
@@ -1761,7 +1761,20 @@ gpu: gpu@13040000 {
|
||||||
|
<GIC_SPI 278 IRQ_TYPE_LEVEL_LOW>;
|
||||||
|
interrupt-names = "job", "mmu", "gpu";
|
||||||
|
|
||||||
|
- clocks = <&mfgcfg CLK_MFG_BG3D>;
|
||||||
|
+ clocks =
|
||||||
|
+ <&topckgen CLK_TOP_MFGPLL_CK>,
|
||||||
|
+ <&topckgen CLK_TOP_MUX_MFG>,
|
||||||
|
+ <&clk26m>,
|
||||||
|
+ <&mfgcfg CLK_MFG_BG3D>;
|
||||||
|
+ clock-names =
|
||||||
|
+ "clk_main_parent",
|
||||||
|
+ "clk_mux",
|
||||||
|
+ "clk_sub_parent",
|
||||||
|
+ "subsys_mfg_cg";
|
||||||
|
+
|
||||||
|
+ #cooling-cells = <2>;
|
||||||
|
+ cooling-min-level = <0>;
|
||||||
|
+ cooling-max-level = <15>;
|
||||||
|
|
||||||
|
power-domains =
|
||||||
|
<&spm MT8183_POWER_DOMAIN_MFG_CORE0>,
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
From 9a42e6ea802f31e439c92516cd959f0a0ade020d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Alicja Michalska <ahplka19@gmail.com>
|
||||||
|
Date: Sun, 26 Nov 2023 14:38:06 +0100
|
||||||
|
Subject: [PATCH] arm64: dts: mediatek: mt8183: Add missing syscon power domain
|
||||||
|
|
||||||
|
Signed-off-by: Alicja Michalska <ahplka19@gmail.com>
|
||||||
|
---
|
||||||
|
arch/arm64/boot/dts/mediatek/mt8183.dtsi | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/arch/arm64/boot/dts/mediatek/mt8183.dtsi b/arch/arm64/boot/dts/mediatek/mt8183.dtsi
|
||||||
|
index 5169779d01df..2c5665e695d2 100644
|
||||||
|
--- a/arch/arm64/boot/dts/mediatek/mt8183.dtsi
|
||||||
|
+++ b/arch/arm64/boot/dts/mediatek/mt8183.dtsi
|
||||||
|
@@ -1749,6 +1749,7 @@ mfgcfg: syscon@13000000 {
|
||||||
|
compatible = "mediatek,mt8183-mfgcfg", "syscon";
|
||||||
|
reg = <0 0x13000000 0 0x1000>;
|
||||||
|
#clock-cells = <1>;
|
||||||
|
+ power-domains = <&spm MT8183_POWER_DOMAIN_MFG_ASYNC>;
|
||||||
|
};
|
||||||
|
|
||||||
|
gpu: gpu@13040000 {
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
From 7ce7e9354cd7509fd1264d4a7ad6762023ff352e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Alicja Michalska <ahplka19@gmail.com>
|
||||||
|
Date: Sun, 26 Nov 2023 23:32:20 +0100
|
||||||
|
Subject: [PATCH] arm64: dts: mediatek: mt8183: Add register names and syscon
|
||||||
|
pointer
|
||||||
|
|
||||||
|
Based on patch from Collabora, it seems like we missed it.
|
||||||
|
Another node exists for vencsys, so adding that as well.
|
||||||
|
|
||||||
|
Signed-off-by: Alicja Michalska <ahplka19@gmail.com>
|
||||||
|
---
|
||||||
|
arch/arm64/boot/dts/mediatek/mt8183.dtsi | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/arch/arm64/boot/dts/mediatek/mt8183.dtsi b/arch/arm64/boot/dts/mediatek/mt8183.dtsi
|
||||||
|
index d4506fe54a8b..07ca7448adfd 100644
|
||||||
|
--- a/arch/arm64/boot/dts/mediatek/mt8183.dtsi
|
||||||
|
+++ b/arch/arm64/boot/dts/mediatek/mt8183.dtsi
|
||||||
|
@@ -2162,6 +2162,8 @@ vcodec_dec: vcodec@16000000 {
|
||||||
|
<0 0x16027000 0 0x800>, /* VP6_VD */
|
||||||
|
<0 0x16027800 0 0x800>, /* VP8_VL */
|
||||||
|
<0 0x16028400 0 0x400>; /* VP9_VD */
|
||||||
|
+ reg-names = "misc", "ld", "top", "cm", "ad", "av", "pp",
|
||||||
|
+ "hwd", "hwq", "hwb", "hwg";
|
||||||
|
interrupts = <GIC_SPI 250 IRQ_TYPE_LEVEL_LOW>;
|
||||||
|
mediatek,larb = <&larb1>;
|
||||||
|
iommus = <&iommu M4U_PORT_HW_VDEC_MC_EXT>,
|
||||||
|
@@ -2172,6 +2174,7 @@ vcodec_dec: vcodec@16000000 {
|
||||||
|
<&iommu M4U_PORT_HW_VDEC_PRED_WR_EXT>,
|
||||||
|
<&iommu M4U_PORT_HW_VDEC_PPWRAP_EXT>;
|
||||||
|
mediatek,scp = <&scp>;
|
||||||
|
+ mediatek,vdecsys = <&vdecsys>;
|
||||||
|
power-domains = <&spm MT8183_POWER_DOMAIN_VDEC>;
|
||||||
|
clocks = <&vdecsys CLK_VDEC_VDEC>;
|
||||||
|
clock-names = "vdec";
|
||||||
|
@@ -2227,6 +2230,7 @@ vcodec_enc: vcodec@17020000 {
|
||||||
|
<&iommu M4U_PORT_VENC_REF_LUMA>,
|
||||||
|
<&iommu M4U_PORT_VENC_REF_CHROMA>;
|
||||||
|
mediatek,scp = <&scp>;
|
||||||
|
+ mediatek,vencsys = <&vencsys>;
|
||||||
|
power-domains = <&spm MT8183_POWER_DOMAIN_VENC>;
|
||||||
|
clocks = <&vencsys CLK_VENC_VENC>;
|
||||||
|
clock-names = "venc";
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
|
@ -1,29 +1,23 @@
|
||||||
From ae343e5f729def512ae0b8cb63982392354f4c52 Mon Sep 17 00:00:00 2001
|
From 78cddd6de764caacd120df44fc5cb6939e684628 Mon Sep 17 00:00:00 2001
|
||||||
From: Hsin-Yi Wang <hsinyi@chromium.org>
|
From: Alicja Michalska <ahplka19@gmail.com>
|
||||||
Date: Mon, 10 May 2021 13:21:07 +0800
|
Date: Sun, 26 Nov 2023 18:24:44 +0100
|
||||||
Subject: [PATCH] CHROMIUM: ARM64: dts: add vdec/venc h264 dtsi
|
Subject: [PATCH] arm64: dts: mediatek: mt8183: Add video encoder/decoder
|
||||||
|
|
||||||
Add dtsi support for vdec/venc H264.
|
Clock names should be set correctly according to documentation in
|
||||||
|
Linux's dt-bindings, although they differ from ChromeOS.
|
||||||
|
|
||||||
Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com>
|
This should enable hardware video encoders and decoders to work.
|
||||||
Signed-off-by: Qianqian Yan <qianqian.yan@mediatek.com>
|
|
||||||
Signed-off-by: Frederic Chen <frederic.chen@mediatek.com>
|
|
||||||
Signed-off-by: Alexandre Courbot <acourbot@chromium.org>
|
|
||||||
|
|
||||||
BUG=b:187685837
|
Signed-off-by: Alicja Michalska <ahplka19@gmail.com>
|
||||||
TEST=Kernel boots and Kukui and decoder device is visible.
|
|
||||||
|
|
||||||
Change-Id: I5f9c2189e8a811dcc6895401812382c37225459a
|
|
||||||
Signed-off-by: Hsin-Yi Wang <hsinyi@chromium.org>
|
|
||||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/2883001
|
|
||||||
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
|
|
||||||
---
|
---
|
||||||
|
arch/arm64/boot/dts/mediatek/mt8183.dtsi | 48 ++++++++++++++++++++++++
|
||||||
|
1 file changed, 48 insertions(+)
|
||||||
|
|
||||||
diff --git a/arch/arm64/boot/dts/mediatek/mt8183.dtsi b/arch/arm64/boot/dts/mediatek/mt8183.dtsi
|
diff --git a/arch/arm64/boot/dts/mediatek/mt8183.dtsi b/arch/arm64/boot/dts/mediatek/mt8183.dtsi
|
||||||
index e4d5425..25e6d4d 100644
|
index 6caf5a619379..f80e0378a0d2 100644
|
||||||
--- a/arch/arm64/boot/dts/mediatek/mt8183.dtsi
|
--- a/arch/arm64/boot/dts/mediatek/mt8183.dtsi
|
||||||
+++ b/arch/arm64/boot/dts/mediatek/mt8183.dtsi
|
+++ b/arch/arm64/boot/dts/mediatek/mt8183.dtsi
|
||||||
@@ -1762,6 +1762,35 @@
|
@@ -2121,6 +2121,35 @@ vdecsys: syscon@16000000 {
|
||||||
#clock-cells = <1>;
|
#clock-cells = <1>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -53,20 +47,20 @@ index e4d5425..25e6d4d 100644
|
||||||
+ mediatek,scp = <&scp>;
|
+ mediatek,scp = <&scp>;
|
||||||
+ power-domains = <&spm MT8183_POWER_DOMAIN_VDEC>;
|
+ power-domains = <&spm MT8183_POWER_DOMAIN_VDEC>;
|
||||||
+ clocks = <&vdecsys CLK_VDEC_VDEC>;
|
+ clocks = <&vdecsys CLK_VDEC_VDEC>;
|
||||||
+ clock-names = "MT_CG_VDEC";
|
+ clock-names = "vdec";
|
||||||
+ };
|
+ };
|
||||||
+
|
+
|
||||||
larb1: larb@16010000 {
|
larb1: larb@16010000 {
|
||||||
compatible = "mediatek,mt8183-smi-larb";
|
compatible = "mediatek,mt8183-smi-larb";
|
||||||
reg = <0 0x16010000 0 0x1000>;
|
reg = <0 0x16010000 0 0x1000>;
|
||||||
@@ -1798,6 +1827,25 @@
|
@@ -2157,6 +2186,25 @@ venc_jpg: venc_jpg@17030000 {
|
||||||
clock-names = "jpgenc";
|
clock-names = "jpgenc";
|
||||||
};
|
};
|
||||||
|
|
||||||
+ vcodec_enc: vcodec@17020000 {
|
+ vcodec_enc: vcodec@17020000 {
|
||||||
+ compatible = "mediatek,mt8183-vcodec-enc";
|
+ compatible = "mediatek,mt8183-vcodec-enc";
|
||||||
+ reg = <0 0x17020000 0 0x1000>,
|
+ reg = <0 0x17020000 0 0x1000>,
|
||||||
+ <0 0x17000000 0 0x1000>; /* Dummy */
|
+ <0 0x17000000 0 0x1000>; /* Dummy?! */
|
||||||
+ interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_LOW>;
|
+ interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_LOW>;
|
||||||
+ mediatek,larb = <&larb4>;
|
+ mediatek,larb = <&larb4>;
|
||||||
+ iommus = <&iommu M4U_PORT_VENC_REC>,
|
+ iommus = <&iommu M4U_PORT_VENC_REC>,
|
||||||
|
@ -79,9 +73,12 @@ index e4d5425..25e6d4d 100644
|
||||||
+ mediatek,scp = <&scp>;
|
+ mediatek,scp = <&scp>;
|
||||||
+ power-domains = <&spm MT8183_POWER_DOMAIN_VENC>;
|
+ power-domains = <&spm MT8183_POWER_DOMAIN_VENC>;
|
||||||
+ clocks = <&vencsys CLK_VENC_VENC>;
|
+ clocks = <&vencsys CLK_VENC_VENC>;
|
||||||
+ clock-names = "MT_CG_VENC";
|
+ clock-names = "venc";
|
||||||
+ };
|
+ };
|
||||||
+
|
+
|
||||||
ipu_conn: syscon@19000000 {
|
ipu_conn: syscon@19000000 {
|
||||||
compatible = "mediatek,mt8183-ipu_conn", "syscon";
|
compatible = "mediatek,mt8183-ipu_conn", "syscon";
|
||||||
reg = <0 0x19000000 0 0x1000>;
|
reg = <0 0x19000000 0 0x1000>;
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
From ddd99db269e9f0f1105363dd6f2eb2e9d487c0e2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Alicja Michalska <ahplka19@gmail.com>
|
||||||
|
Date: Mon, 27 Nov 2023 18:06:29 +0100
|
||||||
|
Subject: [PATCH] arm64: dts: mediatek: mt8183: Drop VDEC_SYS register
|
||||||
|
|
||||||
|
Seems like it's not needed anymore with new register organization.
|
||||||
|
Attempt to load the module with it present causes probe to fail:
|
||||||
|
|
||||||
|
[17.904193] mtk-vcodec-dec 16000000.vcodec: Adding to iommu group 0
|
||||||
|
[17.904272] mtk-vcodec-dec 16000000.vcodec: Invalid register property
|
||||||
|
size: 12
|
||||||
|
[17.904278] mtk-vcodec-dec 16000000.vcodec: Failed to init dec resources
|
||||||
|
[17.904306] mtk-vcodec-dec: probe of 16000000.vcodec failed with error
|
||||||
|
-22
|
||||||
|
|
||||||
|
Signed-off-by: Alicja Michalska <ahplka19@gmail.com>
|
||||||
|
---
|
||||||
|
arch/arm64/boot/dts/mediatek/mt8183.dtsi | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/arch/arm64/boot/dts/mediatek/mt8183.dtsi b/arch/arm64/boot/dts/mediatek/mt8183.dtsi
|
||||||
|
index 07ca7448adfd..bfcceb34bc40 100644
|
||||||
|
--- a/arch/arm64/boot/dts/mediatek/mt8183.dtsi
|
||||||
|
+++ b/arch/arm64/boot/dts/mediatek/mt8183.dtsi
|
||||||
|
@@ -2150,7 +2150,7 @@ vdecsys: syscon@16000000 {
|
||||||
|
|
||||||
|
vcodec_dec: vcodec@16000000 {
|
||||||
|
compatible = "mediatek,mt8183-vcodec-dec";
|
||||||
|
- reg = <0 0x16000000 0 0x1000>, /* VDEC_SYS */
|
||||||
|
+ reg = /* <0 0x16000000 0 0x1000>, VDEC_SYS - deprecated? */
|
||||||
|
<0 0x16020000 0 0x1000>, /* VDEC_MISC */
|
||||||
|
<0 0x16021000 0 0x800>, /* VDEC_VLD */
|
||||||
|
<0 0x16021800 0 0x800>, /* VDEC_TOP */
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
|
@ -0,0 +1,94 @@
|
||||||
|
From 4f5d946ce43de73baed71589c057b9550e56bada Mon Sep 17 00:00:00 2001
|
||||||
|
From: Hsin-Yi Wang <hsinyi@chromium.org>
|
||||||
|
Date: Thu, 26 Oct 2023 12:09:14 -0700
|
||||||
|
Subject: [PATCH] arm64: dts: mt8183: Add jacuzzi makomo board
|
||||||
|
|
||||||
|
makomo is also known as Lenovo 100e Chromebook 2nd Gen MTK 2.
|
||||||
|
|
||||||
|
Signed-off-by: Hsin-Yi Wang <hsinyi@chromium.org>
|
||||||
|
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||||
|
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||||
|
---
|
||||||
|
arch/arm64/boot/dts/mediatek/Makefile | 2 ++
|
||||||
|
.../mt8183-kukui-jacuzzi-makomo-sku0.dts | 24 +++++++++++++++++++
|
||||||
|
.../mt8183-kukui-jacuzzi-makomo-sku1.dts | 24 +++++++++++++++++++
|
||||||
|
3 files changed, 50 insertions(+)
|
||||||
|
create mode 100644 arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-makomo-sku0.dts
|
||||||
|
create mode 100644 arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-makomo-sku1.dts
|
||||||
|
|
||||||
|
diff --git a/arch/arm64/boot/dts/mediatek/Makefile b/arch/arm64/boot/dts/mediatek/Makefile
|
||||||
|
index a13419e67e8e..1b85a8c12850 100644
|
||||||
|
--- a/arch/arm64/boot/dts/mediatek/Makefile
|
||||||
|
+++ b/arch/arm64/boot/dts/mediatek/Makefile
|
||||||
|
@@ -32,6 +32,8 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-fennel14-sku2.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-juniper-sku16.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-kappa.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-kenzo.dtb
|
||||||
|
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-makomo-sku0.dtb
|
||||||
|
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-makomo-sku1.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-willow-sku0.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-willow-sku1.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-kakadu.dtb
|
||||||
|
diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-makomo-sku0.dts b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-makomo-sku0.dts
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000000..4eb2a0d571af
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-makomo-sku0.dts
|
||||||
|
@@ -0,0 +1,24 @@
|
||||||
|
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||||
|
+/*
|
||||||
|
+ * Copyright 2023 Google LLC
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
+/dts-v1/;
|
||||||
|
+#include "mt8183-kukui-jacuzzi-fennel.dtsi"
|
||||||
|
+#include "mt8183-kukui-audio-da7219-rt1015p.dtsi"
|
||||||
|
+
|
||||||
|
+/ {
|
||||||
|
+ model = "Google makomo sku0 board";
|
||||||
|
+ chassis-type = "laptop";
|
||||||
|
+ compatible = "google,makomo-sku0", "google,makomo", "mediatek,mt8183";
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&qca_wifi {
|
||||||
|
+ qcom,ath10k-calibration-variant = "GO_FENNEL14";
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&mmc1_pins_uhs {
|
||||||
|
+ pins-clk {
|
||||||
|
+ drive-strength = <MTK_DRIVE_6mA>;
|
||||||
|
+ };
|
||||||
|
+};
|
||||||
|
diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-makomo-sku1.dts b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-makomo-sku1.dts
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000000..6a733361e8ae
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-makomo-sku1.dts
|
||||||
|
@@ -0,0 +1,24 @@
|
||||||
|
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||||
|
+/*
|
||||||
|
+ * Copyright 2023 Google LLC
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
+/dts-v1/;
|
||||||
|
+#include "mt8183-kukui-jacuzzi-fennel.dtsi"
|
||||||
|
+#include "mt8183-kukui-audio-ts3a227e-rt1015p.dtsi"
|
||||||
|
+
|
||||||
|
+/ {
|
||||||
|
+ model = "Google makomo sku1 board";
|
||||||
|
+ chassis-type = "laptop";
|
||||||
|
+ compatible = "google,makomo-sku1", "google,makomo", "mediatek,mt8183";
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&qca_wifi {
|
||||||
|
+ qcom,ath10k-calibration-variant = "GO_FENNEL14";
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&mmc1_pins_uhs {
|
||||||
|
+ pins-clk {
|
||||||
|
+ drive-strength = <MTK_DRIVE_6mA>;
|
||||||
|
+ };
|
||||||
|
+};
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
|
@ -0,0 +1,192 @@
|
||||||
|
From 055ef10ccdd430973e1f05530cedcdd44cf744da Mon Sep 17 00:00:00 2001
|
||||||
|
From: Hsin-Yi Wang <hsinyi@chromium.org>
|
||||||
|
Date: Thu, 26 Oct 2023 12:09:16 -0700
|
||||||
|
Subject: [PATCH] arm64: dts: mt8183: Add jacuzzi pico/pico6 board
|
||||||
|
|
||||||
|
pico is also known as Acer Chromebook Spin 311.
|
||||||
|
|
||||||
|
Signed-off-by: Hsin-Yi Wang <hsinyi@chromium.org>
|
||||||
|
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||||
|
[Angelo: Fixed blank lines at the end for pico.dts]
|
||||||
|
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||||
|
---
|
||||||
|
arch/arm64/boot/dts/mediatek/Makefile | 2 +
|
||||||
|
.../mediatek/mt8183-kukui-jacuzzi-pico.dts | 35 ++++++
|
||||||
|
.../mediatek/mt8183-kukui-jacuzzi-pico6.dts | 110 ++++++++++++++++++
|
||||||
|
3 files changed, 147 insertions(+)
|
||||||
|
create mode 100644 arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-pico.dts
|
||||||
|
create mode 100644 arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-pico6.dts
|
||||||
|
|
||||||
|
diff --git a/arch/arm64/boot/dts/mediatek/Makefile b/arch/arm64/boot/dts/mediatek/Makefile
|
||||||
|
index 1b85a8c12850..ed174dde97e1 100644
|
||||||
|
--- a/arch/arm64/boot/dts/mediatek/Makefile
|
||||||
|
+++ b/arch/arm64/boot/dts/mediatek/Makefile
|
||||||
|
@@ -34,6 +34,8 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-kappa.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-kenzo.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-makomo-sku0.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-makomo-sku1.dtb
|
||||||
|
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-pico.dtb
|
||||||
|
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-pico6.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-willow-sku0.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-willow-sku1.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-kakadu.dtb
|
||||||
|
diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-pico.dts b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-pico.dts
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000000..8ce9568fee95
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-pico.dts
|
||||||
|
@@ -0,0 +1,35 @@
|
||||||
|
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||||
|
+/*
|
||||||
|
+ * Copyright 2023 Google LLC
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
+/dts-v1/;
|
||||||
|
+#include "mt8183-kukui-jacuzzi.dtsi"
|
||||||
|
+#include "mt8183-kukui-audio-ts3a227e-max98357a.dtsi"
|
||||||
|
+
|
||||||
|
+/ {
|
||||||
|
+ model = "Google pico board";
|
||||||
|
+ chassis-type = "convertible";
|
||||||
|
+ compatible = "google,pico-sku1", "google,pico", "mediatek,mt8183";
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&i2c_tunnel {
|
||||||
|
+ google,remote-bus = <0>;
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&i2c2 {
|
||||||
|
+ i2c-scl-internal-delay-ns = <25000>;
|
||||||
|
+
|
||||||
|
+ trackpad@2c {
|
||||||
|
+ compatible = "hid-over-i2c";
|
||||||
|
+ reg = <0x2c>;
|
||||||
|
+ hid-descr-addr = <0x20>;
|
||||||
|
+
|
||||||
|
+ pinctrl-names = "default";
|
||||||
|
+ pinctrl-0 = <&trackpad_pins>;
|
||||||
|
+
|
||||||
|
+ interrupts-extended = <&pio 7 IRQ_TYPE_LEVEL_LOW>;
|
||||||
|
+
|
||||||
|
+ wakeup-source;
|
||||||
|
+ };
|
||||||
|
+};
|
||||||
|
diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-pico6.dts b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-pico6.dts
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000000..a2e74b829320
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-pico6.dts
|
||||||
|
@@ -0,0 +1,110 @@
|
||||||
|
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||||
|
+/*
|
||||||
|
+ * Copyright 2023 Google LLC
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
+/dts-v1/;
|
||||||
|
+#include "mt8183-kukui-jacuzzi.dtsi"
|
||||||
|
+#include "mt8183-kukui-audio-ts3a227e-max98357a.dtsi"
|
||||||
|
+
|
||||||
|
+/ {
|
||||||
|
+ model = "Google pico6 board";
|
||||||
|
+ chassis-type = "convertible";
|
||||||
|
+ compatible = "google,pico-sku2", "google,pico", "mediatek,mt8183";
|
||||||
|
+
|
||||||
|
+ bt_wakeup: bt-wakeup {
|
||||||
|
+ compatible = "gpio-keys";
|
||||||
|
+ pinctrl-names = "default";
|
||||||
|
+ pinctrl-0 = <&bt_pins_wakeup>;
|
||||||
|
+
|
||||||
|
+ wobt {
|
||||||
|
+ label = "Wake on BT";
|
||||||
|
+ gpios = <&pio 42 GPIO_ACTIVE_HIGH>;
|
||||||
|
+ linux,code = <KEY_WAKEUP>;
|
||||||
|
+ wakeup-source;
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&i2c_tunnel {
|
||||||
|
+ google,remote-bus = <0>;
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&i2c2 {
|
||||||
|
+ i2c-scl-internal-delay-ns = <25000>;
|
||||||
|
+
|
||||||
|
+ trackpad@2c {
|
||||||
|
+ compatible = "hid-over-i2c";
|
||||||
|
+ reg = <0x2c>;
|
||||||
|
+ hid-descr-addr = <0x20>;
|
||||||
|
+
|
||||||
|
+ pinctrl-names = "default";
|
||||||
|
+ pinctrl-0 = <&trackpad_pins>;
|
||||||
|
+
|
||||||
|
+ interrupts-extended = <&pio 7 IRQ_TYPE_LEVEL_LOW>;
|
||||||
|
+
|
||||||
|
+ wakeup-source;
|
||||||
|
+ };
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&wifi_wakeup {
|
||||||
|
+ wowlan {
|
||||||
|
+ gpios = <&pio 113 GPIO_ACTIVE_LOW>;
|
||||||
|
+ };
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&wifi_pwrseq {
|
||||||
|
+ post-power-on-delay-ms = <50>;
|
||||||
|
+
|
||||||
|
+ /* Toggle WIFI_ENABLE to reset the chip. */
|
||||||
|
+ reset-gpios = <&pio 8 GPIO_ACTIVE_LOW>;
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&wifi_pins_pwrseq {
|
||||||
|
+ pins-wifi-enable {
|
||||||
|
+ pinmux = <PINMUX_GPIO8__FUNC_GPIO8>;
|
||||||
|
+ };
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&mmc1_pins_default {
|
||||||
|
+ pins-cmd-dat {
|
||||||
|
+ drive-strength = <MTK_DRIVE_6mA>;
|
||||||
|
+ };
|
||||||
|
+ pins-clk {
|
||||||
|
+ drive-strength = <MTK_DRIVE_6mA>;
|
||||||
|
+ };
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&mmc1_pins_uhs {
|
||||||
|
+ pins-clk {
|
||||||
|
+ drive-strength = <MTK_DRIVE_6mA>;
|
||||||
|
+ };
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&mmc1 {
|
||||||
|
+ bt_reset: bt-reset {
|
||||||
|
+ compatible = "mediatek,mt7921s-bluetooth";
|
||||||
|
+ pinctrl-names = "default";
|
||||||
|
+ pinctrl-0 = <&bt_pins_reset>;
|
||||||
|
+ reset-gpios = <&pio 120 GPIO_ACTIVE_LOW>;
|
||||||
|
+ };
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&pio {
|
||||||
|
+ bt_pins_wakeup: bt-pins-wakeup {
|
||||||
|
+ piins-bt-wakeup {
|
||||||
|
+ pinmux = <PINMUX_GPIO42__FUNC_GPIO42>;
|
||||||
|
+ input-enable;
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ bt_pins_reset: bt-pins-reset {
|
||||||
|
+ pins-bt-reset {
|
||||||
|
+ pinmux = <PINMUX_GPIO120__FUNC_GPIO120>;
|
||||||
|
+ output-high;
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+/delete-node/ &bluetooth;
|
||||||
|
+/delete-node/ &bt_pins;
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
|
@ -1,8 +1,28 @@
|
||||||
based on: https://patchwork.kernel.org/project/linux-mediatek/patch/20210604052312.1040707-1-hsinyi@chromium.org/
|
diff --git a/arch/arm64/boot/dts/mediatek/Makefile b/arch/arm64/boot/dts/mediatek/Makefile
|
||||||
|
index ebef3873e..93523a22d 100644
|
||||||
|
--- a/arch/arm64/boot/dts/mediatek/Makefile
|
||||||
|
+++ b/arch/arm64/boot/dts/mediatek/Makefile
|
||||||
|
@@ -22,6 +22,8 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt8173-elm-hana-rev7.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8173-evb.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-evb.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-burnet.dtb
|
||||||
|
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-cerise.dtb
|
||||||
|
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-cerise-rev3.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-cozmo.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-damu.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-fennel-sku1.dtb
|
||||||
|
@@ -32,6 +34,8 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-fennel14-sku2.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-juniper-sku16.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-kappa.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-kenzo.dtb
|
||||||
|
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-stern.dtb
|
||||||
|
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-stern-rev3.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-makomo-sku0.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-makomo-sku1.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-pico.dtb
|
||||||
diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-cerise-rev3.dts b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-cerise-rev3.dts
|
diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-cerise-rev3.dts b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-cerise-rev3.dts
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..2776d93561c96
|
index 000000000..2776d9356
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-cerise-rev3.dts
|
+++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-cerise-rev3.dts
|
||||||
@@ -0,0 +1,24 @@
|
@@ -0,0 +1,24 @@
|
||||||
|
@ -32,7 +52,7 @@ index 0000000000000..2776d93561c96
|
||||||
+};
|
+};
|
||||||
diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-cerise.dts b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-cerise.dts
|
diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-cerise.dts b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-cerise.dts
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..418b5024d1a7c
|
index 000000000..418b5024d
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-cerise.dts
|
+++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-cerise.dts
|
||||||
@@ -0,0 +1,24 @@
|
@@ -0,0 +1,24 @@
|
||||||
|
@ -62,7 +82,7 @@ index 0000000000000..418b5024d1a7c
|
||||||
+};
|
+};
|
||||||
diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-cerise.dtsi b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-cerise.dtsi
|
diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-cerise.dtsi b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-cerise.dtsi
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..ec1561ac395ba
|
index 000000000..ec1561ac3
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-cerise.dtsi
|
+++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-cerise.dtsi
|
||||||
@@ -0,0 +1,13 @@
|
@@ -0,0 +1,13 @@
|
||||||
|
@ -81,7 +101,7 @@ index 0000000000000..ec1561ac395ba
|
||||||
+};
|
+};
|
||||||
diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-stern-rev3.dts b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-stern-rev3.dts
|
diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-stern-rev3.dts b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-stern-rev3.dts
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..05303c4ed7511
|
index 000000000..05303c4ed
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-stern-rev3.dts
|
+++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-stern-rev3.dts
|
||||||
@@ -0,0 +1,34 @@
|
@@ -0,0 +1,34 @@
|
||||||
|
@ -121,7 +141,7 @@ index 0000000000000..05303c4ed7511
|
||||||
+};
|
+};
|
||||||
diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-stern.dts b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-stern.dts
|
diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-stern.dts b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-stern.dts
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..5be767bc873b8
|
index 000000000..5be767bc8
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-stern.dts
|
+++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-stern.dts
|
||||||
@@ -0,0 +1,34 @@
|
@@ -0,0 +1,34 @@
|
|
@ -0,0 +1,186 @@
|
||||||
|
diff --git a/arch/arm64/boot/dts/mediatek/Makefile b/arch/arm64/boot/dts/mediatek/Makefile
|
||||||
|
index c99c3372a..b9166e8be 100644
|
||||||
|
--- a/arch/arm64/boot/dts/mediatek/Makefile
|
||||||
|
+++ b/arch/arm64/boot/dts/mediatek/Makefile
|
||||||
|
@@ -36,6 +36,8 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-willow-sku0.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-willow-sku1.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-kakadu.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-kakadu-sku22.dtb
|
||||||
|
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-katsu-sku32.dtb
|
||||||
|
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-katsu-sku38.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-kodama-sku16.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-kodama-sku272.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-kodama-sku288.dtb
|
||||||
|
diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-kakadu-sku22.dts b/arch/arm64/boot/dts/mediatek/mt8183-kukui-kakadu-sku22.dts
|
||||||
|
index fcce8ea12..1ecf39458 100644
|
||||||
|
--- a/arch/arm64/boot/dts/mediatek/mt8183-kukui-kakadu-sku22.dts
|
||||||
|
+++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-kakadu-sku22.dts
|
||||||
|
@@ -14,6 +14,24 @@ / {
|
||||||
|
"google,kakadu", "mediatek,mt8183";
|
||||||
|
};
|
||||||
|
|
||||||
|
+&i2c0 {
|
||||||
|
+ touchscreen: touchscreen@10 {
|
||||||
|
+ compatible = "hid-over-i2c";
|
||||||
|
+ reg = <0x10>;
|
||||||
|
+ pinctrl-names = "default";
|
||||||
|
+ pinctrl-0 = <&open_touch>;
|
||||||
|
+
|
||||||
|
+ interrupts-extended = <&pio 155 IRQ_TYPE_EDGE_FALLING>;
|
||||||
|
+
|
||||||
|
+ post-power-on-delay-ms = <10>;
|
||||||
|
+ hid-descr-addr = <0x0001>;
|
||||||
|
+ };
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&panel {
|
||||||
|
+ compatible = "boe,tv105wum-nw0";
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
&sound {
|
||||||
|
compatible = "mediatek,mt8183_mt6358_ts3a227_rt1015p";
|
||||||
|
};
|
||||||
|
diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-kakadu.dts b/arch/arm64/boot/dts/mediatek/mt8183-kukui-kakadu.dts
|
||||||
|
index ebfabba72..ba74109a4 100644
|
||||||
|
--- a/arch/arm64/boot/dts/mediatek/mt8183-kukui-kakadu.dts
|
||||||
|
+++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-kakadu.dts
|
||||||
|
@@ -13,3 +13,21 @@ / {
|
||||||
|
compatible = "google,kakadu-rev3", "google,kakadu-rev2",
|
||||||
|
"google,kakadu", "mediatek,mt8183";
|
||||||
|
};
|
||||||
|
+
|
||||||
|
+&i2c0 {
|
||||||
|
+ touchscreen: touchscreen@10 {
|
||||||
|
+ compatible = "hid-over-i2c";
|
||||||
|
+ reg = <0x10>;
|
||||||
|
+ pinctrl-names = "default";
|
||||||
|
+ pinctrl-0 = <&open_touch>;
|
||||||
|
+
|
||||||
|
+ interrupts-extended = <&pio 155 IRQ_TYPE_EDGE_FALLING>;
|
||||||
|
+
|
||||||
|
+ post-power-on-delay-ms = <10>;
|
||||||
|
+ hid-descr-addr = <0x0001>;
|
||||||
|
+ };
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&panel {
|
||||||
|
+ compatible = "boe,tv105wum-nw0";
|
||||||
|
+};
|
||||||
|
diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-kakadu.dtsi b/arch/arm64/boot/dts/mediatek/mt8183-kukui-kakadu.dtsi
|
||||||
|
index a11adeb29..ac211e8f9 100644
|
||||||
|
--- a/arch/arm64/boot/dts/mediatek/mt8183-kukui-kakadu.dtsi
|
||||||
|
+++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-kakadu.dtsi
|
||||||
|
@@ -63,19 +63,6 @@ &bluetooth {
|
||||||
|
|
||||||
|
&i2c0 {
|
||||||
|
status = "okay";
|
||||||
|
-
|
||||||
|
- touchscreen: touchscreen@10 {
|
||||||
|
- compatible = "hid-over-i2c";
|
||||||
|
- reg = <0x10>;
|
||||||
|
- pinctrl-names = "default";
|
||||||
|
- pinctrl-0 = <&open_touch>;
|
||||||
|
-
|
||||||
|
- interrupt-parent = <&pio>;
|
||||||
|
- interrupts = <155 IRQ_TYPE_EDGE_FALLING>;
|
||||||
|
-
|
||||||
|
- post-power-on-delay-ms = <10>;
|
||||||
|
- hid-descr-addr = <0x0001>;
|
||||||
|
- };
|
||||||
|
};
|
||||||
|
|
||||||
|
&mt6358_vcama2_reg {
|
||||||
|
@@ -384,5 +371,4 @@ &qca_wifi {
|
||||||
|
|
||||||
|
&panel {
|
||||||
|
status = "okay";
|
||||||
|
- compatible = "boe,tv105wum-nw0";
|
||||||
|
};
|
||||||
|
diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-katsu-sku32.dts b/arch/arm64/boot/dts/mediatek/mt8183-kukui-katsu-sku32.dts
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000..05361008e
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-katsu-sku32.dts
|
||||||
|
@@ -0,0 +1,36 @@
|
||||||
|
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||||
|
+/*
|
||||||
|
+ * Copyright 2023 Google LLC
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
+/dts-v1/;
|
||||||
|
+#include "mt8183-kukui-kakadu.dtsi"
|
||||||
|
+#include "mt8183-kukui-audio-da7219-rt1015p.dtsi"
|
||||||
|
+
|
||||||
|
+/ {
|
||||||
|
+ model = "Google katsu board";
|
||||||
|
+ chassis-type = "tablet";
|
||||||
|
+ compatible = "google,katsu-sku32", "google,katsu", "mediatek,mt8183";
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&i2c0 {
|
||||||
|
+ touchscreen1: touchscreen@5d {
|
||||||
|
+ compatible = "goodix,gt7375p";
|
||||||
|
+ reg = <0x5d>;
|
||||||
|
+ pinctrl-names = "default";
|
||||||
|
+ pinctrl-0 = <&open_touch>;
|
||||||
|
+
|
||||||
|
+ interrupts-extended = <&pio 155 IRQ_TYPE_LEVEL_LOW>;
|
||||||
|
+
|
||||||
|
+ reset-gpios = <&pio 156 GPIO_ACTIVE_LOW>;
|
||||||
|
+ vdd-supply = <&lcd_pp3300>;
|
||||||
|
+ };
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&panel {
|
||||||
|
+ compatible = "starry,2081101qfh032011-53g";
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&qca_wifi {
|
||||||
|
+ qcom,ath10k-calibration-variant = "GO_KATSU";
|
||||||
|
+};
|
||||||
|
diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-katsu-sku38.dts b/arch/arm64/boot/dts/mediatek/mt8183-kukui-katsu-sku38.dts
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000..cf008ed82
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-katsu-sku38.dts
|
||||||
|
@@ -0,0 +1,40 @@
|
||||||
|
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||||
|
+/*
|
||||||
|
+ * Copyright 2023 Google LLC
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
+/dts-v1/;
|
||||||
|
+#include "mt8183-kukui-kakadu.dtsi"
|
||||||
|
+#include "mt8183-kukui-audio-rt1015p.dtsi"
|
||||||
|
+
|
||||||
|
+/ {
|
||||||
|
+ model = "Google katsu sku38 board";
|
||||||
|
+ chassis-type = "tablet";
|
||||||
|
+ compatible = "google,katsu-sku38", "google,katsu", "mediatek,mt8183";
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&i2c0 {
|
||||||
|
+ touchscreen1: touchscreen@5d {
|
||||||
|
+ compatible = "goodix,gt7375p";
|
||||||
|
+ reg = <0x5d>;
|
||||||
|
+ pinctrl-names = "default";
|
||||||
|
+ pinctrl-0 = <&open_touch>;
|
||||||
|
+
|
||||||
|
+ interrupts-extended = <&pio 155 IRQ_TYPE_LEVEL_LOW>;
|
||||||
|
+
|
||||||
|
+ reset-gpios = <&pio 156 GPIO_ACTIVE_LOW>;
|
||||||
|
+ vdd-supply = <&lcd_pp3300>;
|
||||||
|
+ };
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&panel {
|
||||||
|
+ compatible = "starry,2081101qfh032011-53g";
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&qca_wifi {
|
||||||
|
+ qcom,ath10k-calibration-variant = "GO_KATSU";
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&sound {
|
||||||
|
+ compatible = "mediatek,mt8183_mt6358_ts3a227_rt1015p";
|
||||||
|
+};
|
File diff suppressed because it is too large
Load diff
|
@ -1,153 +0,0 @@
|
||||||
diff -Naur a/arch/arm64/boot/dts/mediatek/mt8183.dtsi b/arch/arm64/boot/dts/mediatek/mt8183.dtsi
|
|
||||||
--- a/arch/arm64/boot/dts/mediatek/mt8183.dtsi 2022-01-29 22:43:21.564586347 +0000
|
|
||||||
+++ b/arch/arm64/boot/dts/mediatek/mt8183.dtsi 2022-01-29 22:23:29.179058153 +0000
|
|
||||||
@@ -1728,6 +1728,17 @@
|
|
||||||
phy-names = "dphy";
|
|
||||||
};
|
|
||||||
|
|
||||||
+ dpi0: dpi@14015000 {
|
|
||||||
+ compatible = "mediatek,mt8183-dpi";
|
|
||||||
+ reg = <0 0x14015000 0 0x1000>;
|
|
||||||
+ interrupts = <GIC_SPI 237 IRQ_TYPE_LEVEL_LOW>;
|
|
||||||
+ power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
|
|
||||||
+ clocks = <&mmsys CLK_MM_DPI_IF>,
|
|
||||||
+ <&mmsys CLK_MM_DPI_MM>,
|
|
||||||
+ <&apmixedsys CLK_APMIXED_TVDPLL>;
|
|
||||||
+ clock-names = "pixel", "engine", "pll";
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
mutex: mutex@14016000 {
|
|
||||||
compatible = "mediatek,mt8183-disp-mutex";
|
|
||||||
reg = <0 0x14016000 0 0x1000>;
|
|
||||||
diff -Naur a/arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi b/arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi
|
|
||||||
--- a/arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi 2022-01-29 22:43:21.560586382 +0000
|
|
||||||
+++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi 2022-01-29 17:55:54.649273984 +0000
|
|
||||||
@@ -266,6 +266,18 @@
|
|
||||||
proc-supply = <&mt6358_vproc11_reg>;
|
|
||||||
};
|
|
||||||
|
|
||||||
+&dpi0 {
|
|
||||||
+ pinctrl-names = "default", "dpimode";
|
|
||||||
+ pinctrl-0 = <&dpi_pin_default>;
|
|
||||||
+ pinctrl-1 = <&dpi_pin_func>;
|
|
||||||
+ status = "okay";
|
|
||||||
+ port {
|
|
||||||
+ dpi_out: endpoint {
|
|
||||||
+ remote-endpoint = <&it6505_in>;
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
&dsi0 {
|
|
||||||
status = "okay";
|
|
||||||
#address-cells = <1>;
|
|
||||||
@@ -325,6 +337,28 @@
|
|
||||||
clock-frequency = <100000>;
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
+
|
|
||||||
+ it6505dptx: it6505dptx@5c {
|
|
||||||
+ afe-setting = <1>;
|
|
||||||
+ compatible = "ite,it6505";
|
|
||||||
+ status = "okay";
|
|
||||||
+ interrupt-parent = <&pio>;
|
|
||||||
+ interrupts = <152 IRQ_TYPE_EDGE_FALLING 152 0>;
|
|
||||||
+ reg = <0x5c>;
|
|
||||||
+ pinctrl-names = "default";
|
|
||||||
+ pinctrl-0 = <&it6505_pins>;
|
|
||||||
+ ovdd-supply = <&mt6358_vsim2_reg>;
|
|
||||||
+ pwr18-supply = <&it6505_pp18_reg>;
|
|
||||||
+ reset-gpios = <&pio 179 1>;
|
|
||||||
+ hpd-gpios = <&pio 9 0>;
|
|
||||||
+ extcon = <&usbc_extcon>;
|
|
||||||
+ no-laneswap;
|
|
||||||
+ port {
|
|
||||||
+ it6505_in: endpoint {
|
|
||||||
+ remote-endpoint = <&dpi_out>;
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
};
|
|
||||||
|
|
||||||
&i2c5 {
|
|
||||||
@@ -473,6 +507,50 @@
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
+ dpi_pin_default: dpi_pin_default {
|
|
||||||
+ pins_cmd_dat {
|
|
||||||
+ pinmux = <PINMUX_GPIO13__FUNC_GPIO13>,
|
|
||||||
+ <PINMUX_GPIO14__FUNC_GPIO14>,
|
|
||||||
+ <PINMUX_GPIO15__FUNC_GPIO15>,
|
|
||||||
+ <PINMUX_GPIO16__FUNC_GPIO16>,
|
|
||||||
+ <PINMUX_GPIO17__FUNC_GPIO17>,
|
|
||||||
+ <PINMUX_GPIO18__FUNC_GPIO18>,
|
|
||||||
+ <PINMUX_GPIO19__FUNC_GPIO19>,
|
|
||||||
+ <PINMUX_GPIO20__FUNC_GPIO20>,
|
|
||||||
+ <PINMUX_GPIO21__FUNC_GPIO21>,
|
|
||||||
+ <PINMUX_GPIO22__FUNC_GPIO22>,
|
|
||||||
+ <PINMUX_GPIO23__FUNC_GPIO23>,
|
|
||||||
+ <PINMUX_GPIO24__FUNC_GPIO24>,
|
|
||||||
+ <PINMUX_GPIO25__FUNC_GPIO25>,
|
|
||||||
+ <PINMUX_GPIO26__FUNC_GPIO26>,
|
|
||||||
+ <PINMUX_GPIO27__FUNC_GPIO27>,
|
|
||||||
+ <PINMUX_GPIO28__FUNC_GPIO28>;
|
|
||||||
+ drive-strength = <MTK_DRIVE_6mA>;
|
|
||||||
+ output-low;
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+ dpi_pin_func: dpi_pin_func {
|
|
||||||
+ pins_cmd_dat {
|
|
||||||
+ pinmux = <PINMUX_GPIO13__FUNC_DBPI_D0>,
|
|
||||||
+ <PINMUX_GPIO14__FUNC_DBPI_D1>,
|
|
||||||
+ <PINMUX_GPIO15__FUNC_DBPI_D2>,
|
|
||||||
+ <PINMUX_GPIO16__FUNC_DBPI_D3>,
|
|
||||||
+ <PINMUX_GPIO17__FUNC_DBPI_D4>,
|
|
||||||
+ <PINMUX_GPIO18__FUNC_DBPI_D5>,
|
|
||||||
+ <PINMUX_GPIO19__FUNC_DBPI_D6>,
|
|
||||||
+ <PINMUX_GPIO20__FUNC_DBPI_D7>,
|
|
||||||
+ <PINMUX_GPIO21__FUNC_DBPI_D8>,
|
|
||||||
+ <PINMUX_GPIO22__FUNC_DBPI_D9>,
|
|
||||||
+ <PINMUX_GPIO23__FUNC_DBPI_D10>,
|
|
||||||
+ <PINMUX_GPIO24__FUNC_DBPI_D11>,
|
|
||||||
+ <PINMUX_GPIO25__FUNC_DBPI_HSYNC>,
|
|
||||||
+ <PINMUX_GPIO26__FUNC_DBPI_VSYNC>,
|
|
||||||
+ <PINMUX_GPIO27__FUNC_DBPI_DE>,
|
|
||||||
+ <PINMUX_GPIO28__FUNC_DBPI_CK>;
|
|
||||||
+ drive-strength = <MTK_DRIVE_6mA>;
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
ec_ap_int_odl: ec_ap_int_odl {
|
|
||||||
pins1 {
|
|
||||||
pinmux = <PINMUX_GPIO151__FUNC_GPIO151>;
|
|
||||||
@@ -550,6 +628,29 @@
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
+ it6505_pins: it6505_pins {
|
|
||||||
+ pins_hpd {
|
|
||||||
+ pinmux = <PINMUX_GPIO9__FUNC_GPIO9>;
|
|
||||||
+ input-enable;
|
|
||||||
+ bias-pull-up;
|
|
||||||
+ };
|
|
||||||
+ pins_int {
|
|
||||||
+ pinmux = <PINMUX_GPIO152__FUNC_GPIO152>;
|
|
||||||
+ input-enable;
|
|
||||||
+ bias-pull-up;
|
|
||||||
+ };
|
|
||||||
+ pins_power_enable {
|
|
||||||
+ pinmux = <PINMUX_GPIO178__FUNC_GPIO178>;
|
|
||||||
+ output-low;
|
|
||||||
+ bias-pull-up;
|
|
||||||
+ };
|
|
||||||
+ pins_reset {
|
|
||||||
+ pinmux = <PINMUX_GPIO179__FUNC_GPIO179>;
|
|
||||||
+ output-low;
|
|
||||||
+ bias-pull-up;
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
mmc0_pins_default: mmc0-pins-default {
|
|
||||||
pins_cmd_dat {
|
|
||||||
pinmux = <PINMUX_GPIO123__FUNC_MSDC0_DAT0>,
|
|
|
@ -1,110 +0,0 @@
|
||||||
from: https://patchwork.kernel.org/project/linux-mediatek/cover/20221107160437.740353-1-nfraprado@collabora.com/
|
|
||||||
|
|
||||||
diff --git a/sound/soc/mediatek/mt2701/mt2701-cs42448.c b/sound/soc/mediatek/mt2701/mt2701-cs42448.c
|
|
||||||
index d9fd6eb786aa..08ef109744c7 100644
|
|
||||||
--- a/sound/soc/mediatek/mt2701/mt2701-cs42448.c
|
|
||||||
+++ b/sound/soc/mediatek/mt2701/mt2701-cs42448.c
|
|
||||||
@@ -418,6 +418,7 @@ static const struct of_device_id mt2701_cs42448_machine_dt_match[] = {
|
|
||||||
{.compatible = "mediatek,mt2701-cs42448-machine",},
|
|
||||||
{}
|
|
||||||
};
|
|
||||||
+MODULE_DEVICE_TABLE(of, mt2701_cs42448_machine_dt_match);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static struct platform_driver mt2701_cs42448_machine = {
|
|
||||||
diff --git a/sound/soc/mediatek/mt2701/mt2701-wm8960.c b/sound/soc/mediatek/mt2701/mt2701-wm8960.c
|
|
||||||
index 0cdf2ae36243..a184032c15b6 100644
|
|
||||||
--- a/sound/soc/mediatek/mt2701/mt2701-wm8960.c
|
|
||||||
+++ b/sound/soc/mediatek/mt2701/mt2701-wm8960.c
|
|
||||||
@@ -161,6 +161,7 @@ static const struct of_device_id mt2701_wm8960_machine_dt_match[] = {
|
|
||||||
{.compatible = "mediatek,mt2701-wm8960-machine",},
|
|
||||||
{}
|
|
||||||
};
|
|
||||||
+MODULE_DEVICE_TABLE(of, mt2701_wm8960_machine_dt_match);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static struct platform_driver mt2701_wm8960_machine = {
|
|
||||||
diff --git a/sound/soc/mediatek/mt6797/mt6797-mt6351.c b/sound/soc/mediatek/mt6797/mt6797-mt6351.c
|
|
||||||
index d2f6213a6bfc..784c201b8fd4 100644
|
|
||||||
--- a/sound/soc/mediatek/mt6797/mt6797-mt6351.c
|
|
||||||
+++ b/sound/soc/mediatek/mt6797/mt6797-mt6351.c
|
|
||||||
@@ -242,6 +242,7 @@ static const struct of_device_id mt6797_mt6351_dt_match[] = {
|
|
||||||
{.compatible = "mediatek,mt6797-mt6351-sound",},
|
|
||||||
{}
|
|
||||||
};
|
|
||||||
+MODULE_DEVICE_TABLE(of, mt6797_mt6351_dt_match);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static struct platform_driver mt6797_mt6351_driver = {
|
|
||||||
diff --git a/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c b/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c
|
|
||||||
index 9f22d3939818..0e572fe28c58 100644
|
|
||||||
--- a/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c
|
|
||||||
+++ b/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c
|
|
||||||
@@ -842,6 +842,7 @@ static const struct of_device_id mt8183_da7219_max98357_dt_match[] = {
|
|
||||||
},
|
|
||||||
{}
|
|
||||||
};
|
|
||||||
+MODULE_DEVICE_TABLE(of, mt8183_da7219_max98357_dt_match);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static struct platform_driver mt8183_da7219_max98357_driver = {
|
|
||||||
diff --git a/sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c b/sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c
|
|
||||||
index a86085223677..8fb473543cf9 100644
|
|
||||||
--- a/sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c
|
|
||||||
+++ b/sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c
|
|
||||||
@@ -835,6 +835,7 @@ static const struct of_device_id mt8183_mt6358_ts3a227_max98357_dt_match[] = {
|
|
||||||
},
|
|
||||||
{}
|
|
||||||
};
|
|
||||||
+MODULE_DEVICE_TABLE(of, mt8183_mt6358_ts3a227_max98357_dt_match);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static struct platform_driver mt8183_mt6358_ts3a227_max98357_driver = {
|
|
||||||
diff --git a/sound/soc/mediatek/mt8186/mt8186-mt6366-da7219-max98357.c b/sound/soc/mediatek/mt8186/mt8186-mt6366-da7219-max98357.c
|
|
||||||
index cfca6bdee834..08ff57f7189c 100644
|
|
||||||
--- a/sound/soc/mediatek/mt8186/mt8186-mt6366-da7219-max98357.c
|
|
||||||
+++ b/sound/soc/mediatek/mt8186/mt8186-mt6366-da7219-max98357.c
|
|
||||||
@@ -1161,6 +1161,7 @@ static const struct of_device_id mt8186_mt6366_da7219_max98357_dt_match[] = {
|
|
||||||
},
|
|
||||||
{}
|
|
||||||
};
|
|
||||||
+MODULE_DEVICE_TABLE(of, mt8186_mt6366_da7219_max98357_dt_match);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static struct platform_driver mt8186_mt6366_da7219_max98357_driver = {
|
|
||||||
diff --git a/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c b/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c
|
|
||||||
index 16d834f3153d..e59d92e2afa3 100644
|
|
||||||
--- a/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c
|
|
||||||
+++ b/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c
|
|
||||||
@@ -1237,6 +1237,7 @@ static const struct of_device_id mt8186_mt6366_rt1019_rt5682s_dt_match[] = {
|
|
||||||
},
|
|
||||||
{}
|
|
||||||
};
|
|
||||||
+MODULE_DEVICE_TABLE(of, mt8186_mt6366_rt1019_rt5682s_dt_match);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static struct platform_driver mt8186_mt6366_rt1019_rt5682s_driver = {
|
|
||||||
diff --git a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c
|
|
||||||
index b93c3237ef2d..16660eda577e 100644
|
|
||||||
--- a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c
|
|
||||||
+++ b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c
|
|
||||||
@@ -1261,6 +1261,7 @@ static const struct of_device_id mt8192_mt6359_dt_match[] = {
|
|
||||||
},
|
|
||||||
{}
|
|
||||||
};
|
|
||||||
+MODULE_DEVICE_TABLE(of, mt8192_mt6359_dt_match);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static const struct dev_pm_ops mt8192_mt6359_pm_ops = {
|
|
||||||
diff --git a/sound/soc/mediatek/mt8195/mt8195-mt6359.c b/sound/soc/mediatek/mt8195/mt8195-mt6359.c
|
|
||||||
index 480ed3e08d5b..61be66f47723 100644
|
|
||||||
--- a/sound/soc/mediatek/mt8195/mt8195-mt6359.c
|
|
||||||
+++ b/sound/soc/mediatek/mt8195/mt8195-mt6359.c
|
|
||||||
@@ -1544,6 +1544,7 @@ static const struct of_device_id mt8195_mt6359_dt_match[] = {
|
|
||||||
},
|
|
||||||
{},
|
|
||||||
};
|
|
||||||
+MODULE_DEVICE_TABLE(of, mt8195_mt6359_dt_match);
|
|
||||||
|
|
||||||
static struct platform_driver mt8195_mt6359_driver = {
|
|
||||||
.driver = {
|
|
|
@ -1,22 +0,0 @@
|
||||||
diff --git a/arch/arm64/boot/dts/mediatek/mt8183.dtsi b/arch/arm64/boot/dts/mediatek/mt8183.dtsi
|
|
||||||
index c5e822b6b77a..cf9b087186e7 100644
|
|
||||||
--- a/arch/arm64/boot/dts/mediatek/mt8183.dtsi
|
|
||||||
+++ b/arch/arm64/boot/dts/mediatek/mt8183.dtsi
|
|
||||||
@@ -739,7 +1016,7 @@ THERMAL_NO_LIMIT
|
|
||||||
/* The tzts1 ~ tzts6 don't need to polling */
|
|
||||||
/* The tzts1 ~ tzts6 don't need to thermal throttle */
|
|
||||||
|
|
||||||
- tzts1: tzts1 {
|
|
||||||
+/* tzts1: tzts1 {
|
|
||||||
polling-delay-passive = <0>;
|
|
||||||
polling-delay = <0>;
|
|
||||||
thermal-sensors = <&thermal 1>;
|
|
||||||
@@ -791,7 +1068,7 @@ tztsABB: tztsABB {
|
|
||||||
sustainable-power = <5000>;
|
|
||||||
trips {};
|
|
||||||
cooling-maps {};
|
|
||||||
- };
|
|
||||||
+ }; */
|
|
||||||
};
|
|
||||||
|
|
||||||
pwm0: pwm@1100e000 {
|
|
|
@ -1,43 +0,0 @@
|
||||||
this one reverts commit 8b13ea05117ffad4727b0971ed09122d5c91c4dc from mainline
|
|
||||||
from author: Chunfeng Yun <chunfeng.yun@mediatek.com>
|
|
||||||
from date: Fri Aug 19 16:05:55 2022 +0800
|
|
||||||
subject: usb: xhci-mtk: relax TT periodic bandwidth allocation
|
|
||||||
link: https://lore.kernel.org/r/20220819080556.32215-1-chunfeng.yun@mediatek.com
|
|
||||||
|
|
||||||
if this commit is in it results in low speed usb devices (keybard, mice etc.)
|
|
||||||
connected to a usb hub longer working properly and kernel messages like:
|
|
||||||
"kernel: usb 1-2.1.2: reset low-speed USB device number 6 using xhci-mtk"
|
|
||||||
|
|
||||||
diff --git a/drivers/usb/host/xhci-mtk-sch.c b/drivers/usb/host/xhci-mtk-sch.c
|
|
||||||
index 579899eb24c1..d86f1c84ad8f 100644
|
|
||||||
--- a/drivers/usb/host/xhci-mtk-sch.c
|
|
||||||
+++ b/drivers/usb/host/xhci-mtk-sch.c
|
|
||||||
@@ -425,6 +425,7 @@ static int check_fs_bus_bw(struct mu3h_sch_ep_info *sch_ep, int offset)
|
|
||||||
|
|
||||||
static int check_sch_tt(struct mu3h_sch_ep_info *sch_ep, u32 offset)
|
|
||||||
{
|
|
||||||
+ u32 extra_cs_count;
|
|
||||||
u32 start_ss, last_ss;
|
|
||||||
u32 start_cs, last_cs;
|
|
||||||
|
|
||||||
@@ -460,12 +461,18 @@ static int check_sch_tt(struct mu3h_sch_ep_info *sch_ep, u32 offset)
|
|
||||||
if (last_cs > 7)
|
|
||||||
return -ESCH_CS_OVERFLOW;
|
|
||||||
|
|
||||||
+ if (sch_ep->ep_type == ISOC_IN_EP)
|
|
||||||
+ extra_cs_count = (last_cs == 7) ? 1 : 2;
|
|
||||||
+ else /* ep_type : INTR IN / INTR OUT */
|
|
||||||
+ extra_cs_count = 1;
|
|
||||||
+
|
|
||||||
+ cs_count += extra_cs_count;
|
|
||||||
if (cs_count > 7)
|
|
||||||
cs_count = 7; /* HW limit */
|
|
||||||
|
|
||||||
sch_ep->cs_count = cs_count;
|
|
||||||
- /* ss, idle are ignored */
|
|
||||||
- sch_ep->num_budget_microframes = cs_count;
|
|
||||||
+ /* one for ss, the other for idle */
|
|
||||||
+ sch_ep->num_budget_microframes = cs_count + 2;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* if interval=1, maxp >752, num_budge_micoframe is larger
|
|
|
@ -1,155 +0,0 @@
|
||||||
from: https://patchwork.kernel.org/project/linux-mediatek/patch/20221118110116.20165-1-chunfeng.yun@mediatek.com/
|
|
||||||
|
|
||||||
diff --git a/drivers/usb/host/xhci-mtk.c b/drivers/usb/host/xhci-mtk.c
|
|
||||||
index 01705e559c42..cff3c4aea036 100644
|
|
||||||
--- a/drivers/usb/host/xhci-mtk.c
|
|
||||||
+++ b/drivers/usb/host/xhci-mtk.c
|
|
||||||
@@ -485,6 +485,7 @@ static int xhci_mtk_probe(struct platform_device *pdev)
|
|
||||||
const struct hc_driver *driver;
|
|
||||||
struct xhci_hcd *xhci;
|
|
||||||
struct resource *res;
|
|
||||||
+ struct usb_hcd *usb3_hcd;
|
|
||||||
struct usb_hcd *hcd;
|
|
||||||
int ret = -ENODEV;
|
|
||||||
int wakeup_irq;
|
|
||||||
@@ -593,6 +594,7 @@ static int xhci_mtk_probe(struct platform_device *pdev)
|
|
||||||
|
|
||||||
xhci = hcd_to_xhci(hcd);
|
|
||||||
xhci->main_hcd = hcd;
|
|
||||||
+ xhci->allow_single_roothub = 1;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* imod_interval is the interrupt moderation value in nanoseconds.
|
|
||||||
@@ -602,24 +604,29 @@ static int xhci_mtk_probe(struct platform_device *pdev)
|
|
||||||
xhci->imod_interval = 5000;
|
|
||||||
device_property_read_u32(dev, "imod-interval-ns", &xhci->imod_interval);
|
|
||||||
|
|
||||||
- xhci->shared_hcd = usb_create_shared_hcd(driver, dev,
|
|
||||||
- dev_name(dev), hcd);
|
|
||||||
- if (!xhci->shared_hcd) {
|
|
||||||
- ret = -ENOMEM;
|
|
||||||
- goto disable_device_wakeup;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
ret = usb_add_hcd(hcd, irq, IRQF_SHARED);
|
|
||||||
if (ret)
|
|
||||||
- goto put_usb3_hcd;
|
|
||||||
+ goto disable_device_wakeup;
|
|
||||||
|
|
||||||
- if (HCC_MAX_PSA(xhci->hcc_params) >= 4 &&
|
|
||||||
+ if (!xhci_has_one_roothub(xhci)) {
|
|
||||||
+ xhci->shared_hcd = usb_create_shared_hcd(driver, dev,
|
|
||||||
+ dev_name(dev), hcd);
|
|
||||||
+ if (!xhci->shared_hcd) {
|
|
||||||
+ ret = -ENOMEM;
|
|
||||||
+ goto dealloc_usb2_hcd;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ usb3_hcd = xhci_get_usb3_hcd(xhci);
|
|
||||||
+ if (usb3_hcd && HCC_MAX_PSA(xhci->hcc_params) >= 4 &&
|
|
||||||
!(xhci->quirks & XHCI_BROKEN_STREAMS))
|
|
||||||
- xhci->shared_hcd->can_do_streams = 1;
|
|
||||||
+ usb3_hcd->can_do_streams = 1;
|
|
||||||
|
|
||||||
- ret = usb_add_hcd(xhci->shared_hcd, irq, IRQF_SHARED);
|
|
||||||
- if (ret)
|
|
||||||
- goto dealloc_usb2_hcd;
|
|
||||||
+ if (xhci->shared_hcd) {
|
|
||||||
+ ret = usb_add_hcd(xhci->shared_hcd, irq, IRQF_SHARED);
|
|
||||||
+ if (ret)
|
|
||||||
+ goto put_usb3_hcd;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
if (wakeup_irq > 0) {
|
|
||||||
ret = dev_pm_set_dedicated_wake_irq_reverse(dev, wakeup_irq);
|
|
||||||
@@ -641,13 +648,13 @@ static int xhci_mtk_probe(struct platform_device *pdev)
|
|
||||||
usb_remove_hcd(xhci->shared_hcd);
|
|
||||||
xhci->shared_hcd = NULL;
|
|
||||||
|
|
||||||
-dealloc_usb2_hcd:
|
|
||||||
- usb_remove_hcd(hcd);
|
|
||||||
-
|
|
||||||
put_usb3_hcd:
|
|
||||||
- xhci_mtk_sch_exit(mtk);
|
|
||||||
usb_put_hcd(xhci->shared_hcd);
|
|
||||||
|
|
||||||
+dealloc_usb2_hcd:
|
|
||||||
+ xhci_mtk_sch_exit(mtk);
|
|
||||||
+ usb_remove_hcd(hcd);
|
|
||||||
+
|
|
||||||
disable_device_wakeup:
|
|
||||||
device_init_wakeup(dev, false);
|
|
||||||
|
|
||||||
@@ -679,10 +686,15 @@ static int xhci_mtk_remove(struct platform_device *pdev)
|
|
||||||
dev_pm_clear_wake_irq(dev);
|
|
||||||
device_init_wakeup(dev, false);
|
|
||||||
|
|
||||||
- usb_remove_hcd(shared_hcd);
|
|
||||||
- xhci->shared_hcd = NULL;
|
|
||||||
+ if (shared_hcd) {
|
|
||||||
+ usb_remove_hcd(shared_hcd);
|
|
||||||
+ xhci->shared_hcd = NULL;
|
|
||||||
+ }
|
|
||||||
usb_remove_hcd(hcd);
|
|
||||||
- usb_put_hcd(shared_hcd);
|
|
||||||
+
|
|
||||||
+ if (shared_hcd)
|
|
||||||
+ usb_put_hcd(shared_hcd);
|
|
||||||
+
|
|
||||||
usb_put_hcd(hcd);
|
|
||||||
xhci_mtk_sch_exit(mtk);
|
|
||||||
clk_bulk_disable_unprepare(BULK_CLKS_NUM, mtk->clks);
|
|
||||||
@@ -700,13 +712,16 @@ static int __maybe_unused xhci_mtk_suspend(struct device *dev)
|
|
||||||
struct xhci_hcd_mtk *mtk = dev_get_drvdata(dev);
|
|
||||||
struct usb_hcd *hcd = mtk->hcd;
|
|
||||||
struct xhci_hcd *xhci = hcd_to_xhci(hcd);
|
|
||||||
+ struct usb_hcd *shared_hcd = xhci->shared_hcd;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
xhci_dbg(xhci, "%s: stop port polling\n", __func__);
|
|
||||||
clear_bit(HCD_FLAG_POLL_RH, &hcd->flags);
|
|
||||||
del_timer_sync(&hcd->rh_timer);
|
|
||||||
- clear_bit(HCD_FLAG_POLL_RH, &xhci->shared_hcd->flags);
|
|
||||||
- del_timer_sync(&xhci->shared_hcd->rh_timer);
|
|
||||||
+ if (shared_hcd) {
|
|
||||||
+ clear_bit(HCD_FLAG_POLL_RH, &shared_hcd->flags);
|
|
||||||
+ del_timer_sync(&shared_hcd->rh_timer);
|
|
||||||
+ }
|
|
||||||
|
|
||||||
ret = xhci_mtk_host_disable(mtk);
|
|
||||||
if (ret)
|
|
||||||
@@ -718,8 +733,10 @@ static int __maybe_unused xhci_mtk_suspend(struct device *dev)
|
|
||||||
|
|
||||||
restart_poll_rh:
|
|
||||||
xhci_dbg(xhci, "%s: restart port polling\n", __func__);
|
|
||||||
- set_bit(HCD_FLAG_POLL_RH, &xhci->shared_hcd->flags);
|
|
||||||
- usb_hcd_poll_rh_status(xhci->shared_hcd);
|
|
||||||
+ if (shared_hcd) {
|
|
||||||
+ set_bit(HCD_FLAG_POLL_RH, &shared_hcd->flags);
|
|
||||||
+ usb_hcd_poll_rh_status(shared_hcd);
|
|
||||||
+ }
|
|
||||||
set_bit(HCD_FLAG_POLL_RH, &hcd->flags);
|
|
||||||
usb_hcd_poll_rh_status(hcd);
|
|
||||||
return ret;
|
|
||||||
@@ -730,6 +747,7 @@ static int __maybe_unused xhci_mtk_resume(struct device *dev)
|
|
||||||
struct xhci_hcd_mtk *mtk = dev_get_drvdata(dev);
|
|
||||||
struct usb_hcd *hcd = mtk->hcd;
|
|
||||||
struct xhci_hcd *xhci = hcd_to_xhci(hcd);
|
|
||||||
+ struct usb_hcd *shared_hcd = xhci->shared_hcd;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
usb_wakeup_set(mtk, false);
|
|
||||||
@@ -742,8 +760,10 @@ static int __maybe_unused xhci_mtk_resume(struct device *dev)
|
|
||||||
goto disable_clks;
|
|
||||||
|
|
||||||
xhci_dbg(xhci, "%s: restart port polling\n", __func__);
|
|
||||||
- set_bit(HCD_FLAG_POLL_RH, &xhci->shared_hcd->flags);
|
|
||||||
- usb_hcd_poll_rh_status(xhci->shared_hcd);
|
|
||||||
+ if (shared_hcd) {
|
|
||||||
+ set_bit(HCD_FLAG_POLL_RH, &shared_hcd->flags);
|
|
||||||
+ usb_hcd_poll_rh_status(shared_hcd);
|
|
||||||
+ }
|
|
||||||
set_bit(HCD_FLAG_POLL_RH, &hcd->flags);
|
|
||||||
usb_hcd_poll_rh_status(hcd);
|
|
||||||
return 0;
|
|
Loading…
Reference in a new issue