diff --git a/devices/asus-dumo/default.nix b/devices/asus-dumo/default.nix index 2b2c8b22..27d7a43d 100644 --- a/devices/asus-dumo/default.nix +++ b/devices/asus-dumo/default.nix @@ -37,50 +37,29 @@ config.mobile.device.firmware ]; + # The controller is hidden from the OS unless started using the "android" + # launch option in the weird UEFI GUI chooser. + mobile.usb.mode = "gadgetfs"; + + # Commonly re-used values, Nexus 4 (debug) + # (These identifiers have well-known default udev rules.) + mobile.usb.idVendor = "18d1"; + mobile.usb.idProduct = "d002"; + + # Mainline gadgetfs functions + mobile.usb.gadgetfs.functions = { + rndis = "rndis.usb0"; + mass_storage = "mass_storage.0"; + adb = "ffs.adb"; + }; + + mobile.boot.stage-1.bootConfig = { + # Used by target-disk-mode to share the internal drive + storage.internal = "/dev/disk/by-path/platform-fe330000.sdhci"; + }; + mobile.boot.stage-1.tasks = [ - # This hack unbinds and rebinds the currently problematic storage driver. - # TODO: move into a generic "gru family" thing. - (pkgs.writeText "fixup-sdhci-arasan.rb" '' - class Tasks::FixupSDHCIArasan < SingletonTask - MAX = 60; - NAME = "fe330000.sdhci" - DRIVER = "/sys/bus/platform/drivers/sdhci-arasan" - GLOB = "#{DRIVER}/#{NAME}/mmc_host/mmc*/mmc*/block" - - def initialize() - add_dependency(:Mount, "/sys") - add_dependency(:Files, DRIVER) - #add_dependency(:Target, :Environment) - end - - def run() - tries = 0 - - $stdout.print " -> Waiting for #{NAME}" - $stdout.flush - until Dir.glob(GLOB).length > 0 do - $stdout.print "." - $stdout.flush - tries += 1 - begin - System.write(File.join(DRIVER, "unbind"), NAME) - rescue => e - $logger.fatal(e.inspect) - end - begin - System.write(File.join(DRIVER, "bind"), NAME) - rescue => e - $logger.fatal(e.inspect) - end - - sleep(1) - raise "Couldn't get #{NAME} up in #{tries} tries." if tries > MAX - end - $stdout.puts "!\n" - - log("Took #{tries} tries for #{NAME} to appear...") - end - end - '') + ./fixup_sdhci_arasan_task.rb + ./usb_role_switch_task.rb ]; } diff --git a/devices/asus-dumo/fixup_sdhci_arasan_task.rb b/devices/asus-dumo/fixup_sdhci_arasan_task.rb new file mode 100644 index 00000000..356b4c36 --- /dev/null +++ b/devices/asus-dumo/fixup_sdhci_arasan_task.rb @@ -0,0 +1,41 @@ +# This hack unbinds and rebinds the currently problematic storage driver. +class Tasks::FixupSDHCIArasan < SingletonTask + MAX = 60; + NAME = "fe330000.sdhci" + DRIVER = "/sys/bus/platform/drivers/sdhci-arasan" + GLOB = "#{DRIVER}/#{NAME}/mmc_host/mmc*/mmc*/block" + + def initialize() + add_dependency(:Mount, "/sys") + add_dependency(:Files, DRIVER) + #add_dependency(:Target, :Environment) + end + + def run() + tries = 0 + + $stdout.print " -> Waiting for #{NAME}" + $stdout.flush + until Dir.glob(GLOB).length > 0 do + $stdout.print "." + $stdout.flush + tries += 1 + begin + System.write(File.join(DRIVER, "unbind"), NAME) + rescue => e + $logger.fatal(e.inspect) + end + begin + System.write(File.join(DRIVER, "bind"), NAME) + rescue => e + $logger.fatal(e.inspect) + end + + sleep(1) + raise "Couldn't get #{NAME} up in #{tries} tries." if tries > MAX + end + $stdout.puts "!\n" + + log("Took #{tries} tries for #{NAME} to appear...") + end +end diff --git a/devices/asus-dumo/kernel/0001-HACK-haphazard-revert-of-sbs-battery-improvements.patch b/devices/asus-dumo/kernel/0001-HACK-haphazard-revert-of-sbs-battery-improvements.patch deleted file mode 100644 index fa3c8acd..00000000 --- a/devices/asus-dumo/kernel/0001-HACK-haphazard-revert-of-sbs-battery-improvements.patch +++ /dev/null @@ -1,512 +0,0 @@ -From 6f83e6c55989efae059e264f5a6f6a075b88b7a7 Mon Sep 17 00:00:00 2001 -From: Samuel Dionne-Riel -Date: Tue, 11 Aug 2020 22:47:08 -0400 -Subject: [PATCH] [HACK] haphazard revert of sbs-battery improvements - -Reverts part of the following: - -- https://lore.kernel.org/patchwork/cover/1241662/ ---- - drivers/power/supply/sbs-battery.c | 232 ++++------------------------- - 1 file changed, 29 insertions(+), 203 deletions(-) - -diff --git a/drivers/power/supply/sbs-battery.c b/drivers/power/supply/sbs-battery.c -index 83b9924033bd..6acd242eed48 100644 ---- a/drivers/power/supply/sbs-battery.c -+++ b/drivers/power/supply/sbs-battery.c -@@ -14,7 +14,7 @@ - #include - #include - #include --#include -+#include - #include - #include - #include -@@ -23,12 +23,9 @@ - - enum { - REG_MANUFACTURER_DATA, -- REG_BATTERY_MODE, - REG_TEMPERATURE, - REG_VOLTAGE, -- REG_CURRENT_NOW, -- REG_CURRENT_AVG, -- REG_MAX_ERR, -+ REG_CURRENT, - REG_CAPACITY, - REG_TIME_TO_EMPTY, - REG_TIME_TO_FULL, -@@ -44,15 +41,10 @@ enum { - REG_DESIGN_CAPACITY_CHARGE, - REG_DESIGN_VOLTAGE_MIN, - REG_DESIGN_VOLTAGE_MAX, -- REG_CHEMISTRY, - REG_MANUFACTURER, - REG_MODEL_NAME, -- REG_CHARGE_CURRENT, -- REG_CHARGE_VOLTAGE, - }; - --#define REG_ADDR_MANUFACTURE_DATE 0x1B -- - /* Battery Mode defines */ - #define BATTERY_MODE_OFFSET 0x03 - #define BATTERY_MODE_CAPACITY_MASK BIT(15) -@@ -60,7 +52,6 @@ enum sbs_capacity_mode { - CAPACITY_MODE_AMPS = 0, - CAPACITY_MODE_WATTS = BATTERY_MODE_CAPACITY_MASK - }; --#define BATTERY_MODE_CHARGER_MASK (1<<14) - - /* manufacturer access defines */ - #define MANUFACTURER_ACCESS_STATUS 0x0006 -@@ -88,18 +79,12 @@ static const struct chip_data { - } sbs_data[] = { - [REG_MANUFACTURER_DATA] = - SBS_DATA(POWER_SUPPLY_PROP_PRESENT, 0x00, 0, 65535), -- [REG_BATTERY_MODE] = -- SBS_DATA(-1, 0x03, 0, 65535), - [REG_TEMPERATURE] = - SBS_DATA(POWER_SUPPLY_PROP_TEMP, 0x08, 0, 65535), - [REG_VOLTAGE] = - SBS_DATA(POWER_SUPPLY_PROP_VOLTAGE_NOW, 0x09, 0, 20000), -- [REG_CURRENT_NOW] = -+ [REG_CURRENT] = - SBS_DATA(POWER_SUPPLY_PROP_CURRENT_NOW, 0x0A, -32768, 32767), -- [REG_CURRENT_AVG] = -- SBS_DATA(POWER_SUPPLY_PROP_CURRENT_AVG, 0x0B, -32768, 32767), -- [REG_MAX_ERR] = -- SBS_DATA(POWER_SUPPLY_PROP_CAPACITY_ERROR_MARGIN, 0x0c, 0, 100), - [REG_CAPACITY] = - SBS_DATA(POWER_SUPPLY_PROP_CAPACITY, 0x0D, 0, 100), - [REG_REMAINING_CAPACITY] = -@@ -114,10 +99,6 @@ static const struct chip_data { - SBS_DATA(POWER_SUPPLY_PROP_TIME_TO_EMPTY_AVG, 0x12, 0, 65535), - [REG_TIME_TO_FULL] = - SBS_DATA(POWER_SUPPLY_PROP_TIME_TO_FULL_AVG, 0x13, 0, 65535), -- [REG_CHARGE_CURRENT] = -- SBS_DATA(POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX, 0x14, 0, 65535), -- [REG_CHARGE_VOLTAGE] = -- SBS_DATA(POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE_MAX, 0x15, 0, 65535), - [REG_STATUS] = - SBS_DATA(POWER_SUPPLY_PROP_STATUS, 0x16, 0, 65535), - [REG_CAPACITY_LEVEL] = -@@ -138,12 +119,10 @@ static const struct chip_data { - [REG_MANUFACTURER] = - SBS_DATA(POWER_SUPPLY_PROP_MANUFACTURER, 0x20, 0, 65535), - [REG_MODEL_NAME] = -- SBS_DATA(POWER_SUPPLY_PROP_MODEL_NAME, 0x21, 0, 65535), -- [REG_CHEMISTRY] = -- SBS_DATA(POWER_SUPPLY_PROP_TECHNOLOGY, 0x22, 0, 65535) -+ SBS_DATA(POWER_SUPPLY_PROP_MODEL_NAME, 0x21, 0, 65535) - }; - --static const enum power_supply_property sbs_properties[] = { -+static enum power_supply_property sbs_properties[] = { - POWER_SUPPLY_PROP_STATUS, - POWER_SUPPLY_PROP_CAPACITY_LEVEL, - POWER_SUPPLY_PROP_HEALTH, -@@ -152,9 +131,7 @@ static const enum power_supply_property sbs_properties[] = { - POWER_SUPPLY_PROP_CYCLE_COUNT, - POWER_SUPPLY_PROP_VOLTAGE_NOW, - POWER_SUPPLY_PROP_CURRENT_NOW, -- POWER_SUPPLY_PROP_CURRENT_AVG, - POWER_SUPPLY_PROP_CAPACITY, -- POWER_SUPPLY_PROP_CAPACITY_ERROR_MARGIN, - POWER_SUPPLY_PROP_TEMP, - POWER_SUPPLY_PROP_TIME_TO_EMPTY_AVG, - POWER_SUPPLY_PROP_TIME_TO_FULL_AVG, -@@ -167,18 +144,13 @@ static const enum power_supply_property sbs_properties[] = { - POWER_SUPPLY_PROP_CHARGE_NOW, - POWER_SUPPLY_PROP_CHARGE_FULL, - POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN, -- POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX, -- POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE_MAX, -- POWER_SUPPLY_PROP_MANUFACTURE_YEAR, -- POWER_SUPPLY_PROP_MANUFACTURE_MONTH, -- POWER_SUPPLY_PROP_MANUFACTURE_DAY, - /* Properties of type `const char *' */ - POWER_SUPPLY_PROP_MANUFACTURER, - POWER_SUPPLY_PROP_MODEL_NAME - }; - --/* Supports special manufacturer commands from TI BQ20Z65 and BQ20Z75 IC. */ --#define SBS_FLAGS_TI_BQ20ZX5 BIT(0) -+/* Supports special manufacturer commands from TI BQ20Z75 IC. */ -+#define SBS_FLAGS_TI_BQ20Z75 BIT(0) - - struct sbs_info { - struct i2c_client *client; -@@ -186,7 +158,6 @@ struct sbs_info { - bool is_present; - struct gpio_desc *gpio_detect; - bool enable_detection; -- bool charger_broadcasts; - int last_state; - int poll_time; - u32 i2c_retry_count; -@@ -198,48 +169,8 @@ struct sbs_info { - - static char model_name[I2C_SMBUS_BLOCK_MAX + 1]; - static char manufacturer[I2C_SMBUS_BLOCK_MAX + 1]; --static char chemistry[I2C_SMBUS_BLOCK_MAX + 1]; - static bool force_load; - --static int sbs_read_word_data(struct i2c_client *client, u8 address); --static int sbs_write_word_data(struct i2c_client *client, u8 address, u16 value); -- --static void sbs_disable_charger_broadcasts(struct sbs_info *chip) --{ -- int val = sbs_read_word_data(chip->client, BATTERY_MODE_OFFSET); -- if (val < 0) -- goto exit; -- -- val |= BATTERY_MODE_CHARGER_MASK; -- -- val = sbs_write_word_data(chip->client, BATTERY_MODE_OFFSET, val); -- --exit: -- if (val < 0) -- dev_err(&chip->client->dev, -- "Failed to disable charger broadcasting: %d\n", val); -- else -- dev_dbg(&chip->client->dev, "%s\n", __func__); --} -- --static int sbs_update_presence(struct sbs_info *chip, bool is_present) --{ -- if (chip->is_present == is_present) -- return 0; -- -- if (!is_present) { -- chip->is_present = false; -- return 0; -- } -- -- if (!chip->is_present && is_present && !chip->charger_broadcasts) -- sbs_disable_charger_broadcasts(chip); -- -- chip->is_present = true; -- -- return 0; --} -- - static int sbs_read_word_data(struct i2c_client *client, u8 address) - { - struct sbs_info *chip = i2c_get_clientdata(client); -@@ -357,15 +288,15 @@ static int sbs_status_correct(struct i2c_client *client, int *intval) - { - int ret; - -- ret = sbs_read_word_data(client, sbs_data[REG_CURRENT_NOW].addr); -+ ret = sbs_read_word_data(client, sbs_data[REG_CURRENT].addr); - if (ret < 0) - return ret; - - ret = (s16)ret; - -- /* Not drawing current -> not charging (i.e. idle) */ -- if (*intval != POWER_SUPPLY_STATUS_FULL && ret == 0) -- *intval = POWER_SUPPLY_STATUS_NOT_CHARGING; -+ /* Not drawing current means full (cannot be not charging) */ -+ if (ret == 0) -+ *intval = POWER_SUPPLY_STATUS_FULL; - - if (*intval == POWER_SUPPLY_STATUS_FULL) { - /* Drawing or providing current when full */ -@@ -378,17 +309,6 @@ static int sbs_status_correct(struct i2c_client *client, int *intval) - return 0; - } - --static bool sbs_bat_needs_calibration(struct i2c_client *client) --{ -- int ret; -- -- ret = sbs_read_word_data(client, sbs_data[REG_BATTERY_MODE].addr); -- if (ret < 0) -- return false; -- -- return !!(ret & BIT(7)); --} -- - static int sbs_get_battery_presence_and_health( - struct i2c_client *client, enum power_supply_property psp, - union power_supply_propval *val) -@@ -408,14 +328,9 @@ static int sbs_get_battery_presence_and_health( - - if (psp == POWER_SUPPLY_PROP_PRESENT) - val->intval = 1; /* battery present */ -- else { /* POWER_SUPPLY_PROP_HEALTH */ -- if (sbs_bat_needs_calibration(client)) { -- val->intval = POWER_SUPPLY_HEALTH_CALIBRATION_REQUIRED; -- } else { -- /* SBS spec doesn't have a general health command. */ -- val->intval = POWER_SUPPLY_HEALTH_UNKNOWN; -- } -- } -+ else /* POWER_SUPPLY_PROP_HEALTH */ -+ /* SBS spec doesn't have a general health command. */ -+ val->intval = POWER_SUPPLY_HEALTH_UNKNOWN; - - return 0; - } -@@ -469,8 +384,6 @@ static int sbs_get_ti_battery_presence_and_health( - val->intval = POWER_SUPPLY_HEALTH_OVERHEAT; - else if (ret == 0x0C) - val->intval = POWER_SUPPLY_HEALTH_DEAD; -- else if (sbs_bat_needs_calibration(client)) -- val->intval = POWER_SUPPLY_HEALTH_CALIBRATION_REQUIRED; - else - val->intval = POWER_SUPPLY_HEALTH_GOOD; - } -@@ -579,10 +492,7 @@ static void sbs_unit_adjustment(struct i2c_client *client, - case POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN: - case POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN: - case POWER_SUPPLY_PROP_CURRENT_NOW: -- case POWER_SUPPLY_PROP_CURRENT_AVG: - case POWER_SUPPLY_PROP_CHARGE_NOW: -- case POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX: -- case POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE_MAX: - case POWER_SUPPLY_PROP_CHARGE_FULL: - case POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN: - val->intval *= BASE_UNIT_CONVERSION; -@@ -692,70 +602,6 @@ static int sbs_get_property_index(struct i2c_client *client, - return -EINVAL; - } - --static int sbs_get_chemistry(struct i2c_client *client, -- union power_supply_propval *val) --{ -- enum power_supply_property psp = POWER_SUPPLY_PROP_TECHNOLOGY; -- int ret; -- -- ret = sbs_get_property_index(client, psp); -- if (ret < 0) -- return ret; -- -- ret = sbs_get_battery_string_property(client, ret, psp, -- chemistry); -- if (ret < 0) -- return ret; -- -- if (!strncasecmp(chemistry, "LION", 4)) -- val->intval = POWER_SUPPLY_TECHNOLOGY_LION; -- else if (!strncasecmp(chemistry, "LiP", 3)) -- val->intval = POWER_SUPPLY_TECHNOLOGY_LIPO; -- else if (!strncasecmp(chemistry, "NiCd", 4)) -- val->intval = POWER_SUPPLY_TECHNOLOGY_NiCd; -- else if (!strncasecmp(chemistry, "NiMH", 4)) -- val->intval = POWER_SUPPLY_TECHNOLOGY_NiMH; -- else -- val->intval = POWER_SUPPLY_TECHNOLOGY_UNKNOWN; -- -- if (val->intval == POWER_SUPPLY_TECHNOLOGY_UNKNOWN) -- dev_warn(&client->dev, "Unknown chemistry: %s\n", chemistry); -- -- return 0; --} -- --static int sbs_get_battery_manufacture_date(struct i2c_client *client, -- enum power_supply_property psp, -- union power_supply_propval *val) --{ -- int ret; -- u16 day, month, year; -- -- ret = sbs_read_word_data(client, REG_ADDR_MANUFACTURE_DATE); -- if (ret < 0) -- return ret; -- -- day = ret & GENMASK(4, 0); -- month = (ret & GENMASK(8, 5)) >> 5; -- year = ((ret & GENMASK(15, 9)) >> 9) + 1980; -- -- switch (psp) { -- case POWER_SUPPLY_PROP_MANUFACTURE_YEAR: -- val->intval = year; -- break; -- case POWER_SUPPLY_PROP_MANUFACTURE_MONTH: -- val->intval = month; -- break; -- case POWER_SUPPLY_PROP_MANUFACTURE_DAY: -- val->intval = day; -- break; -- default: -- return -EINVAL; -- } -- -- return 0; --} -- - static int sbs_get_property(struct power_supply *psy, - enum power_supply_property psp, - union power_supply_propval *val) -@@ -770,7 +616,7 @@ static int sbs_get_property(struct power_supply *psy, - return ret; - if (psp == POWER_SUPPLY_PROP_PRESENT) { - val->intval = ret; -- sbs_update_presence(chip, ret); -+ chip->is_present = val->intval; - return 0; - } - if (ret == 0) -@@ -780,7 +626,7 @@ static int sbs_get_property(struct power_supply *psy, - switch (psp) { - case POWER_SUPPLY_PROP_PRESENT: - case POWER_SUPPLY_PROP_HEALTH: -- if (chip->flags & SBS_FLAGS_TI_BQ20ZX5) -+ if (chip->flags & SBS_FLAGS_TI_BQ20Z75) - ret = sbs_get_ti_battery_presence_and_health(client, - psp, val); - else -@@ -793,10 +639,7 @@ static int sbs_get_property(struct power_supply *psy, - break; - - case POWER_SUPPLY_PROP_TECHNOLOGY: -- ret = sbs_get_chemistry(client, val); -- if (ret < 0) -- break; -- -+ val->intval = POWER_SUPPLY_TECHNOLOGY_LION; - goto done; /* don't trigger power_supply_changed()! */ - - case POWER_SUPPLY_PROP_ENERGY_NOW: -@@ -827,16 +670,12 @@ static int sbs_get_property(struct power_supply *psy, - case POWER_SUPPLY_PROP_CYCLE_COUNT: - case POWER_SUPPLY_PROP_VOLTAGE_NOW: - case POWER_SUPPLY_PROP_CURRENT_NOW: -- case POWER_SUPPLY_PROP_CURRENT_AVG: - case POWER_SUPPLY_PROP_TEMP: - case POWER_SUPPLY_PROP_TIME_TO_EMPTY_AVG: - case POWER_SUPPLY_PROP_TIME_TO_FULL_AVG: - case POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN: - case POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN: -- case POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX: -- case POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE_MAX: - case POWER_SUPPLY_PROP_CAPACITY: -- case POWER_SUPPLY_PROP_CAPACITY_ERROR_MARGIN: - ret = sbs_get_property_index(client, psp); - if (ret < 0) - break; -@@ -864,12 +703,6 @@ static int sbs_get_property(struct power_supply *psy, - val->strval = manufacturer; - break; - -- case POWER_SUPPLY_PROP_MANUFACTURE_YEAR: -- case POWER_SUPPLY_PROP_MANUFACTURE_MONTH: -- case POWER_SUPPLY_PROP_MANUFACTURE_DAY: -- ret = sbs_get_battery_manufacture_date(client, psp, val); -- break; -- - default: - dev_err(&client->dev, - "%s: INVALID property\n", __func__); -@@ -881,7 +714,7 @@ static int sbs_get_property(struct power_supply *psy, - - if (!chip->gpio_detect && - chip->is_present != (ret >= 0)) { -- sbs_update_presence(chip, (ret >= 0)); -+ chip->is_present = (ret >= 0); - power_supply_changed(chip->power_supply); - } - -@@ -912,7 +745,7 @@ static void sbs_supply_changed(struct sbs_info *chip) - ret = gpiod_get_value_cansleep(chip->gpio_detect); - if (ret < 0) - return; -- sbs_update_presence(chip, ret); -+ chip->is_present = ret; - power_supply_changed(battery); - } - -@@ -982,7 +815,8 @@ static const struct power_supply_desc sbs_default_desc = { - .external_power_changed = sbs_external_power_changed, - }; - --static int sbs_probe(struct i2c_client *client) -+static int sbs_probe(struct i2c_client *client, -+ const struct i2c_device_id *id) - { - struct sbs_info *chip; - struct power_supply_desc *sbs_desc; -@@ -1005,7 +839,7 @@ static int sbs_probe(struct i2c_client *client) - if (!chip) - return -ENOMEM; - -- chip->flags = (u32)(uintptr_t)device_get_match_data(&client->dev); -+ chip->flags = (u32)(uintptr_t)of_device_get_match_data(&client->dev); - chip->client = client; - chip->enable_detection = false; - psy_cfg.of_node = client->dev.of_node; -@@ -1016,13 +850,13 @@ static int sbs_probe(struct i2c_client *client) - /* use pdata if available, fall back to DT properties, - * or hardcoded defaults if not - */ -- rc = device_property_read_u32(&client->dev, "sbs,i2c-retry-count", -- &chip->i2c_retry_count); -+ rc = of_property_read_u32(client->dev.of_node, "sbs,i2c-retry-count", -+ &chip->i2c_retry_count); - if (rc) - chip->i2c_retry_count = 0; - -- rc = device_property_read_u32(&client->dev, "sbs,poll-retry-count", -- &chip->poll_retry_count); -+ rc = of_property_read_u32(client->dev.of_node, "sbs,poll-retry-count", -+ &chip->poll_retry_count); - if (rc) - chip->poll_retry_count = 0; - -@@ -1032,9 +866,6 @@ static int sbs_probe(struct i2c_client *client) - } - chip->i2c_retry_count = chip->i2c_retry_count + 1; - -- chip->charger_broadcasts = !device_property_read_bool(&client->dev, -- "sbs,disable-charger-broadcasts"); -- - chip->gpio_detect = devm_gpiod_get_optional(&client->dev, - "sbs,battery-detect", GPIOD_IN); - if (IS_ERR(chip->gpio_detect)) { -@@ -1119,7 +950,7 @@ static int sbs_suspend(struct device *dev) - if (chip->poll_time > 0) - cancel_delayed_work_sync(&chip->work); - -- if (chip->flags & SBS_FLAGS_TI_BQ20ZX5) { -+ if (chip->flags & SBS_FLAGS_TI_BQ20Z75) { - /* Write to manufacturer access with sleep command. */ - ret = sbs_write_word_data(client, - sbs_data[REG_MANUFACTURER_DATA].addr, -@@ -1139,7 +970,6 @@ static SIMPLE_DEV_PM_OPS(sbs_pm_ops, sbs_suspend, NULL); - #endif - - static const struct i2c_device_id sbs_id[] = { -- { "bq20z65", 0 }, - { "bq20z75", 0 }, - { "sbs-battery", 1 }, - {} -@@ -1148,20 +978,16 @@ MODULE_DEVICE_TABLE(i2c, sbs_id); - - static const struct of_device_id sbs_dt_ids[] = { - { .compatible = "sbs,sbs-battery" }, -- { -- .compatible = "ti,bq20z65", -- .data = (void *)SBS_FLAGS_TI_BQ20ZX5, -- }, - { - .compatible = "ti,bq20z75", -- .data = (void *)SBS_FLAGS_TI_BQ20ZX5, -+ .data = (void *)SBS_FLAGS_TI_BQ20Z75, - }, - { } - }; - MODULE_DEVICE_TABLE(of, sbs_dt_ids); - - static struct i2c_driver sbs_battery_driver = { -- .probe_new = sbs_probe, -+ .probe = sbs_probe, - .remove = sbs_remove, - .alert = sbs_alert, - .id_table = sbs_id, --- -2.25.4 - diff --git a/devices/asus-dumo/kernel/config.aarch64 b/devices/asus-dumo/kernel/config.aarch64 index 0723eb91..3f4209a5 100644 --- a/devices/asus-dumo/kernel/config.aarch64 +++ b/devices/asus-dumo/kernel/config.aarch64 @@ -1,12 +1,13 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm64 5.8.0 Kernel Configuration +# Linux/arm64 5.10.0 Kernel Configuration # CONFIG_CC_VERSION_TEXT="aarch64-unknown-linux-gnu-gcc (GCC) 9.3.0" CONFIG_CC_IS_GCC=y CONFIG_GCC_VERSION=90300 CONFIG_LD_VERSION=231010000 CONFIG_CLANG_VERSION=0 +CONFIG_LLD_VERSION=0 CONFIG_CC_CAN_LINK=y CONFIG_CC_HAS_ASM_GOTO=y CONFIG_CC_HAS_ASM_INLINE=y @@ -49,6 +50,7 @@ CONFIG_HARDIRQS_SW_RESEND=y CONFIG_GENERIC_IRQ_CHIP=y CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN_HIERARCHY=y +CONFIG_GENERIC_IRQ_IPI=y CONFIG_GENERIC_MSI_IRQ=y CONFIG_GENERIC_MSI_IRQ_DOMAIN=y CONFIG_IRQ_MSI_IOMMU=y @@ -89,7 +91,7 @@ CONFIG_TICK_CPU_ACCOUNTING=y # CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set CONFIG_IRQ_TIME_ACCOUNTING=y CONFIG_HAVE_SCHED_AVG_IRQ=y -# CONFIG_SCHED_THERMAL_PRESSURE is not set +CONFIG_SCHED_THERMAL_PRESSURE=y CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT_V3=y CONFIG_TASKSTATS=y @@ -156,6 +158,7 @@ CONFIG_CGROUP_CPUACCT=y # CONFIG_CGROUP_DEBUG is not set CONFIG_NAMESPACES=y CONFIG_UTS_NS=y +CONFIG_TIME_NS=y CONFIG_IPC_NS=y CONFIG_USER_NS=y CONFIG_PID_NS=y @@ -172,9 +175,11 @@ CONFIG_RD_LZMA=y CONFIG_RD_XZ=y # CONFIG_RD_LZO is not set # CONFIG_RD_LZ4 is not set +CONFIG_RD_ZSTD=y # CONFIG_BOOT_CONFIG is not set # CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE is not set CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_LD_ORPHAN_WARN=y CONFIG_SYSCTL=y CONFIG_HAVE_UID16=y CONFIG_SYSCTL_EXCEPTION_TRACE=y @@ -243,7 +248,8 @@ CONFIG_ARM64=y CONFIG_64BIT=y CONFIG_MMU=y CONFIG_ARM64_PAGE_SHIFT=12 -CONFIG_ARM64_CONT_SHIFT=4 +CONFIG_ARM64_CONT_PTE_SHIFT=4 +CONFIG_ARM64_CONT_PMD_SHIFT=4 CONFIG_ARCH_MMAP_RND_BITS_MIN=18 CONFIG_ARCH_MMAP_RND_BITS_MAX=33 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11 @@ -281,10 +287,12 @@ CONFIG_ARCH_PROC_KCORE_TEXT=y # CONFIG_ARCH_BITMAIN is not set # CONFIG_ARCH_BRCMSTB is not set # CONFIG_ARCH_EXYNOS is not set +# CONFIG_ARCH_SPARX5 is not set # CONFIG_ARCH_K3 is not set # CONFIG_ARCH_LAYERSCAPE is not set # CONFIG_ARCH_LG1K is not set # CONFIG_ARCH_HISI is not set +# CONFIG_ARCH_KEEMBAY is not set # CONFIG_ARCH_MEDIATEK is not set # CONFIG_ARCH_MESON is not set # CONFIG_ARCH_MVEBU is not set @@ -303,6 +311,7 @@ CONFIG_ARCH_ROCKCHIP=y # CONFIG_ARCH_THUNDER2 is not set # CONFIG_ARCH_UNIPHIER is not set # CONFIG_ARCH_VEXPRESS is not set +# CONFIG_ARCH_VISCONTI is not set # CONFIG_ARCH_XGENE is not set # CONFIG_ARCH_ZX is not set # CONFIG_ARCH_ZYNQMP is not set @@ -334,6 +343,7 @@ CONFIG_ARM64_WORKAROUND_REPEAT_TLBI=y CONFIG_ARM64_ERRATUM_1286807=y CONFIG_ARM64_ERRATUM_1463225=y CONFIG_ARM64_ERRATUM_1542419=y +CONFIG_ARM64_ERRATUM_1508412=y CONFIG_CAVIUM_ERRATUM_22375=y CONFIG_CAVIUM_ERRATUM_23144=y CONFIG_CAVIUM_ERRATUM_23154=y @@ -384,7 +394,6 @@ CONFIG_SYS_SUPPORTS_HUGETLBFS=y CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y -CONFIG_SECCOMP=y # CONFIG_PARAVIRT is not set # CONFIG_PARAVIRT_TIME_ACCOUNTING is not set CONFIG_KEXEC=y @@ -394,9 +403,6 @@ CONFIG_CRASH_DUMP=y # CONFIG_XEN is not set CONFIG_FORCE_MAX_ZONEORDER=11 CONFIG_UNMAP_KERNEL_AT_EL0=y -CONFIG_HARDEN_BRANCH_PREDICTOR=y -CONFIG_HARDEN_EL2_VECTORS=y -CONFIG_ARM64_SSBD=y CONFIG_RODATA_FULL_DEFAULT_ENABLED=y # CONFIG_ARM64_SW_TTBR0_PAN is not set CONFIG_ARM64_TAGGED_ADDR_ABI=y @@ -435,6 +441,8 @@ CONFIG_AS_HAS_PAC=y # ARMv8.4 architectural features # CONFIG_ARM64_AMU_EXTN=y +CONFIG_AS_HAS_ARMV8_4=y +CONFIG_ARM64_TLB_RANGE=y # end of ARMv8.4 architectural features # @@ -464,6 +472,7 @@ CONFIG_CMDLINE="console=tty0 console=ttyS2,115200n8 earlyprintk=ttyS2,115200n8 i CONFIG_SYSVIPC_COMPAT=y CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y +CONFIG_ARCH_ENABLE_THP_MIGRATION=y # # Power management options @@ -558,11 +567,11 @@ CONFIG_GOOGLE_COREBOOT_TABLE=y CONFIG_GOOGLE_MEMCONSOLE=y CONFIG_GOOGLE_MEMCONSOLE_COREBOOT=y CONFIG_GOOGLE_VPD=y -CONFIG_EFI_EARLYCON=y CONFIG_ARM_PSCI_FW=y # CONFIG_ARM_PSCI_CHECKER is not set CONFIG_HAVE_ARM_SMCCC=y CONFIG_HAVE_ARM_SMCCC_DISCOVERY=y +CONFIG_ARM_SMCCC_SOC_ID=y # # Tegra firmware driver @@ -585,7 +594,6 @@ CONFIG_HAVE_KVM_ARCH_TLB_FLUSH_ALL=y CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y CONFIG_HAVE_KVM_IRQ_BYPASS=y CONFIG_HAVE_KVM_VCPU_RUN_PID_CHANGE=y -CONFIG_KVM_INDIRECT_VECTORS=y CONFIG_ARM64_CRYPTO=y CONFIG_CRYPTO_SHA256_ARM64=y CONFIG_CRYPTO_SHA512_ARM64=y @@ -612,6 +620,7 @@ CONFIG_CRYPTO_AES_ARM64_BS=y # CONFIG_CRASH_CORE=y CONFIG_KEXEC_CORE=y +CONFIG_SET_FS=y # CONFIG_KPROBES is not set CONFIG_JUMP_LABEL=y # CONFIG_STATIC_KEYS_SELFTEST is not set @@ -644,15 +653,17 @@ CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y CONFIG_HAVE_CMPXCHG_LOCAL=y CONFIG_HAVE_CMPXCHG_DOUBLE=y CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y +CONFIG_HAVE_ARCH_SECCOMP=y CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_SECCOMP=y CONFIG_SECCOMP_FILTER=y CONFIG_HAVE_ARCH_STACKLEAK=y CONFIG_HAVE_STACKPROTECTOR=y -CONFIG_CC_HAS_STACKPROTECTOR_NONE=y # CONFIG_STACKPROTECTOR is not set CONFIG_HAVE_CONTEXT_TRACKING=y CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_MOVE_PMD=y CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y CONFIG_HAVE_ARCH_HUGE_VMAP=y CONFIG_HAVE_MOD_ARCH_SPECIFIC=y @@ -663,7 +674,6 @@ CONFIG_ARCH_MMAP_RND_BITS=18 CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y CONFIG_ARCH_MMAP_RND_COMPAT_BITS=11 CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y -CONFIG_HAVE_COPY_THREAD_TLS=y CONFIG_CLONE_BACKWARDS=y CONFIG_OLD_SIGSUSPEND3=y CONFIG_COMPAT_OLD_SIGACTION=y @@ -676,9 +686,9 @@ CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y CONFIG_STRICT_MODULE_RWX=y CONFIG_HAVE_ARCH_COMPILER_H=y CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y -CONFIG_ARCH_USE_MEMREMAP_PROT=y # CONFIG_LOCK_EVENT_COUNTS is not set CONFIG_ARCH_HAS_RELR=y +CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y # # GCOV-based kernel profiling @@ -780,7 +790,6 @@ CONFIG_SELECT_MEMORY_MODEL=y CONFIG_SPARSEMEM_MANUAL=y CONFIG_SPARSEMEM=y CONFIG_NEED_MULTIPLE_NODES=y -CONFIG_HAVE_MEMORY_PRESENT=y CONFIG_SPARSEMEM_EXTREME=y CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y CONFIG_SPARSEMEM_VMEMMAP=y @@ -1277,6 +1286,11 @@ CONFIG_PCI_ECAM=y CONFIG_PCI_IOV=y # CONFIG_PCI_PRI is not set # CONFIG_PCI_PASID is not set +# CONFIG_PCIE_BUS_TUNE_OFF is not set +CONFIG_PCIE_BUS_DEFAULT=y +# CONFIG_PCIE_BUS_SAFE is not set +# CONFIG_PCIE_BUS_PERFORMANCE is not set +# CONFIG_PCIE_BUS_PEER2PEER is not set CONFIG_HOTPLUG_PCI=y # CONFIG_HOTPLUG_PCI_CPCI is not set # CONFIG_HOTPLUG_PCI_SHPC is not set @@ -1318,6 +1332,7 @@ CONFIG_PCIE_KIRIN=y # Cadence PCIe controllers support # # CONFIG_PCIE_CADENCE_PLAT_HOST is not set +# CONFIG_PCI_J721E_HOST is not set # end of Cadence PCIe controllers support # end of PCI controller drivers @@ -1464,10 +1479,19 @@ CONFIG_MTD_CFI_UTIL=y # CONFIG_MTD_DOCG3 is not set # end of Self-contained MTD device drivers +# +# NAND +# # CONFIG_MTD_ONENAND is not set # CONFIG_MTD_RAW_NAND is not set # CONFIG_MTD_SPI_NAND is not set +# +# ECC engine support +# +# end of ECC engine support +# end of NAND + # # LPDDR & LPDDR2 PCM memory drivers # @@ -1476,7 +1500,6 @@ CONFIG_MTD_CFI_UTIL=y CONFIG_MTD_SPI_NOR=y CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y -# CONFIG_SPI_CADENCE_QUADSPI is not set # CONFIG_MTD_UBI is not set # CONFIG_MTD_HYPERBUS is not set CONFIG_DTC=y @@ -1489,7 +1512,6 @@ CONFIG_OF_DYNAMIC=y CONFIG_OF_ADDRESS=y CONFIG_OF_IRQ=y CONFIG_OF_NET=y -CONFIG_OF_MDIO=y CONFIG_OF_RESERVED_MEM=y CONFIG_OF_RESOLVE=y CONFIG_OF_OVERLAY=y @@ -1547,6 +1569,7 @@ CONFIG_SRAM=y # CONFIG_PCI_ENDPOINT_TEST is not set # CONFIG_XILINX_SDFEC is not set # CONFIG_PVPANIC is not set +# CONFIG_HISI_HIKEY_USB is not set # CONFIG_C2PORT is not set # @@ -1573,13 +1596,6 @@ CONFIG_EEPROM_AT25=y # CONFIG_SENSORS_LIS3_SPI is not set # CONFIG_SENSORS_LIS3_I2C is not set # CONFIG_ALTERA_STAPL is not set - -# -# Intel MIC & related support -# -# CONFIG_VOP_BUS is not set -# end of Intel MIC & related support - # CONFIG_GENWQE is not set # CONFIG_ECHO is not set # CONFIG_MISC_ALCOR_PCI is not set @@ -1640,7 +1656,6 @@ CONFIG_SCSI_LOWLEVEL=y # CONFIG_SCSI_AIC79XX is not set # CONFIG_SCSI_AIC94XX is not set CONFIG_SCSI_HISI_SAS=y -CONFIG_SCSI_HISI_SAS_PCI=y # CONFIG_SCSI_MVSAS is not set # CONFIG_SCSI_MVUMI is not set # CONFIG_SCSI_ADVANSYS is not set @@ -1895,53 +1910,30 @@ CONFIG_NET_VENDOR_XILINX=y # CONFIG_XILINX_LL_TEMAC is not set # CONFIG_FDDI is not set # CONFIG_HIPPI is not set -CONFIG_MDIO_DEVICE=y -CONFIG_MDIO_BUS=y -# CONFIG_MDIO_BCM_UNIMAC is not set -CONFIG_MDIO_BITBANG=y -CONFIG_MDIO_BUS_MUX=y -# CONFIG_MDIO_BUS_MUX_GPIO is not set -CONFIG_MDIO_BUS_MUX_MMIOREG=y -# CONFIG_MDIO_BUS_MUX_MULTIPLEXER is not set -CONFIG_MDIO_CAVIUM=y -# CONFIG_MDIO_GPIO is not set -# CONFIG_MDIO_HISI_FEMAC is not set -# CONFIG_MDIO_IPQ4019 is not set -# CONFIG_MDIO_IPQ8064 is not set -# CONFIG_MDIO_MSCC_MIIM is not set -# CONFIG_MDIO_MVUSB is not set -# CONFIG_MDIO_OCTEON is not set -CONFIG_MDIO_THUNDER=y -# CONFIG_MDIO_XPCS is not set CONFIG_PHYLIB=y CONFIG_SWPHY=y # CONFIG_LED_TRIGGER_PHY is not set +CONFIG_FIXED_PHY=y # # MII PHY device drivers # -# CONFIG_ADIN_PHY is not set # CONFIG_AMD_PHY is not set +# CONFIG_ADIN_PHY is not set # CONFIG_AQUANTIA_PHY is not set # CONFIG_AX88796B_PHY is not set -# CONFIG_BCM7XXX_PHY is not set -# CONFIG_BCM87XX_PHY is not set # CONFIG_BROADCOM_PHY is not set # CONFIG_BCM54140_PHY is not set +# CONFIG_BCM7XXX_PHY is not set # CONFIG_BCM84881_PHY is not set +# CONFIG_BCM87XX_PHY is not set # CONFIG_CICADA_PHY is not set # CONFIG_CORTINA_PHY is not set # CONFIG_DAVICOM_PHY is not set -# CONFIG_DP83822_PHY is not set -# CONFIG_DP83TC811_PHY is not set -# CONFIG_DP83848_PHY is not set -# CONFIG_DP83867_PHY is not set -# CONFIG_DP83869_PHY is not set -CONFIG_FIXED_PHY=y # CONFIG_ICPLUS_PHY is not set +# CONFIG_LXT_PHY is not set # CONFIG_INTEL_XWAY_PHY is not set # CONFIG_LSI_ET1011C_PHY is not set -# CONFIG_LXT_PHY is not set CONFIG_MARVELL_PHY=y CONFIG_MARVELL_10G_PHY=y CONFIG_MICREL_PHY=y @@ -1955,12 +1947,47 @@ CONFIG_AT803X_PHY=y CONFIG_REALTEK_PHY=y # CONFIG_RENESAS_PHY is not set CONFIG_ROCKCHIP_PHY=y -# CONFIG_SMSC_PHY is not set +CONFIG_SMSC_PHY=y # CONFIG_STE10XP is not set # CONFIG_TERANETICS_PHY is not set +# CONFIG_DP83822_PHY is not set +# CONFIG_DP83TC811_PHY is not set +# CONFIG_DP83848_PHY is not set +# CONFIG_DP83867_PHY is not set +# CONFIG_DP83869_PHY is not set # CONFIG_VITESSE_PHY is not set # CONFIG_XILINX_GMII2RGMII is not set # CONFIG_MICREL_KS8995MA is not set +CONFIG_MDIO_DEVICE=y +CONFIG_MDIO_BUS=y +CONFIG_OF_MDIO=y +CONFIG_MDIO_DEVRES=y +CONFIG_MDIO_BITBANG=y +# CONFIG_MDIO_BCM_UNIMAC is not set +CONFIG_MDIO_CAVIUM=y +# CONFIG_MDIO_GPIO is not set +# CONFIG_MDIO_HISI_FEMAC is not set +# CONFIG_MDIO_MVUSB is not set +# CONFIG_MDIO_MSCC_MIIM is not set +# CONFIG_MDIO_OCTEON is not set +# CONFIG_MDIO_IPQ4019 is not set +# CONFIG_MDIO_IPQ8064 is not set +CONFIG_MDIO_THUNDER=y + +# +# MDIO Multiplexers +# +CONFIG_MDIO_BUS_MUX=y +# CONFIG_MDIO_BUS_MUX_GPIO is not set +# CONFIG_MDIO_BUS_MUX_MULTIPLEXER is not set +CONFIG_MDIO_BUS_MUX_MMIOREG=y + +# +# PCS device drivers +# +# CONFIG_PCS_XPCS is not set +# end of PCS device drivers + # CONFIG_PPP is not set # CONFIG_SLIP is not set CONFIG_USB_NET_DRIVERS=y @@ -2037,6 +2064,9 @@ CONFIG_ATH10K_PCI=y # CONFIG_WLAN_VENDOR_INTERSIL is not set # CONFIG_WLAN_VENDOR_MARVELL is not set # CONFIG_WLAN_VENDOR_MEDIATEK is not set +CONFIG_WLAN_VENDOR_MICROCHIP=y +# CONFIG_WILC1000_SDIO is not set +# CONFIG_WILC1000_SPI is not set # CONFIG_WLAN_VENDOR_RALINK is not set # CONFIG_WLAN_VENDOR_REALTEK is not set # CONFIG_WLAN_VENDOR_RSI is not set @@ -2203,6 +2233,7 @@ CONFIG_TOUCHSCREEN_ELAN=y # CONFIG_TOUCHSCREEN_ZFORCE is not set # CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set # CONFIG_TOUCHSCREEN_IQS5XX is not set +# CONFIG_TOUCHSCREEN_ZINITIX is not set CONFIG_INPUT_MISC=y # CONFIG_INPUT_AD714X is not set # CONFIG_INPUT_ATMEL_CAPTOUCH is not set @@ -2333,13 +2364,16 @@ CONFIG_SERIAL_MCTRL_GPIO=y CONFIG_SERIAL_DEV_BUS=y CONFIG_SERIAL_DEV_CTRL_TTYPORT=y # CONFIG_TTY_PRINTK is not set +# CONFIG_VIRTIO_CONSOLE is not set # CONFIG_IPMI_HANDLER is not set # CONFIG_IPMB_DEVICE_INTERFACE is not set CONFIG_HW_RANDOM=y # CONFIG_HW_RANDOM_TIMERIOMEM is not set +# CONFIG_HW_RANDOM_BA431 is not set CONFIG_HW_RANDOM_CAVIUM=y CONFIG_HW_RANDOM_OPTEE=y # CONFIG_HW_RANDOM_CCTRNG is not set +# CONFIG_HW_RANDOM_XIPHERA is not set # CONFIG_APPLICOM is not set CONFIG_DEVMEM=y # CONFIG_RAW_DRIVER is not set @@ -2448,6 +2482,7 @@ CONFIG_I2C_CROS_EC_TUNNEL=y # CONFIG_I2C_STUB is not set CONFIG_I2C_SLAVE=y # CONFIG_I2C_SLAVE_EEPROM is not set +# CONFIG_I2C_SLAVE_TESTUNIT is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set @@ -2466,6 +2501,7 @@ CONFIG_SPI_MEM=y # CONFIG_SPI_AXI_SPI_ENGINE is not set # CONFIG_SPI_BITBANG is not set # CONFIG_SPI_CADENCE is not set +# CONFIG_SPI_CADENCE_QUADSPI is not set # CONFIG_SPI_DESIGNWARE is not set # CONFIG_SPI_NXP_FLEXSPI is not set # CONFIG_SPI_GPIO is not set @@ -2495,6 +2531,7 @@ CONFIG_SPI_SPIDEV=y # CONFIG_SPI_LOOPBACK_TEST is not set # CONFIG_SPI_TLE62X0 is not set # CONFIG_SPI_SLAVE is not set +CONFIG_SPI_DYNAMIC=y CONFIG_SPMI=y # CONFIG_HSI is not set CONFIG_PPS=y @@ -2537,12 +2574,20 @@ CONFIG_PINCTRL_SINGLE=y # CONFIG_PINCTRL_STMFX is not set # CONFIG_PINCTRL_RK805 is not set # CONFIG_PINCTRL_OCELOT is not set + +# +# Renesas pinctrl drivers +# +# end of Renesas pinctrl drivers + CONFIG_GPIOLIB=y CONFIG_GPIOLIB_FASTPATH_LIMIT=512 CONFIG_OF_GPIO=y CONFIG_GPIOLIB_IRQCHIP=y # CONFIG_DEBUG_GPIO is not set # CONFIG_GPIO_SYSFS is not set +CONFIG_GPIO_CDEV=y +CONFIG_GPIO_CDEV_V1=y CONFIG_GPIO_GENERIC=y # @@ -2578,6 +2623,7 @@ CONFIG_GPIO_XGENE=y # CONFIG_GPIO_MAX732X is not set CONFIG_GPIO_PCA953X=y CONFIG_GPIO_PCA953X_IRQ=y +# CONFIG_GPIO_PCA9570 is not set # CONFIG_GPIO_PCF857X is not set # CONFIG_GPIO_TPIC2810 is not set # end of I2C GPIO expanders @@ -2615,9 +2661,6 @@ CONFIG_GPIO_PCA953X_IRQ=y # CONFIG_GPIO_AGGREGATOR is not set # CONFIG_GPIO_MOCKUP is not set # CONFIG_W1 is not set -CONFIG_POWER_AVS=y -# CONFIG_QCOM_CPR is not set -CONFIG_ROCKCHIP_IODOMAIN=y CONFIG_POWER_RESET=y CONFIG_POWER_RESET_BRCMSTB=y # CONFIG_POWER_RESET_GPIO is not set @@ -2642,8 +2685,7 @@ CONFIG_POWER_SUPPLY_HWMON=y # CONFIG_BATTERY_DS2780 is not set # CONFIG_BATTERY_DS2781 is not set # CONFIG_BATTERY_DS2782 is not set -# CONFIG_BATTERY_LEGO_EV3 is not set -CONFIG_BATTERY_SBS=y +# CONFIG_BATTERY_SBS is not set # CONFIG_CHARGER_SBS is not set # CONFIG_MANAGER_SBS is not set CONFIG_BATTERY_BQ27XXX=y @@ -2662,7 +2704,9 @@ CONFIG_BATTERY_BQ27XXX_I2C=y # CONFIG_CHARGER_BQ24190 is not set # CONFIG_CHARGER_BQ24257 is not set # CONFIG_CHARGER_BQ24735 is not set +# CONFIG_CHARGER_BQ2515X is not set # CONFIG_CHARGER_BQ25890 is not set +# CONFIG_CHARGER_BQ25980 is not set # CONFIG_CHARGER_SMB347 is not set # CONFIG_BATTERY_GAUGE_LTC2941 is not set # CONFIG_CHARGER_RT9455 is not set @@ -2697,6 +2741,7 @@ CONFIG_HWMON=y CONFIG_SENSORS_ARM_SCPI=y # CONFIG_SENSORS_ASPEED is not set # CONFIG_SENSORS_ATXP1 is not set +# CONFIG_SENSORS_CORSAIR_CPRO is not set # CONFIG_SENSORS_DRIVETEMP is not set # CONFIG_SENSORS_DS620 is not set # CONFIG_SENSORS_DS1621 is not set @@ -2741,6 +2786,7 @@ CONFIG_SENSORS_ARM_SCPI=y # CONFIG_SENSORS_MAX31790 is not set # CONFIG_SENSORS_MCP3021 is not set # CONFIG_SENSORS_TC654 is not set +# CONFIG_SENSORS_MR75203 is not set # CONFIG_SENSORS_ADCXX is not set # CONFIG_SENSORS_LM63 is not set # CONFIG_SENSORS_LM70 is not set @@ -2816,6 +2862,7 @@ CONFIG_SENSORS_INA2XX=y # CONFIG_SENSORS_W83627HF is not set # CONFIG_SENSORS_W83627EHF is not set CONFIG_THERMAL=y +# CONFIG_THERMAL_NETLINK is not set # CONFIG_THERMAL_STATISTICS is not set CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 CONFIG_THERMAL_HWMON=y @@ -2830,7 +2877,6 @@ CONFIG_THERMAL_GOV_STEP_WISE=y # CONFIG_THERMAL_GOV_USER_SPACE is not set CONFIG_CPU_THERMAL=y CONFIG_CPU_FREQ_THERMAL=y -# CONFIG_CLOCK_THERMAL is not set # CONFIG_DEVFREQ_THERMAL is not set CONFIG_THERMAL_EMULATION=y # CONFIG_THERMAL_MMIO is not set @@ -2944,9 +2990,9 @@ CONFIG_MFD_RK808=y # CONFIG_MFD_RN5T618 is not set # CONFIG_MFD_SEC_CORE is not set # CONFIG_MFD_SI476X_CORE is not set +# CONFIG_MFD_SL28CPLD is not set # CONFIG_MFD_SM501 is not set # CONFIG_MFD_SKY81452 is not set -# CONFIG_MFD_SMSC is not set # CONFIG_ABX500_CORE is not set # CONFIG_MFD_STMPE is not set CONFIG_MFD_SYSCON=y @@ -2989,8 +3035,10 @@ CONFIG_MFD_SYSCON=y # CONFIG_MFD_ROHM_BD71828 is not set # CONFIG_MFD_STPMIC1 is not set # CONFIG_MFD_STMFX is not set +# CONFIG_MFD_KHADAS_MCU is not set # CONFIG_MFD_VEXPRESS_SYSREG is not set # CONFIG_RAVE_SP_CORE is not set +# CONFIG_MFD_INTEL_M10_BMC is not set # end of Multifunction device drivers CONFIG_REGULATOR=y @@ -3001,9 +3049,11 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=y # CONFIG_REGULATOR_88PG86X is not set # CONFIG_REGULATOR_ACT8865 is not set # CONFIG_REGULATOR_AD5398 is not set +# CONFIG_REGULATOR_CROS_EC is not set # CONFIG_REGULATOR_DA9210 is not set # CONFIG_REGULATOR_DA9211 is not set CONFIG_REGULATOR_FAN53555=y +# CONFIG_REGULATOR_FAN53880 is not set CONFIG_REGULATOR_GPIO=y # CONFIG_REGULATOR_ISL9305 is not set # CONFIG_REGULATOR_ISL6271A is not set @@ -3025,16 +3075,22 @@ CONFIG_REGULATOR_GPIO=y # CONFIG_REGULATOR_MP886X is not set # CONFIG_REGULATOR_MPQ7920 is not set # CONFIG_REGULATOR_MT6311 is not set +# CONFIG_REGULATOR_PCA9450 is not set # CONFIG_REGULATOR_PFUZE100 is not set # CONFIG_REGULATOR_PV88060 is not set # CONFIG_REGULATOR_PV88080 is not set # CONFIG_REGULATOR_PV88090 is not set CONFIG_REGULATOR_PWM=y CONFIG_REGULATOR_QCOM_SPMI=y +# CONFIG_REGULATOR_QCOM_USB_VBUS is not set +# CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set CONFIG_REGULATOR_RK808=y +# CONFIG_REGULATOR_RT4801 is not set +# CONFIG_REGULATOR_RTMV20 is not set # CONFIG_REGULATOR_SLG51000 is not set # CONFIG_REGULATOR_SY8106A is not set # CONFIG_REGULATOR_SY8824X is not set +# CONFIG_REGULATOR_SY8827N is not set # CONFIG_REGULATOR_TPS51632 is not set # CONFIG_REGULATOR_TPS62360 is not set # CONFIG_REGULATOR_TPS65023 is not set @@ -3043,6 +3099,7 @@ CONFIG_REGULATOR_RK808=y # CONFIG_REGULATOR_TPS6524X is not set CONFIG_REGULATOR_VCTRL=y # CONFIG_REGULATOR_VEXPRESS is not set +# CONFIG_REGULATOR_QCOM_LABIBB is not set CONFIG_RC_CORE=y CONFIG_RC_MAP=y # CONFIG_LIRC is not set @@ -3074,6 +3131,7 @@ CONFIG_RC_DEVICES=y # CONFIG_IR_SERIAL is not set # CONFIG_IR_SIR is not set # CONFIG_RC_XBOX_DVD is not set +# CONFIG_IR_TOY is not set CONFIG_CEC_CORE=y # CONFIG_MEDIA_CEC_RC is not set # CONFIG_MEDIA_CEC_SUPPORT is not set @@ -3135,7 +3193,6 @@ CONFIG_ROCKCHIP_RGB=y # CONFIG_DRM_MGAG200 is not set # CONFIG_DRM_RCAR_DW_HDMI is not set # CONFIG_DRM_RCAR_LVDS is not set -CONFIG_DRM_RCAR_WRITEBACK=y # CONFIG_DRM_QXL is not set # CONFIG_DRM_BOCHS is not set CONFIG_DRM_PANEL=y @@ -3165,6 +3222,7 @@ CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04=y # CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set # CONFIG_DRM_PANEL_NOVATEK_NT35510 is not set # CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set +# CONFIG_DRM_PANEL_MANTIX_MLAF057WE51 is not set # CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set # CONFIG_DRM_PANEL_ORISETECH_OTM8009A is not set # CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS is not set @@ -3172,7 +3230,6 @@ CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04=y # CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set # CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set # CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set -# CONFIG_DRM_PANEL_ROCKTECH_JH057N00900 is not set # CONFIG_DRM_PANEL_RONBO_RB070D30 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set @@ -3185,6 +3242,7 @@ CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04=y # CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set # CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set # CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set +# CONFIG_DRM_PANEL_SITRONIX_ST7703 is not set # CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set # CONFIG_DRM_PANEL_SONY_ACX424AKP is not set # CONFIG_DRM_PANEL_SONY_ACX565AKM is not set @@ -3205,6 +3263,7 @@ CONFIG_DRM_PANEL_BRIDGE=y # CONFIG_DRM_CDNS_DSI is not set # CONFIG_DRM_CHRONTEL_CH7033 is not set # CONFIG_DRM_DISPLAY_CONNECTOR is not set +# CONFIG_DRM_LONTIUM_LT9611 is not set # CONFIG_DRM_LVDS_CODEC is not set # CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set # CONFIG_DRM_NWL_MIPI_DSI is not set @@ -3216,9 +3275,11 @@ CONFIG_DRM_PANEL_BRIDGE=y # CONFIG_DRM_SII9234 is not set # CONFIG_DRM_SIMPLE_BRIDGE is not set # CONFIG_DRM_THINE_THC63LVD1024 is not set +# CONFIG_DRM_TOSHIBA_TC358762 is not set # CONFIG_DRM_TOSHIBA_TC358764 is not set # CONFIG_DRM_TOSHIBA_TC358767 is not set # CONFIG_DRM_TOSHIBA_TC358768 is not set +# CONFIG_DRM_TOSHIBA_TC358775 is not set # CONFIG_DRM_TI_TFP410 is not set # CONFIG_DRM_TI_SN65DSI86 is not set # CONFIG_DRM_TI_TPD12S015 is not set @@ -3228,6 +3289,7 @@ CONFIG_DRM_ANALOGIX_DP=y CONFIG_DRM_I2C_ADV7511=y # CONFIG_DRM_I2C_ADV7511_AUDIO is not set CONFIG_DRM_I2C_ADV7511_CEC=y +# CONFIG_DRM_CDNS_MHDP8546 is not set CONFIG_DRM_DW_HDMI=y # CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set # CONFIG_DRM_DW_HDMI_I2S_AUDIO is not set @@ -3334,7 +3396,7 @@ CONFIG_LCD_CLASS_DEVICE=y # CONFIG_LCD_HX8357 is not set # CONFIG_LCD_OTM3225A is not set CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_GENERIC=y +# CONFIG_BACKLIGHT_KTD253 is not set CONFIG_BACKLIGHT_PWM=y # CONFIG_BACKLIGHT_QCOM_WLED is not set # CONFIG_BACKLIGHT_ADP8860 is not set @@ -3502,6 +3564,7 @@ CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y # CONFIG_SND_I2S_HI6210_I2S is not set # CONFIG_SND_SOC_IMG is not set +# CONFIG_SND_SOC_INTEL_KEEMBAY is not set # CONFIG_SND_SOC_MTK_BTCVSD is not set CONFIG_SND_SOC_ROCKCHIP=y CONFIG_SND_SOC_ROCKCHIP_I2S=y @@ -3557,6 +3620,7 @@ CONFIG_SND_SOC_AK4613=y # CONFIG_SND_SOC_CS42L52 is not set # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set +# CONFIG_SND_SOC_CS4234 is not set # CONFIG_SND_SOC_CS4265 is not set # CONFIG_SND_SOC_CS4270 is not set # CONFIG_SND_SOC_CS4271_I2C is not set @@ -3583,7 +3647,7 @@ CONFIG_SND_SOC_MAX98357A=y # CONFIG_SND_SOC_MAX98504 is not set # CONFIG_SND_SOC_MAX9867 is not set # CONFIG_SND_SOC_MAX98927 is not set -# CONFIG_SND_SOC_MAX98373 is not set +# CONFIG_SND_SOC_MAX98373_I2C is not set # CONFIG_SND_SOC_MAX98390 is not set # CONFIG_SND_SOC_MAX9860 is not set # CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set @@ -3620,6 +3684,7 @@ CONFIG_SND_SOC_RT5645=y # CONFIG_SND_SOC_STI_SAS is not set # CONFIG_SND_SOC_TAS2552 is not set # CONFIG_SND_SOC_TAS2562 is not set +# CONFIG_SND_SOC_TAS2764 is not set # CONFIG_SND_SOC_TAS2770 is not set # CONFIG_SND_SOC_TAS5086 is not set # CONFIG_SND_SOC_TAS571X is not set @@ -3720,6 +3785,7 @@ CONFIG_HID_EZKEY=y # CONFIG_HID_GLORIOUS is not set # CONFIG_HID_HOLTEK is not set # CONFIG_HID_GOOGLE_HAMMER is not set +# CONFIG_HID_VIVALDI is not set # CONFIG_HID_GT683R is not set # CONFIG_HID_KEYTOUCH is not set # CONFIG_HID_KYE is not set @@ -3815,10 +3881,11 @@ CONFIG_USB_PCI=y # Miscellaneous USB options # CONFIG_USB_DEFAULT_PERSIST=y +# CONFIG_USB_FEW_INIT_RETRIES is not set # CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_OTG is not set -# CONFIG_USB_OTG_WHITELIST is not set -# CONFIG_USB_OTG_BLACKLIST_HUB is not set +# CONFIG_USB_OTG_PRODUCTLIST is not set +# CONFIG_USB_OTG_DISABLE_EXTERNAL_HUB is not set # CONFIG_USB_LEDS_TRIGGER_USBPORT is not set CONFIG_USB_AUTOSUSPEND_DELAY=2 # CONFIG_USB_MON is not set @@ -3891,6 +3958,8 @@ CONFIG_USB_STORAGE=y # CONFIG_USB_CDNS3 is not set CONFIG_USB_MUSB_HDRC=y CONFIG_USB_MUSB_HOST=y +# CONFIG_USB_MUSB_GADGET is not set +# CONFIG_USB_MUSB_DUAL_ROLE is not set # # Platform Glue Layer @@ -3902,23 +3971,18 @@ CONFIG_USB_MUSB_HOST=y # CONFIG_MUSB_PIO_ONLY is not set CONFIG_USB_DWC3=y # CONFIG_USB_DWC3_ULPI is not set -CONFIG_USB_DWC3_HOST=y +# CONFIG_USB_DWC3_HOST is not set +# CONFIG_USB_DWC3_GADGET is not set +CONFIG_USB_DWC3_DUAL_ROLE=y # # Platform Glue Driver Support # CONFIG_USB_DWC3_HAPS=y CONFIG_USB_DWC3_OF_SIMPLE=y -CONFIG_USB_DWC2=y -CONFIG_USB_DWC2_HOST=y - -# -# Gadget/Dual-role mode requires USB Gadget support to be enabled -# -# CONFIG_USB_DWC2_PCI is not set -# CONFIG_USB_DWC2_DEBUG is not set -# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set +# CONFIG_USB_DWC2 is not set CONFIG_USB_CHIPIDEA=y +# CONFIG_USB_CHIPIDEA_UDC is not set CONFIG_USB_CHIPIDEA_HOST=y CONFIG_USB_CHIPIDEA_PCI=y CONFIG_USB_CHIPIDEA_MSM=y @@ -4025,16 +4089,100 @@ CONFIG_USB_ULPI=y CONFIG_USB_ULPI_VIEWPORT=y # end of USB Physical Layer drivers -# CONFIG_USB_GADGET is not set +CONFIG_USB_GADGET=y +# CONFIG_USB_GADGET_DEBUG is not set +# CONFIG_USB_GADGET_DEBUG_FILES is not set +# CONFIG_USB_GADGET_DEBUG_FS is not set +CONFIG_USB_GADGET_VBUS_DRAW=2 +CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 + +# +# USB Peripheral Controller +# +# CONFIG_USB_FOTG210_UDC is not set +# CONFIG_USB_GR_UDC is not set +# CONFIG_USB_R8A66597 is not set +# CONFIG_USB_PXA27X is not set +# CONFIG_USB_MV_UDC is not set +# CONFIG_USB_MV_U3D is not set +CONFIG_USB_SNP_CORE=y +CONFIG_USB_SNP_UDC_PLAT=y +# CONFIG_USB_M66592 is not set +CONFIG_USB_BDC_UDC=y + +# +# Platform Support +# +CONFIG_USB_BDC_PCI=y +# CONFIG_USB_AMD5536UDC is not set +# CONFIG_USB_NET2272 is not set +# CONFIG_USB_NET2280 is not set +# CONFIG_USB_GOKU is not set +# CONFIG_USB_EG20T is not set +# CONFIG_USB_GADGET_XILINX is not set +# CONFIG_USB_MAX3420_UDC is not set +# CONFIG_USB_DUMMY_HCD is not set +# end of USB Peripheral Controller + +CONFIG_USB_LIBCOMPOSITE=y +CONFIG_USB_U_ETHER=y +CONFIG_USB_F_NCM=y +CONFIG_USB_F_ECM=y +CONFIG_USB_F_EEM=y +CONFIG_USB_F_RNDIS=y +CONFIG_USB_F_MASS_STORAGE=y +CONFIG_USB_F_FS=y +CONFIG_USB_CONFIGFS=y +# CONFIG_USB_CONFIGFS_SERIAL is not set +# CONFIG_USB_CONFIGFS_ACM is not set +# CONFIG_USB_CONFIGFS_OBEX is not set +CONFIG_USB_CONFIGFS_NCM=y +CONFIG_USB_CONFIGFS_ECM=y +# CONFIG_USB_CONFIGFS_ECM_SUBSET is not set +CONFIG_USB_CONFIGFS_RNDIS=y +CONFIG_USB_CONFIGFS_EEM=y +CONFIG_USB_CONFIGFS_MASS_STORAGE=y +# CONFIG_USB_CONFIGFS_F_LB_SS is not set +CONFIG_USB_CONFIGFS_F_FS=y +# CONFIG_USB_CONFIGFS_F_UAC1 is not set +# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set +# CONFIG_USB_CONFIGFS_F_UAC2 is not set +# CONFIG_USB_CONFIGFS_F_MIDI is not set +# CONFIG_USB_CONFIGFS_F_HID is not set +# CONFIG_USB_CONFIGFS_F_PRINTER is not set + +# +# USB Gadget precomposed configurations +# +# CONFIG_USB_ZERO is not set +# CONFIG_USB_AUDIO is not set +# CONFIG_USB_ETH is not set +# CONFIG_USB_G_NCM is not set +# CONFIG_USB_GADGETFS is not set +# CONFIG_USB_FUNCTIONFS is not set +# CONFIG_USB_MASS_STORAGE is not set +# CONFIG_USB_G_SERIAL is not set +# CONFIG_USB_MIDI_GADGET is not set +# CONFIG_USB_G_PRINTER is not set +# CONFIG_USB_CDC_COMPOSITE is not set +# CONFIG_USB_G_ACM_MS is not set +# CONFIG_USB_G_MULTI is not set +# CONFIG_USB_G_HID is not set +# CONFIG_USB_G_DBGP is not set +# CONFIG_USB_RAW_GADGET is not set +# end of USB Gadget precomposed configurations + CONFIG_TYPEC=y CONFIG_TYPEC_TCPM=y CONFIG_TYPEC_TCPCI=y CONFIG_TYPEC_RT1711H=y +# CONFIG_TYPEC_TCPCI_MAXIM is not set CONFIG_TYPEC_FUSB302=y CONFIG_TYPEC_UCSI=y CONFIG_UCSI_CCG=y # CONFIG_TYPEC_HD3SS3220 is not set CONFIG_TYPEC_TPS6598X=y +# CONFIG_TYPEC_STUSB160X is not set # # USB Type-C Multiplexer/DeMultiplexer Switch support @@ -4100,6 +4248,7 @@ CONFIG_MMC_SDHCI_XENON=y CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y # CONFIG_LEDS_CLASS_FLASH is not set +# CONFIG_LEDS_CLASS_MULTICOLOR is not set # CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set # @@ -4119,10 +4268,8 @@ CONFIG_LEDS_CLASS=y CONFIG_LEDS_GPIO=y # CONFIG_LEDS_LP3944 is not set # CONFIG_LEDS_LP3952 is not set -# CONFIG_LEDS_LP5521 is not set -# CONFIG_LEDS_LP5523 is not set -# CONFIG_LEDS_LP5562 is not set -# CONFIG_LEDS_LP8501 is not set +# CONFIG_LEDS_LP50XX is not set +# CONFIG_LEDS_LP55XX_COMMON is not set # CONFIG_LEDS_LP8860 is not set # CONFIG_LEDS_PCA955X is not set # CONFIG_LEDS_PCA963X is not set @@ -4229,6 +4376,7 @@ CONFIG_RTC_DRV_RK808=y # CONFIG_RTC_DRV_RX8025 is not set # CONFIG_RTC_DRV_EM3027 is not set # CONFIG_RTC_DRV_RV3028 is not set +# CONFIG_RTC_DRV_RV3032 is not set # CONFIG_RTC_DRV_RV8803 is not set # CONFIG_RTC_DRV_SD3078 is not set @@ -4314,6 +4462,7 @@ CONFIG_PL330_DMA=y # CONFIG_PLX_DMA is not set # CONFIG_XILINX_DMA is not set # CONFIG_XILINX_ZYNQMP_DMA is not set +# CONFIG_XILINX_ZYNQMP_DPDMA is not set CONFIG_QCOM_HIDMA_MGMT=y CONFIG_QCOM_HIDMA=y # CONFIG_DW_DMAC is not set @@ -4366,7 +4515,6 @@ CONFIG_VHOST_MENU=y # CONFIG_GREYBUS is not set # CONFIG_STAGING is not set # CONFIG_GOLDFISH is not set -CONFIG_MFD_CROS_EC=y CONFIG_CHROME_PLATFORMS=y CONFIG_CROS_EC=y # CONFIG_CROS_EC_I2C is not set @@ -4403,6 +4551,17 @@ CONFIG_COMMON_CLK_XGENE=y CONFIG_COMMON_CLK_PWM=y # CONFIG_COMMON_CLK_VC5 is not set # CONFIG_COMMON_CLK_FIXED_MMIO is not set +CONFIG_COMMON_CLK_ROCKCHIP=y +CONFIG_CLK_PX30=y +CONFIG_CLK_RV110X=y +CONFIG_CLK_RK3036=y +CONFIG_CLK_RK312X=y +CONFIG_CLK_RK3188=y +CONFIG_CLK_RK322X=y +CONFIG_CLK_RK3308=y +CONFIG_CLK_RK3328=y +CONFIG_CLK_RK3368=y +CONFIG_CLK_RK3399=y CONFIG_HWSPINLOCK=y # @@ -4450,6 +4609,7 @@ CONFIG_ARM_SMMU=y # CONFIG_ARM_SMMU_LEGACY_DT_BINDINGS is not set CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT=y CONFIG_ARM_SMMU_V3=y +# CONFIG_ARM_SMMU_V3_SVA is not set # # Remoteproc drivers @@ -4507,6 +4667,7 @@ CONFIG_SOC_BRCMSTB=y # end of Qualcomm SoC drivers CONFIG_ROCKCHIP_GRF=y +CONFIG_ROCKCHIP_IODOMAIN=y CONFIG_ROCKCHIP_PM_DOMAINS=y # CONFIG_SOC_TI is not set @@ -4553,6 +4714,8 @@ CONFIG_MEMORY=y CONFIG_IIO=y CONFIG_IIO_BUFFER=y # CONFIG_IIO_BUFFER_CB is not set +# CONFIG_IIO_BUFFER_DMA is not set +# CONFIG_IIO_BUFFER_DMAENGINE is not set # CONFIG_IIO_BUFFER_HW_CONSUMER is not set CONFIG_IIO_KFIFO_BUF=y CONFIG_IIO_TRIGGERED_BUFFER=y @@ -4561,6 +4724,7 @@ CONFIG_IIO_TRIGGER=y CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 # CONFIG_IIO_SW_DEVICE is not set # CONFIG_IIO_SW_TRIGGER is not set +# CONFIG_IIO_TRIGGERED_EVENT is not set # # Accelerometers @@ -4684,6 +4848,7 @@ CONFIG_ROCKCHIP_SARADC=y # CONFIG_CCS811 is not set # CONFIG_IAQCORE is not set # CONFIG_PMS7003 is not set +# CONFIG_SCD30_CORE is not set # CONFIG_SENSIRION_SGP30 is not set # CONFIG_SPS30 is not set # CONFIG_VZ89X is not set @@ -4773,6 +4938,7 @@ CONFIG_IIO_CROS_EC_SENSORS=y # CONFIG_ADIS16130 is not set # CONFIG_ADIS16136 is not set # CONFIG_ADIS16260 is not set +# CONFIG_ADXRS290 is not set # CONFIG_ADXRS450 is not set # CONFIG_BMG160 is not set # CONFIG_FXAS21002C is not set @@ -4801,6 +4967,7 @@ CONFIG_IIO_CROS_EC_SENSORS=y # CONFIG_AM2315 is not set # CONFIG_DHT11 is not set # CONFIG_HDC100X is not set +# CONFIG_HDC2010 is not set # CONFIG_HTS221 is not set # CONFIG_HTU21 is not set # CONFIG_SI7005 is not set @@ -4819,6 +4986,8 @@ CONFIG_IIO_CROS_EC_SENSORS=y # CONFIG_FXOS8700_I2C is not set # CONFIG_FXOS8700_SPI is not set # CONFIG_KMX61 is not set +# CONFIG_INV_ICM42600_I2C is not set +# CONFIG_INV_ICM42600_SPI is not set # CONFIG_INV_MPU6050_I2C is not set # CONFIG_INV_MPU6050_SPI is not set # CONFIG_IIO_ST_LSM6DSX is not set @@ -4833,6 +5002,7 @@ CONFIG_IIO_CROS_EC_SENSORS=y # CONFIG_AL3320A is not set # CONFIG_APDS9300 is not set # CONFIG_APDS9960 is not set +# CONFIG_AS73211 is not set # CONFIG_BH1750 is not set # CONFIG_BH1780 is not set # CONFIG_CM32181 is not set @@ -5036,6 +5206,7 @@ CONFIG_RESET_CONTROLLER=y CONFIG_GENERIC_PHY=y CONFIG_GENERIC_PHY_MIPI_DPHY=y # CONFIG_PHY_XGENE is not set +# CONFIG_USB_LGM_PHY is not set # CONFIG_BCM_KONA_USB2_PHY is not set # CONFIG_PHY_CADENCE_TORRENT is not set # CONFIG_PHY_CADENCE_DPHY is not set @@ -5051,6 +5222,7 @@ CONFIG_GENERIC_PHY_MIPI_DPHY=y # CONFIG_PHY_QCOM_USB_HS is not set # CONFIG_PHY_QCOM_USB_HSIC is not set # CONFIG_PHY_ROCKCHIP_DP is not set +# CONFIG_PHY_ROCKCHIP_DPHY_RX0 is not set CONFIG_PHY_ROCKCHIP_EMMC=y CONFIG_PHY_ROCKCHIP_INNO_HDMI=y CONFIG_PHY_ROCKCHIP_INNO_USB2=y @@ -5058,7 +5230,6 @@ CONFIG_PHY_ROCKCHIP_INNO_USB2=y CONFIG_PHY_ROCKCHIP_PCIE=y CONFIG_PHY_ROCKCHIP_TYPEC=y CONFIG_PHY_ROCKCHIP_USB=y -CONFIG_PHY_SAMSUNG_USB2=y # CONFIG_PHY_TUSB1210 is not set # end of PHY Subsystem @@ -5212,6 +5383,7 @@ CONFIG_SYSFS=y CONFIG_TMPFS=y # CONFIG_TMPFS_POSIX_ACL is not set # CONFIG_TMPFS_XATTR is not set +# CONFIG_TMPFS_INODE64 is not set CONFIG_HUGETLBFS=y CONFIG_HUGETLB_PAGE=y CONFIG_MEMFD_CREATE=y @@ -5288,6 +5460,7 @@ CONFIG_ROOT_NFS=y # CONFIG_NFS_USE_LEGACY_DNS is not set CONFIG_NFS_USE_KERNEL_DNS=y CONFIG_NFS_DISABLE_UDP_SUPPORT=y +# CONFIG_NFS_V4_2_READ_PLUS is not set # CONFIG_NFSD is not set CONFIG_GRACE_PERIOD=y CONFIG_LOCKD=y @@ -5456,6 +5629,7 @@ CONFIG_CRYPTO_RSA=y CONFIG_CRYPTO_ECC=y CONFIG_CRYPTO_ECDH=y # CONFIG_CRYPTO_ECRDSA is not set +# CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_CURVE25519 is not set # @@ -5524,21 +5698,16 @@ CONFIG_CRYPTO_SM3=y # CONFIG_CRYPTO_AES=y # CONFIG_CRYPTO_AES_TI is not set -# CONFIG_CRYPTO_ANUBIS is not set -CONFIG_CRYPTO_ARC4=y # CONFIG_CRYPTO_BLOWFISH is not set # CONFIG_CRYPTO_CAMELLIA is not set # CONFIG_CRYPTO_CAST5 is not set # CONFIG_CRYPTO_CAST6 is not set CONFIG_CRYPTO_DES=y # CONFIG_CRYPTO_FCRYPT is not set -# CONFIG_CRYPTO_KHAZAD is not set # CONFIG_CRYPTO_SALSA20 is not set CONFIG_CRYPTO_CHACHA20=y -# CONFIG_CRYPTO_SEED is not set # CONFIG_CRYPTO_SERPENT is not set # CONFIG_CRYPTO_SM4 is not set -# CONFIG_CRYPTO_TEA is not set # CONFIG_CRYPTO_TWOFISH is not set # @@ -5670,6 +5839,7 @@ CONFIG_DECOMPRESS_GZIP=y CONFIG_DECOMPRESS_BZIP2=y CONFIG_DECOMPRESS_LZMA=y CONFIG_DECOMPRESS_XZ=y +CONFIG_DECOMPRESS_ZSTD=y CONFIG_GENERIC_ALLOCATOR=y CONFIG_INTERVAL_TREE=y CONFIG_XARRAY_MULTI=y @@ -5677,6 +5847,7 @@ CONFIG_ASSOCIATIVE_ARRAY=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT_MAP=y CONFIG_HAS_DMA=y +CONFIG_DMA_OPS=y CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_ARCH_DMA_ADDR_T_64BIT=y @@ -5692,6 +5863,7 @@ CONFIG_DMA_COHERENT_POOL=y CONFIG_DMA_REMAP=y CONFIG_DMA_DIRECT_REMAP=y CONFIG_DMA_CMA=y +CONFIG_DMA_PERNUMA_CMA=y # # Default contiguous memory area size: @@ -5716,11 +5888,13 @@ CONFIG_LIBFDT=y CONFIG_OID_REGISTRY=y CONFIG_HAVE_GENERIC_VDSO=y CONFIG_GENERIC_GETTIMEOFDAY=y +CONFIG_GENERIC_VDSO_TIME_NS=y CONFIG_FONT_SUPPORT=y # CONFIG_FONTS is not set CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y CONFIG_SG_POOL=y +CONFIG_ARCH_STACKWALK=y CONFIG_SBITMAP=y # CONFIG_STRING_SELFTEST is not set # end of Library routines @@ -5755,6 +5929,7 @@ CONFIG_FRAME_WARN=2048 # CONFIG_HEADERS_INSTALL is not set # CONFIG_DEBUG_SECTION_MISMATCH is not set CONFIG_SECTION_MISMATCH_WARN_ONLY=y +# CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_32B is not set CONFIG_ARCH_WANT_FRAME_POINTERS=y CONFIG_FRAME_POINTER=y # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set @@ -5768,6 +5943,9 @@ CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 CONFIG_MAGIC_SYSRQ_SERIAL=y CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="" CONFIG_DEBUG_FS=y +CONFIG_DEBUG_FS_ALLOW_ALL=y +# CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set +# CONFIG_DEBUG_FS_ALLOW_NONE is not set CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y @@ -5808,7 +5986,6 @@ CONFIG_HAVE_ARCH_KASAN_SW_TAGS=y CONFIG_CC_HAS_KASAN_GENERIC=y CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y # CONFIG_KASAN is not set -CONFIG_KASAN_STACK=1 # end of Memory Debugging # CONFIG_DEBUG_SHIRQ is not set @@ -5852,6 +6029,8 @@ CONFIG_LOCK_DEBUGGING_SUPPORT=y # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set # CONFIG_LOCK_TORTURE_TEST is not set # CONFIG_WW_MUTEX_SELFTEST is not set +# CONFIG_SCF_TORTURE_TEST is not set +# CONFIG_CSD_LOCK_WAIT_DEBUG is not set # end of Lock Debugging (spinlocks, mutexes, etc...) CONFIG_STACKTRACE=y @@ -5874,8 +6053,9 @@ CONFIG_HAVE_DEBUG_BUGVERBOSE=y # # RCU Debugging # -# CONFIG_RCU_PERF_TEST is not set +# CONFIG_RCU_SCALE_TEST is not set # CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_RCU_REF_SCALE_TEST is not set CONFIG_RCU_CPU_STALL_TIMEOUT=21 # CONFIG_RCU_TRACE is not set # CONFIG_RCU_EQS_DEBUG is not set diff --git a/devices/asus-dumo/kernel/default.nix b/devices/asus-dumo/kernel/default.nix index 4a8d30df..3530054a 100644 --- a/devices/asus-dumo/kernel/default.nix +++ b/devices/asus-dumo/kernel/default.nix @@ -1,25 +1,41 @@ { mobile-nixos , fetchFromGitHub -, fetchgit +, fetchpatch }: +let + sdrPatch = rev: sha256: fetchpatch { + url = "https://github.com/samueldr/linux/commit/${rev}.patch"; + inherit sha256; + }; +in mobile-nixos.kernel-builder { - version = "5.8.0"; + version = "5.10.0"; configfile = ./config.aarch64; src = fetchFromGitHub { owner = "torvalds"; repo = "linux"; - rev = "v5.8"; - sha256 = "1jffq83jzcvkvpf6afhwkaj0zlb293vlndp1r66xzx41mbnnra0x"; + rev = "v5.10"; + sha256 = "1znxp4v7ykfz4fghzjzhd5mj9pj5qpk88n7k7nbkr5x2n0xqfj6k"; }; patches = [ ./0001-gru-Force-hs200-for-eMMC.patch - # Work around Regression from https://lore.kernel.org/patchwork/project/lkml/list/?series=443749 - ./0001-HACK-haphazard-revert-of-sbs-battery-improvements.patch + # usb: dwc3: Enable userspace role switch control + (sdrPatch "03aedba687e2aacb258aa0f92876c48f5bde30e7" "09701lbb06daix9cs22yf0nm8wvb7cmybh19s2lbr0b5fn9s73fh") + + # phy: rockchip-inno-usb2: rockchip: Update phy_sus + (sdrPatch "31585eed614a526324dec66f690fad3fc52dd419" "0hxmrf9y2rrv9nisy2f5cgikkz6fsi1m42fwl36g22x8z393gyjb") + + # WIP: usb: dwc3: Force output B_sessionvalid asserted + # (While WIP, it is because it is extremely gru-centric...) + (sdrPatch "9dc445c2e4370be3eb19ee49fd0f4319d91e8631" "1fc7dr5fybnxpfnmdil91d891qvqycpad6anrix7cbzjvflifas6") + + # arm64: dts: rockchip: Set type-c port to OTG and enable role switch for gru-scarlet + (sdrPatch "cbe4e04bf85d8d37058f89853a8ac0ad518a3e42" "139a9pkaya41nkar3mbcvfvg3xnxr3cr9ja9b320r2cn4qnrbjjc") ]; isModular = false; diff --git a/devices/asus-dumo/usb_role_switch_task.rb b/devices/asus-dumo/usb_role_switch_task.rb new file mode 100644 index 00000000..9a06d9d0 --- /dev/null +++ b/devices/asus-dumo/usb_role_switch_task.rb @@ -0,0 +1,10 @@ +class Tasks::UsbRoleSwitchTask < SingletonTask + def initialize() + Tasks::SetupGadgetMode.instance.add_dependency(:Task, self) + add_dependency(:Mount, "/sys") + end + + def run() + System.write("/sys/class/usb_role/fe800000.usb-role-switch/role", "device") + end +end diff --git a/examples/target-disk-mode/gui-task.rb b/examples/target-disk-mode/gui-task.rb index 164c66e9..6df8f5fc 100644 --- a/examples/target-disk-mode/gui-task.rb +++ b/examples/target-disk-mode/gui-task.rb @@ -24,6 +24,9 @@ class Tasks::RunGui < SingletonTask end def run() + # Free up the framebuffer / DRM context + Progress.kill() + System.run(LOADER, "/applets/tdm-gui.mrb") # This `raise` shouldn't really happen as `System#run` will raise