* [PATCH v4 0/2] ASoC: codecs: Add support for Fortemedia FM34NE DSP
@ 2026-11-04 12:32 Svyatoslav Ryhel
2026-11-04 12:32 ` [PATCH v4 1/2] ASoC: dt-bindings: Document " Svyatoslav Ryhel
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Svyatoslav Ryhel @ 2026-11-04 12:32 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Jaroslav Kysela, Takashi Iwai, Svyatoslav Ryhel
Cc: linux-sound, devicetree, linux-kernel
The Fortemedia FM34NE is digital sound processing chip used for
active noise suppression mainly on ASUS Transformers.
---
Changes in v2:
- remove ports from schema
- schema moved to dsp
- add return value check in fm34ne_dsp_set_config()
- dropped unused headers
Changes in v3:
- fix port reference
- request reset gpio asserted
- incorporate fm34ne_dsp_reset() into fm34ne_dsp_enable_hw()
- add reset asserting to fm34ne_dsp_disable_hw()
- moved bypass gpio deassertion before return in fm34ne_dsp_set_config()
Changes in v4:
- dropped guarded mutex lock in favour of traditional lock since function
has to use goto regardless.
---
Svyatoslav Ryhel (2):
ASoC: dt-bindings: Document FM34NE DSP
ASoC: codecs: Add support for Fortemedia FM34NE DSP
.../bindings/dsp/asus,tf201-dsp.yaml | 74 ++
sound/soc/codecs/Kconfig | 12 +
sound/soc/codecs/Makefile | 2 +
sound/soc/codecs/fm34ne-dsp.c | 388 +++++++
sound/soc/codecs/fm34ne-dsp.h | 1030 +++++++++++++++++
5 files changed, 1506 insertions(+)
create mode 100644 Documentation/devicetree/bindings/dsp/asus,tf201-dsp.yaml
create mode 100644 sound/soc/codecs/fm34ne-dsp.c
create mode 100644 sound/soc/codecs/fm34ne-dsp.h
--
2.53.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v4 1/2] ASoC: dt-bindings: Document FM34NE DSP
2026-11-04 12:32 [PATCH v4 0/2] ASoC: codecs: Add support for Fortemedia FM34NE DSP Svyatoslav Ryhel
@ 2026-11-04 12:32 ` Svyatoslav Ryhel
2026-11-06 15:37 ` Rob Herring (Arm)
2026-11-04 12:32 ` [PATCH v4 2/2] ASoC: codecs: Add support for Fortemedia " Svyatoslav Ryhel
2026-11-11 1:59 ` [PATCH v4 0/2] " Mark Brown
2 siblings, 1 reply; 5+ messages in thread
From: Svyatoslav Ryhel @ 2026-11-04 12:32 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Jaroslav Kysela, Takashi Iwai, Svyatoslav Ryhel
Cc: linux-sound, devicetree, linux-kernel
Document the FM34NE DSP based voice processor used in the ASUS Transformer
devices.
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
---
.../bindings/dsp/asus,tf201-dsp.yaml | 74 +++++++++++++++++++
1 file changed, 74 insertions(+)
create mode 100644 Documentation/devicetree/bindings/dsp/asus,tf201-dsp.yaml
diff --git a/Documentation/devicetree/bindings/dsp/asus,tf201-dsp.yaml b/Documentation/devicetree/bindings/dsp/asus,tf201-dsp.yaml
new file mode 100644
index 0000000000000..8b39089c99a9d
--- /dev/null
+++ b/Documentation/devicetree/bindings/dsp/asus,tf201-dsp.yaml
@@ -0,0 +1,74 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/dsp/asus,tf201-dsp.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Fortemedia FM34NE based voice processor
+
+description:
+ Fortemedia FM34NE is a hardware voice processor (DSP — Digital Signal
+ Processor) designed by Fortemedia. It specializes in real-time audio
+ processing, focusing on noise suppression and echo cancellation.
+
+maintainers:
+ - Svyatoslav Ryhel <clamor95@gmail.com>
+
+properties:
+ compatible:
+ enum:
+ - asus,sl101-dsp
+ - asus,tf101-dsp
+ - asus,tf201-dsp
+ - asus,tf300t-dsp
+ - asus,tf700t-dsp
+ - pegatron,chagall-dsp
+
+ reg:
+ maxItems: 1
+
+ clocks:
+ items:
+ - description: Master clock to the DSP
+
+ reset-gpios:
+ maxItems: 1
+
+ bypass-gpios:
+ maxItems: 1
+ description: Signal that switches DSP into programming mode.
+
+ vdd-supply: true
+
+ port:
+ $ref: /schemas/sound/audio-graph-port.yaml#
+ unevaluatedProperties: false
+
+required:
+ - compatible
+ - reg
+ - bypass-gpios
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ dsp@60 {
+ compatible = "asus,tf201-dsp";
+ reg = <0x60>;
+
+ clocks = <&fm34ne_clk>;
+
+ bypass-gpios = <&gpio 222 GPIO_ACTIVE_HIGH>;
+ reset-gpios = <&gpio 115 GPIO_ACTIVE_LOW>;
+
+ vdd-supply = <&vdd_1v8_dsp>;
+ };
+ };
+...
--
2.53.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v4 2/2] ASoC: codecs: Add support for Fortemedia FM34NE DSP
2026-11-04 12:32 [PATCH v4 0/2] ASoC: codecs: Add support for Fortemedia FM34NE DSP Svyatoslav Ryhel
2026-11-04 12:32 ` [PATCH v4 1/2] ASoC: dt-bindings: Document " Svyatoslav Ryhel
@ 2026-11-04 12:32 ` Svyatoslav Ryhel
2026-11-11 1:59 ` [PATCH v4 0/2] " Mark Brown
2 siblings, 0 replies; 5+ messages in thread
From: Svyatoslav Ryhel @ 2026-11-04 12:32 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Jaroslav Kysela, Takashi Iwai, Svyatoslav Ryhel
Cc: linux-sound, devicetree, linux-kernel
The Fortemedia FM34NE is a digital sound processing chip used for active
noise suppression mainly on ASUS Transformers.
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
---
sound/soc/codecs/Kconfig | 12 +
sound/soc/codecs/Makefile | 2 +
sound/soc/codecs/fm34ne-dsp.c | 388 +++++++++++++
sound/soc/codecs/fm34ne-dsp.h | 1030 +++++++++++++++++++++++++++++++++
4 files changed, 1432 insertions(+)
create mode 100644 sound/soc/codecs/fm34ne-dsp.c
create mode 100644 sound/soc/codecs/fm34ne-dsp.h
diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
index ba59dabeeccde..c40e84f499671 100644
--- a/sound/soc/codecs/Kconfig
+++ b/sound/soc/codecs/Kconfig
@@ -127,6 +127,7 @@ config SND_SOC_ALL_CODECS
imply SND_SOC_ES9356
imply SND_SOC_ES7134
imply SND_SOC_ES7241
+ imply SND_SOC_FM34NE_DSP
imply SND_SOC_FRAMER
imply SND_SOC_FS210X
imply SND_SOC_GTM601
@@ -1338,6 +1339,17 @@ config SND_SOC_ES9356
select REGMAP_SOUNDWIRE
select REGMAP_SOUNDWIRE_MBQ
+config SND_SOC_FM34NE_DSP
+ tristate "DSP FM34NE driver"
+ depends on I2C && GPIOLIB
+ help
+ Say Y here if you want to add support for Fortemedia FM34NE DSP
+ mainly used in ASUS T20/T30 Transformers for input noise
+ processing.
+
+ To compile this driver as a module, choose M here: the module
+ will be called snd-soc-fm34ne-dsp.
+
config SND_SOC_FRAMER
tristate "Framer codec"
depends on GENERIC_FRAMER
diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile
index 3826f9e4fce8a..2ddf08eae181e 100644
--- a/sound/soc/codecs/Makefile
+++ b/sound/soc/codecs/Makefile
@@ -142,6 +142,7 @@ snd-soc-es8375-y := es8375.o
snd-soc-es8389-y := es8389.o
snd-soc-es9039q2m-y := es9039q2m.o
snd-soc-es9356-y := es9356.o
+snd-soc-fm34ne-dsp-y := fm34ne-dsp.o
snd-soc-framer-y := framer-codec.o
snd-soc-fs-amp-lib-y := fs-amp-lib.o
snd-soc-fs210x-y := fs210x.o
@@ -590,6 +591,7 @@ obj-$(CONFIG_SND_SOC_ES8375) += snd-soc-es8375.o
obj-$(CONFIG_SND_SOC_ES8389) += snd-soc-es8389.o
obj-$(CONFIG_SND_SOC_ES9039Q2M) += snd-soc-es9039q2m.o
obj-$(CONFIG_SND_SOC_ES9356) += snd-soc-es9356.o
+obj-$(CONFIG_SND_SOC_FM34NE_DSP) += snd-soc-fm34ne-dsp.o
obj-$(CONFIG_SND_SOC_FRAMER) += snd-soc-framer.o
obj-$(CONFIG_SND_SOC_FS_AMP_LIB)+= snd-soc-fs-amp-lib.o
obj-$(CONFIG_SND_SOC_FS210X) += snd-soc-fs210x.o
diff --git a/sound/soc/codecs/fm34ne-dsp.c b/sound/soc/codecs/fm34ne-dsp.c
new file mode 100644
index 0000000000000..d506900eb8c43
--- /dev/null
+++ b/sound/soc/codecs/fm34ne-dsp.c
@@ -0,0 +1,388 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include <linux/clk.h>
+#include <linux/delay.h>
+#include <linux/gpio/consumer.h>
+#include <linux/i2c.h>
+#include <linux/module.h>
+#include <linux/mutex.h>
+#include <linux/property.h>
+#include <linux/regulator/consumer.h>
+
+#include <sound/core.h>
+#include <sound/soc.h>
+
+#include "fm34ne-dsp.h"
+
+struct fm34ne_dsp {
+ struct i2c_client *client;
+
+ struct gpio_desc *bypass_gpio;
+ struct gpio_desc *reset_gpio;
+
+ struct clk *dap_mclk;
+ struct regulator *vdd_supply;
+ struct mutex lock; /* prevent simultaneous parameter writing */
+
+ const struct fm34ne_dsp_info *info;
+};
+
+static int fm34ne_dsp_set_config(struct fm34ne_dsp *dsp, enum dsp_state state)
+{
+ struct device *dev = &dsp->client->dev;
+ int ret;
+
+ mutex_lock(&dsp->lock);
+
+ gpiod_set_value_cansleep(dsp->bypass_gpio, 1);
+ msleep(20);
+
+ switch (state) {
+ case FM34NE_NS_ENABLE:
+ ret = i2c_master_send(dsp->client, dsp->info->enable_parameter,
+ dsp->info->enable_parameter_length);
+ if (ret < 0) {
+ dev_err(dev, "Failed to set DSP enable %d\n", ret);
+ goto exit;
+ }
+
+ ret = i2c_master_send(dsp->client, dsp->info->enable_noise_suppression,
+ dsp->info->enable_ns_length);
+ if (ret < 0) {
+ dev_err(dev, "Failed to enable DSP noise suppression %d\n", ret);
+ goto exit;
+ }
+
+ break;
+
+ case FM34NE_NS_DISABLE:
+ ret = i2c_master_send(dsp->client, dsp->info->enable_parameter,
+ dsp->info->enable_parameter_length);
+ if (ret < 0) {
+ dev_err(dev, "Failed to set DSP enable with %d\n", ret);
+ goto exit;
+ }
+
+ ret = i2c_master_send(dsp->client, dsp->info->disable_noise_suppression,
+ dsp->info->disable_ns_length);
+ if (ret < 0) {
+ dev_err(dev, "Failed to disable DSP noise suppression with %d\n", ret);
+ goto exit;
+ }
+
+ break;
+
+ case FM34NE_BYPASS:
+ default:
+ ret = i2c_master_send(dsp->client, bypass_parameter, sizeof(bypass_parameter));
+ if (ret < 0) {
+ dev_err(dev, "Failed to set DSP bypass with %d\n", ret);
+ goto exit;
+ }
+
+ break;
+ }
+
+exit:
+ gpiod_set_value_cansleep(dsp->bypass_gpio, 0);
+ mutex_unlock(&dsp->lock);
+
+ if (ret < 0)
+ return ret;
+
+ return 0;
+}
+
+static int fm34ne_dsp_ext_state_control(struct snd_soc_dapm_widget *w,
+ struct snd_kcontrol *kcontrol, int event)
+{
+ struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
+ struct fm34ne_dsp *dsp = snd_soc_component_get_drvdata(component);
+
+ switch (event) {
+ case SND_SOC_DAPM_POST_PMU:
+ return fm34ne_dsp_set_config(dsp, FM34NE_BYPASS);
+
+ default:
+ WARN(1, "Unexpected event");
+ return -EINVAL;
+ }
+}
+
+static int fm34ne_dsp_int_state_control(struct snd_soc_dapm_widget *w,
+ struct snd_kcontrol *kcontrol, int event)
+{
+ struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
+ struct fm34ne_dsp *dsp = snd_soc_component_get_drvdata(component);
+
+ switch (event) {
+ case SND_SOC_DAPM_POST_PMU:
+ return fm34ne_dsp_set_config(dsp, FM34NE_NS_ENABLE);
+
+ case SND_SOC_DAPM_PRE_PMD:
+ return fm34ne_dsp_set_config(dsp, FM34NE_NS_DISABLE);
+
+ default:
+ WARN(1, "Unexpected event");
+ return -EINVAL;
+ }
+}
+
+static const struct snd_soc_dapm_widget fm34ne_dsp_dapm_widgets[] = {
+ SND_SOC_DAPM_INPUT("DSP DMIC"),
+ SND_SOC_DAPM_INPUT("DSP AMIC"),
+
+ SND_SOC_DAPM_OUT_DRV_E("DSP Processing Engine INT", SND_SOC_NOPM,
+ 0, 0, NULL, 0, fm34ne_dsp_int_state_control,
+ SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD),
+ SND_SOC_DAPM_OUT_DRV_E("DSP Processing Engine EXT", SND_SOC_NOPM,
+ 0, 0, NULL, 0, fm34ne_dsp_ext_state_control,
+ SND_SOC_DAPM_POST_PMU),
+
+ SND_SOC_DAPM_OUTPUT("DSP Digital Mic"),
+ SND_SOC_DAPM_OUTPUT("DSP Analog Mic"),
+};
+
+static const struct snd_soc_dapm_route fm34ne_dsp_dapm_routes[] = {
+ { "DSP Processing Engine INT", NULL, "DSP DMIC" },
+ { "DSP Processing Engine EXT", NULL, "DSP AMIC" },
+ { "DSP Digital Mic", NULL, "DSP Processing Engine INT" },
+ { "DSP Analog Mic", NULL, "DSP Processing Engine EXT" },
+};
+
+static int fm34ne_dsp_enable_hw(struct fm34ne_dsp *dsp)
+{
+ struct device *dev = &dsp->client->dev;
+ int ret;
+
+ ret = clk_prepare_enable(dsp->dap_mclk);
+ if (ret)
+ return dev_err_probe(dev, ret, "Failed to enable the DSP MCLK\n");
+
+ ret = regulator_enable(dsp->vdd_supply);
+ if (ret) {
+ clk_disable_unprepare(dsp->dap_mclk);
+ return dev_err_probe(dev, ret, "Failed to enable power supply\n");
+ }
+
+ /* Perform chip reset */
+ gpiod_set_value_cansleep(dsp->reset_gpio, 1);
+ msleep(20);
+ gpiod_set_value_cansleep(dsp->reset_gpio, 0);
+ msleep(100);
+
+ return 0;
+}
+
+static void fm34ne_dsp_disable_hw(struct fm34ne_dsp *dsp)
+{
+ gpiod_set_value_cansleep(dsp->bypass_gpio, 0);
+ gpiod_set_value_cansleep(dsp->reset_gpio, 1);
+
+ regulator_disable(dsp->vdd_supply);
+ clk_disable_unprepare(dsp->dap_mclk);
+}
+
+static int fm34ne_dsp_probe(struct snd_soc_component *component)
+{
+ struct fm34ne_dsp *dsp = snd_soc_component_get_drvdata(component);
+ int ret;
+
+ ret = fm34ne_dsp_enable_hw(dsp);
+ if (ret)
+ return ret;
+
+ gpiod_set_value_cansleep(dsp->bypass_gpio, 1);
+ msleep(20);
+
+ ret = i2c_smbus_write_byte(dsp->client, FM34NE_BUF_ADDR);
+ if (ret < 0) {
+ dev_err(&dsp->client->dev, "Initial write failed, aborting\n");
+ msleep(50);
+ goto exit;
+ }
+
+ ret = i2c_master_send(dsp->client, dsp->info->input_parameter,
+ dsp->info->input_parameter_length);
+ if (ret < 0)
+ goto exit;
+
+ msleep(100);
+ gpiod_set_value_cansleep(dsp->bypass_gpio, 0);
+
+ /* Init DSP to bypass mode */
+ ret = fm34ne_dsp_set_config(dsp, FM34NE_BYPASS);
+ if (ret < 0)
+ goto exit;
+
+ return 0;
+
+exit:
+ fm34ne_dsp_disable_hw(dsp);
+
+ return ret;
+}
+
+static void fm34ne_dsp_remove(struct snd_soc_component *component)
+{
+ struct fm34ne_dsp *dsp = snd_soc_component_get_drvdata(component);
+
+ fm34ne_dsp_disable_hw(dsp);
+}
+
+static const struct snd_soc_component_driver soc_component_fm34ne_dsp = {
+ .name = "fm34ne-dsp",
+ .probe = fm34ne_dsp_probe,
+ .remove = fm34ne_dsp_remove,
+ .dapm_widgets = fm34ne_dsp_dapm_widgets,
+ .num_dapm_widgets = ARRAY_SIZE(fm34ne_dsp_dapm_widgets),
+ .dapm_routes = fm34ne_dsp_dapm_routes,
+ .num_dapm_routes = ARRAY_SIZE(fm34ne_dsp_dapm_routes),
+ .idle_bias_on = 1,
+ .use_pmdown_time = 1,
+};
+
+static int fm34ne_probe(struct i2c_client *client)
+{
+ struct device *dev = &client->dev;
+ struct fm34ne_dsp *dsp;
+
+ dsp = devm_kzalloc(dev, sizeof(*dsp), GFP_KERNEL);
+ if (!dsp)
+ return -ENOMEM;
+
+ i2c_set_clientdata(client, dsp);
+ dsp->client = client;
+
+ dsp->info = device_get_match_data(dev);
+ if (!dsp->info)
+ return -ENODEV;
+
+ dev_info(&dsp->client->dev, "%s detected\n", dsp->info->model);
+
+ dsp->dap_mclk = devm_clk_get_optional(dev, NULL);
+ if (IS_ERR(dsp->dap_mclk))
+ return dev_err_probe(dev, PTR_ERR(dsp->dap_mclk),
+ "Can't retrieve DSP mclk\n");
+
+ dsp->vdd_supply = devm_regulator_get(dev, "vdd");
+ if (IS_ERR(dsp->vdd_supply))
+ return dev_err_probe(dev, PTR_ERR(dsp->vdd_supply),
+ "Failed to get vdd regulator\n");
+
+ dsp->reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH);
+ if (IS_ERR(dsp->reset_gpio))
+ return dev_err_probe(dev, PTR_ERR(dsp->reset_gpio),
+ "Failed to get reset GPIO\n");
+
+ /*
+ * Bypass gpio is used to set audio into bypass mode in relation to dsp
+ * to be able to program it. Once programming is done, bypass gpio has
+ * to be set to low to return dsp into audio processing.
+ */
+ dsp->bypass_gpio = devm_gpiod_get(dev, "bypass", GPIOD_OUT_LOW);
+ if (IS_ERR(dsp->bypass_gpio))
+ return dev_err_probe(dev, PTR_ERR(dsp->bypass_gpio),
+ "Failed to get bypass GPIO\n");
+
+ mutex_init(&dsp->lock);
+
+ return devm_snd_soc_register_component(dev, &soc_component_fm34ne_dsp,
+ NULL, 0);
+}
+
+static const struct fm34ne_dsp_info tf101_dsp_info = {
+ .model = "ASUS Eee Pad Transformer TF101",
+ .enable_parameter = enable_parameter,
+ .enable_parameter_length = sizeof(enable_parameter),
+ .input_parameter = tf101_input_parameter,
+ .input_parameter_length = sizeof(tf101_input_parameter),
+ .enable_noise_suppression = tf101_enable_ns,
+ .enable_ns_length = sizeof(tf101_enable_ns),
+ .disable_noise_suppression = tf101_disable_ns,
+ .disable_ns_length = sizeof(tf101_disable_ns),
+};
+
+static const struct fm34ne_dsp_info sl101_dsp_info = {
+ .model = "ASUS Eee Pad Slider SL101",
+ .enable_parameter = sl101_enable_parameter,
+ .enable_parameter_length = sizeof(sl101_enable_parameter),
+ .input_parameter = sl101_input_parameter,
+ .input_parameter_length = sizeof(sl101_input_parameter),
+ .enable_noise_suppression = tf101_enable_ns,
+ .enable_ns_length = sizeof(tf101_enable_ns),
+ .disable_noise_suppression = tf101_disable_ns,
+ .disable_ns_length = sizeof(tf101_disable_ns),
+};
+
+static const struct fm34ne_dsp_info tf201_dsp_info = {
+ .model = "ASUS Transformer Prime TF201",
+ .enable_parameter = enable_parameter,
+ .enable_parameter_length = sizeof(enable_parameter),
+ .input_parameter = tf201_input_parameter,
+ .input_parameter_length = sizeof(tf201_input_parameter),
+ .enable_noise_suppression = tf201_enable_ns,
+ .enable_ns_length = sizeof(tf201_enable_ns),
+ .disable_noise_suppression = tf101_disable_ns,
+ .disable_ns_length = sizeof(tf101_disable_ns),
+};
+
+static const struct fm34ne_dsp_info tf300t_dsp_info = {
+ .model = "ASUS Transformer PAD TF300T",
+ .enable_parameter = enable_parameter,
+ .enable_parameter_length = sizeof(enable_parameter),
+ .input_parameter = tf300t_input_parameter,
+ .input_parameter_length = sizeof(tf300t_input_parameter),
+ .enable_noise_suppression = tf201_enable_ns,
+ .enable_ns_length = sizeof(tf201_enable_ns),
+ .disable_noise_suppression = tf101_disable_ns,
+ .disable_ns_length = sizeof(tf101_disable_ns),
+};
+
+static const struct fm34ne_dsp_info tf700t_dsp_info = {
+ .model = "ASUS Transformer Infinity TF700T",
+ .enable_parameter = enable_parameter,
+ .enable_parameter_length = sizeof(enable_parameter),
+ .input_parameter = tf700t_input_parameter,
+ .input_parameter_length = sizeof(tf700t_input_parameter),
+ .enable_noise_suppression = tf700t_enable_ns,
+ .enable_ns_length = sizeof(tf700t_enable_ns),
+ .disable_noise_suppression = tf700t_disable_ns,
+ .disable_ns_length = sizeof(tf700t_disable_ns),
+};
+
+static const struct fm34ne_dsp_info chagall_dsp_info = {
+ .model = "Pegatron Chagall",
+ .enable_parameter = enable_parameter,
+ .enable_parameter_length = sizeof(enable_parameter),
+ .input_parameter = tf300t_input_parameter,
+ .input_parameter_length = sizeof(tf300t_input_parameter),
+ .enable_noise_suppression = tf201_enable_ns,
+ .enable_ns_length = sizeof(tf201_enable_ns),
+ .disable_noise_suppression = tf101_disable_ns,
+ .disable_ns_length = sizeof(tf101_disable_ns),
+};
+
+static const struct of_device_id fm34ne_dsp_match_ids[] = {
+ { .compatible = "asus,sl101-dsp", .data = &sl101_dsp_info },
+ { .compatible = "asus,tf101-dsp", .data = &tf101_dsp_info },
+ { .compatible = "asus,tf201-dsp", .data = &tf201_dsp_info },
+ { .compatible = "asus,tf300t-dsp", .data = &tf300t_dsp_info },
+ { .compatible = "asus,tf700t-dsp", .data = &tf700t_dsp_info },
+ { .compatible = "pegatron,chagall-dsp", .data = &chagall_dsp_info },
+ { }
+};
+MODULE_DEVICE_TABLE(of, fm34ne_dsp_match_ids);
+
+static struct i2c_driver fm34ne_dsp_driver = {
+ .driver = {
+ .name = "fm34ne-dsp",
+ .of_match_table = fm34ne_dsp_match_ids,
+ },
+ .probe = fm34ne_probe,
+};
+module_i2c_driver(fm34ne_dsp_driver);
+
+MODULE_AUTHOR("Svyatoslav Ryhel <clamor95@gmail.com>");
+MODULE_DESCRIPTION("Fortemedia FM34NE DSP driver");
+MODULE_LICENSE("GPL");
diff --git a/sound/soc/codecs/fm34ne-dsp.h b/sound/soc/codecs/fm34ne-dsp.h
new file mode 100644
index 0000000000000..f63cbbe754538
--- /dev/null
+++ b/sound/soc/codecs/fm34ne-dsp.h
@@ -0,0 +1,1030 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#ifndef __DSP_FM34NE_H__
+#define __DSP_FM34NE_H__
+
+#define FM34NE_BUF_ADDR 0xc0
+
+enum dsp_state {
+ FM34NE_BYPASS,
+ FM34NE_NS_ENABLE,
+ FM34NE_NS_DISABLE,
+ FM34NE_MAX,
+};
+
+struct fm34ne_dsp_info {
+ const char *model;
+
+ const u8 *enable_parameter;
+ unsigned int enable_parameter_length;
+
+ const u8 *input_parameter;
+ unsigned int input_parameter_length;
+
+ const u8 *enable_noise_suppression;
+ unsigned int enable_ns_length;
+
+ const u8 *disable_noise_suppression;
+ unsigned int disable_ns_length;
+};
+
+static const u8 bypass_parameter[] = {
+ FM34NE_BUF_ADDR,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x00, 0x00, 0x04
+};
+
+static const u8 enable_parameter[] = {
+ FM34NE_BUF_ADDR,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x00, 0x00, 0x00
+};
+
+static const u8 sl101_enable_parameter[] = {
+ FM34NE_BUF_ADDR,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x07, 0xf0, 0xf0,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x0c, 0x0e, 0x20,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x04, 0x23, 0x10,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x6e, 0x40, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x00, 0x00, 0x00
+};
+
+static const u8 tf101_enable_ns[] = {
+ FM34NE_BUF_ADDR,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x03, 0x00, 0x01,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x04, 0x23, 0x10
+};
+
+static const u8 tf201_enable_ns[] = {
+ FM34NE_BUF_ADDR,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x03, 0x00, 0x01,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x04, 0x23, 0x01
+};
+
+static const u8 tf700t_enable_ns[] = {
+ FM34NE_BUF_ADDR,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x03, 0x00, 0x01,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x04, 0x23, 0x01,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x0c, 0x08, 0x00
+};
+
+static const u8 tf101_disable_ns[] = {
+ FM34NE_BUF_ADDR,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x03, 0x00, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x04, 0x00, 0x10
+};
+
+static const u8 tf700t_disable_ns[] = {
+ FM34NE_BUF_ADDR,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x03, 0x00, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x04, 0x00, 0x10,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x0c, 0x15, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x6e, 0x7f, 0xff,
+ 0xfc, 0xf3, 0x3b, 0x23, 0xcf, 0x02, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0xd0, 0x02, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0xd5, 0x10, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x00, 0x00, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xfb, 0x00, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x84, 0x00, 0x03
+};
+
+static const u8 sl101_input_parameter[] = {
+ FM34NE_BUF_ADDR,
+ 0xfc, 0xf3, 0x68, 0x64, 0x04,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x00, 0x90, 0x00, 0x1a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x01, 0x82, 0x30, 0x50,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x02, 0x27, 0x90, 0x9f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x03, 0x19, 0x00, 0xa0,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x04, 0x1c, 0x5a, 0xaf,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x05, 0x90, 0x00, 0x1a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x06, 0x80, 0x00, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x07, 0x1c, 0x5a, 0xaf,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x08, 0x90, 0x00, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x09, 0x19, 0x01, 0x1f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x0a, 0x27, 0x90, 0x5f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x0b, 0x19, 0x01, 0x10,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x0c, 0x1c, 0x58, 0xef,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x0d, 0x90, 0x00, 0x1a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x0e, 0x80, 0x00, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x0f, 0x1c, 0x58, 0xef,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x10, 0x90, 0x00, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x11, 0x82, 0x2d, 0x20,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x12, 0x27, 0x98, 0x5f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x13, 0x19, 0x01, 0x80,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x14, 0x80, 0x50, 0x5a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x15, 0x90, 0x50, 0x3a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x16, 0x80, 0x50, 0x6f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x17, 0x90, 0x50, 0x4f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x18, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x19, 0x19, 0x00, 0x6f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x1a, 0x80, 0x00, 0xac,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x1b, 0x26, 0x7c, 0x0f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x1c, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x1d, 0x19, 0x1d, 0x82,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x1e, 0x19, 0x1c, 0xef,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x1f, 0x80, 0x53, 0x9a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x20, 0x93, 0xe2, 0xaa,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x21, 0x80, 0x4f, 0xba,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x22, 0x22, 0x7a, 0x0f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x23, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x24, 0x18, 0x2f, 0xd0,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x25, 0x94, 0x4f, 0xb6,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x26, 0x80, 0x4f, 0x6a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x27, 0x26, 0x7a, 0x0f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x28, 0x18, 0x2f, 0x80,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x29, 0x18, 0x2b, 0xcf,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x2a, 0x95, 0x62, 0x06,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x2b, 0x95, 0x61, 0x46,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x2c, 0x40, 0xfa, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x2d, 0x40, 0xe5, 0xb0,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x2e, 0x82, 0x30, 0x14,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x2f, 0x27, 0x00, 0x0f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x30, 0x22, 0x78, 0x00,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x31, 0x83, 0xfd, 0x44,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x32, 0x26, 0xe2, 0x0f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x33, 0x19, 0x03, 0x90,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x34, 0x93, 0xfd, 0x4a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x35, 0x83, 0xfd, 0x5a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x36, 0x23, 0xa2, 0x1f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x37, 0x93, 0xfd, 0x5a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x38, 0x00, 0x00, 0x00,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x39, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x3a, 0x18, 0x3f, 0x7f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x3b, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x3c, 0x19, 0x6c, 0xa4,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x3d, 0x19, 0x66, 0x7f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x3e, 0x80, 0x79, 0xca,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x3f, 0x82, 0x2d, 0x2f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x40, 0x27, 0x97, 0x9f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x41, 0x19, 0x04, 0x40,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x42, 0x94, 0x7b, 0xd6,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x43, 0x80, 0x00, 0x1a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x44, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x45, 0x18, 0x48, 0xdf,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x46, 0x38, 0x00, 0x87,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x47, 0x09, 0x00, 0x1b,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x48, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x49, 0x18, 0x2d, 0x1f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x4a, 0x18, 0x21, 0x5f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x4b, 0x88, 0x4f, 0x47,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x4c, 0x82, 0x2a, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x4d, 0x22, 0x62, 0x1f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x4e, 0x26, 0x62, 0x7f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x4f, 0x19, 0x05, 0x25,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x50, 0x3b, 0xff, 0xc7,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x51, 0x19, 0x05, 0x3f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x52, 0x0d, 0x01, 0xa6,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x53, 0x92, 0x2a, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x54, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x55, 0x18, 0x23, 0x2f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x56, 0x96, 0x2a, 0xa1,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x57, 0x96, 0x2a, 0xb0,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x58, 0x9a, 0x2a, 0xca,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x59, 0x9a, 0x2a, 0xd7,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x5a, 0x96, 0x2a, 0xe8,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x5b, 0x38, 0x00, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x5c, 0x83, 0xff, 0xaa,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x5d, 0x3b, 0x20, 0x02,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x5e, 0x36, 0x2b, 0x01,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x5f, 0x36, 0x2b, 0x60,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x60, 0x1c, 0x72, 0x2f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x61, 0x93, 0xff, 0x9a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x62, 0x93, 0xff, 0xaa,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x63, 0x86, 0x2a, 0xa1,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x64, 0x86, 0x2a, 0xb0,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x65, 0x8a, 0x2a, 0xca,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x66, 0x8a, 0x2a, 0xd7,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x67, 0x86, 0x2a, 0xe8,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x68, 0x0d, 0x08, 0x28,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x69, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x6a, 0x18, 0x24, 0x0f,
+ 0xfc, 0xf3, 0x68, 0x64, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa0, 0x90, 0x05,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb0, 0x50, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa1, 0x91, 0xcb,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb1, 0x50, 0x1a,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa2, 0x82, 0xf3,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb2, 0x02, 0xf5,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa3, 0x82, 0xb5,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb3, 0x50, 0x1f,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa4, 0x83, 0xf4,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb4, 0x50, 0x2a,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa5, 0x96, 0x66,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb5, 0x50, 0x3b,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa6, 0x84, 0x8c,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb6, 0x50, 0x3e,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa7, 0xc4, 0x8c,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb7, 0x50, 0x3e,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa8, 0x82, 0xcc,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb8, 0x50, 0x46,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa9, 0xc2, 0xcc,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb9, 0x50, 0x46,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xaa, 0xc2, 0x10,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xba, 0x50, 0x4a,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xab, 0x82, 0x10,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xbb, 0x50, 0x4a,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xac, 0x82, 0x31,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xbc, 0x50, 0x4b,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xad, 0xc2, 0x31,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xbd, 0x50, 0x4b,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xae, 0x82, 0x3f,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xbe, 0x50, 0x56,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xaf, 0xc2, 0x3f,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xbf, 0x50, 0x56,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xf8, 0x80, 0x05,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xc8, 0x00, 0x09,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xee, 0x00, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xf9, 0x08, 0x5f,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xfa, 0x24, 0x81,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x05, 0x00, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x01, 0x00, 0x01,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x07, 0xf0, 0xf0,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x09, 0x08, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x0d, 0x01, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x0c, 0x0e, 0x20,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xf2, 0x00, 0x44,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xf6, 0x00, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xc6, 0x00, 0x31,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xc7, 0x00, 0x50,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xd2, 0x82, 0x94,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x03, 0x00, 0x01,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x00, 0x00, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x04, 0x23, 0x10,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x2f, 0x01, 0x10,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x39, 0x00, 0x06,
+ 0xfc, 0xf3, 0x3b, 0x23, 0xcf, 0x01, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0xd0, 0x06, 0x20,
+ 0xfc, 0xf3, 0x3b, 0x23, 0xd5, 0x3c, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x6e, 0x40, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x33, 0x02, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0xb3, 0x00, 0x05,
+ 0xfc, 0xf3, 0x3b, 0x23, 0xb4, 0x00, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x70, 0x40, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xd2, 0x00, 0x32,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xfb, 0x00, 0x00
+};
+
+static const u8 tf101_input_parameter[] = {
+ FM34NE_BUF_ADDR,
+ 0xfc, 0xf3, 0x68, 0x64, 0x04,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x00, 0x90, 0x00, 0x1a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x01, 0x82, 0x30, 0x50,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x02, 0x27, 0x90, 0x9f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x03, 0x19, 0x00, 0xa0,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x04, 0x1c, 0x5a, 0xaf,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x05, 0x90, 0x00, 0x1a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x06, 0x80, 0x00, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x07, 0x1c, 0x5a, 0xaf,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x08, 0x90, 0x00, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x09, 0x19, 0x01, 0x1f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x0a, 0x27, 0x90, 0x5f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x0b, 0x19, 0x01, 0x10,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x0c, 0x1c, 0x58, 0xef,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x0d, 0x90, 0x00, 0x1a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x0e, 0x80, 0x00, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x0f, 0x1c, 0x58, 0xef,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x10, 0x90, 0x00, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x11, 0x82, 0x2d, 0x20,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x12, 0x27, 0x98, 0x5f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x13, 0x19, 0x01, 0x80,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x14, 0x80, 0x50, 0x5a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x15, 0x90, 0x50, 0x3a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x16, 0x80, 0x50, 0x6f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x17, 0x90, 0x50, 0x4f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x18, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x19, 0x19, 0x00, 0x6f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x1a, 0x80, 0x00, 0xac,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x1b, 0x26, 0x7c, 0x0f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x1c, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x1d, 0x19, 0x1d, 0x82,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x1e, 0x19, 0x1c, 0xef,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x1f, 0x80, 0x53, 0x9a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x20, 0x93, 0xe2, 0xaa,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x21, 0x80, 0x4f, 0xba,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x22, 0x22, 0x7a, 0x0f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x23, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x24, 0x18, 0x2f, 0xd0,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x25, 0x94, 0x4f, 0xb6,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x26, 0x80, 0x4f, 0x6a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x27, 0x26, 0x7a, 0x0f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x28, 0x18, 0x2f, 0x80,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x29, 0x18, 0x2b, 0xcf,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x2a, 0x95, 0x62, 0x06,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x2b, 0x95, 0x61, 0x46,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x2c, 0x40, 0xfa, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x2d, 0x40, 0xe5, 0xb0,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x2e, 0x82, 0x30, 0x14,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x2f, 0x27, 0x00, 0x0f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x30, 0x22, 0x78, 0x00,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x31, 0x83, 0xfd, 0x44,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x32, 0x26, 0xe2, 0x0f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x33, 0x19, 0x03, 0x90,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x34, 0x93, 0xfd, 0x4a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x35, 0x83, 0xfd, 0x5a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x36, 0x23, 0xa2, 0x1f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x37, 0x93, 0xfd, 0x5a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x38, 0x00, 0x00, 0x00,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x39, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x3a, 0x18, 0x3f, 0x7f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x3b, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x3c, 0x19, 0x6c, 0xa4,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x3d, 0x19, 0x66, 0x7f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x3e, 0x80, 0x79, 0xca,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x3f, 0x82, 0x2d, 0x2f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x40, 0x27, 0x97, 0x9f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x41, 0x19, 0x04, 0x40,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x42, 0x94, 0x7b, 0xd6,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x43, 0x80, 0x00, 0x1a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x44, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x45, 0x18, 0x48, 0xdf,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x46, 0x38, 0x00, 0x87,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x47, 0x09, 0x00, 0x1b,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x48, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x49, 0x18, 0x2d, 0x1f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x4a, 0x18, 0x21, 0x5f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x4b, 0x88, 0x4f, 0x47,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x4c, 0x82, 0x2a, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x4d, 0x22, 0x62, 0x1f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x4e, 0x26, 0x62, 0x7f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x4f, 0x19, 0x05, 0x25,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x50, 0x3b, 0xff, 0xc7,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x51, 0x19, 0x05, 0x3f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x52, 0x0d, 0x01, 0xa6,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x53, 0x92, 0x2a, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x54, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x55, 0x18, 0x23, 0x2f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x56, 0x96, 0x2a, 0xa1,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x57, 0x96, 0x2a, 0xb0,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x58, 0x9a, 0x2a, 0xca,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x59, 0x9a, 0x2a, 0xd7,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x5a, 0x96, 0x2a, 0xe8,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x5b, 0x38, 0x00, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x5c, 0x83, 0xff, 0xaa,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x5d, 0x3b, 0x20, 0x02,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x5e, 0x36, 0x2b, 0x01,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x5f, 0x36, 0x2b, 0x60,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x60, 0x1c, 0x72, 0x2f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x61, 0x93, 0xff, 0x9a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x62, 0x93, 0xff, 0xaa,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x63, 0x86, 0x2a, 0xa1,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x64, 0x86, 0x2a, 0xb0,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x65, 0x8a, 0x2a, 0xca,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x66, 0x8a, 0x2a, 0xd7,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x67, 0x86, 0x2a, 0xe8,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x68, 0x0d, 0x08, 0x28,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x69, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x6a, 0x18, 0x24, 0x0f,
+ 0xfc, 0xf3, 0x68, 0x64, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa0, 0x90, 0x05,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb0, 0x50, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa1, 0x91, 0xcb,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb1, 0x50, 0x1a,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa2, 0x82, 0xf3,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb2, 0x02, 0xf5,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa3, 0x82, 0xb5,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb3, 0x50, 0x1f,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa4, 0x83, 0xf4,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb4, 0x50, 0x2a,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa5, 0x96, 0x66,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb5, 0x50, 0x3b,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa6, 0x84, 0x8c,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb6, 0x50, 0x3e,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa7, 0xc4, 0x8c,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb7, 0x50, 0x3e,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa8, 0x82, 0xcc,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb8, 0x50, 0x46,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa9, 0xc2, 0xcc,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb9, 0x50, 0x46,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xaa, 0xc2, 0x10,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xba, 0x50, 0x4a,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xab, 0x82, 0x10,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xbb, 0x50, 0x4a,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xac, 0x82, 0x31,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xbc, 0x50, 0x4b,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xad, 0xc2, 0x31,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xbd, 0x50, 0x4b,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xae, 0x82, 0x3f,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xbe, 0x50, 0x56,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xaf, 0xc2, 0x3f,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xbf, 0x50, 0x56,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xf8, 0x80, 0x05,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xc8, 0x00, 0x09,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xee, 0x00, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xf9, 0x08, 0x5f,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xfa, 0x24, 0x81,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x05, 0x00, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x01, 0x00, 0x01,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x07, 0xf0, 0xf0,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x09, 0x08, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x0d, 0x01, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x0c, 0x0e, 0x20,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xf2, 0x00, 0x44,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xf6, 0x00, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xc6, 0x00, 0x31,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xc7, 0x00, 0x50,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xd2, 0x82, 0x94,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x03, 0x00, 0x01,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x00, 0x00, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x04, 0x23, 0x10,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x2f, 0x01, 0x10,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x39, 0x00, 0x06,
+ 0xfc, 0xf3, 0x3b, 0x23, 0xcf, 0x01, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0xd0, 0x06, 0x20,
+ 0xfc, 0xf3, 0x3b, 0x23, 0xd5, 0x3c, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x6e, 0x20, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x33, 0x02, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0xb3, 0x00, 0x0a,
+ 0xfc, 0xf3, 0x3b, 0x23, 0xb4, 0x00, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x70, 0x40, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xd2, 0x00, 0x32,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xfb, 0x00, 0x00
+};
+
+static const u8 tf201_input_parameter[] = {
+ FM34NE_BUF_ADDR,
+ 0xfc, 0xf3, 0x68, 0x64, 0x04,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x00, 0x90, 0x00, 0x1a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x01, 0x82, 0x30, 0x50,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x02, 0x27, 0x90, 0x9f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x03, 0x19, 0x00, 0xa0,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x04, 0x1c, 0x5a, 0xaf,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x05, 0x90, 0x00, 0x1a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x06, 0x80, 0x00, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x07, 0x1c, 0x5a, 0xaf,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x08, 0x90, 0x00, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x09, 0x19, 0x01, 0x1f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x0a, 0x27, 0x90, 0x5f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x0b, 0x19, 0x01, 0x10,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x0c, 0x1c, 0x58, 0xef,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x0d, 0x90, 0x00, 0x1a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x0e, 0x80, 0x00, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x0f, 0x1c, 0x58, 0xef,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x10, 0x90, 0x00, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x11, 0x82, 0x2d, 0x20,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x12, 0x27, 0x98, 0x5f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x13, 0x19, 0x01, 0x80,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x14, 0x80, 0x50, 0x5a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x15, 0x90, 0x50, 0x3a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x16, 0x80, 0x50, 0x6f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x17, 0x90, 0x50, 0x4f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x18, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x19, 0x19, 0x00, 0x6f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x1a, 0x80, 0x00, 0xac,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x1b, 0x26, 0x7c, 0x0f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x1c, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x1d, 0x19, 0x1d, 0x82,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x1e, 0x19, 0x1c, 0xef,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x1f, 0x80, 0x53, 0x9a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x20, 0x93, 0xe2, 0xaa,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x21, 0x80, 0x4f, 0xba,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x22, 0x22, 0x7a, 0x0f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x23, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x24, 0x18, 0x2f, 0xd0,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x25, 0x94, 0x4f, 0xb6,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x26, 0x80, 0x4f, 0x6a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x27, 0x26, 0x7a, 0x0f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x28, 0x18, 0x2f, 0x80,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x29, 0x18, 0x2b, 0xcf,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x2a, 0x95, 0x62, 0x06,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x2b, 0x95, 0x61, 0x46,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x2c, 0x40, 0xfa, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x2d, 0x40, 0xe5, 0xb0,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x2e, 0x82, 0x30, 0x14,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x2f, 0x27, 0x00, 0x0f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x30, 0x22, 0x78, 0x00,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x31, 0x83, 0xfd, 0x44,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x32, 0x26, 0xe2, 0x0f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x33, 0x19, 0x03, 0x90,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x34, 0x93, 0xfd, 0x4a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x35, 0x83, 0xfd, 0x5a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x36, 0x23, 0xa2, 0x1f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x37, 0x93, 0xfd, 0x5a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x38, 0x00, 0x00, 0x00,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x39, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x3a, 0x18, 0x3f, 0x7f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x3b, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x3c, 0x19, 0x6c, 0xa4,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x3d, 0x19, 0x66, 0x7f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x3e, 0x80, 0x79, 0xca,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x3f, 0x82, 0x2d, 0x2f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x40, 0x27, 0x97, 0x9f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x41, 0x19, 0x04, 0x40,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x42, 0x94, 0x7b, 0xd6,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x43, 0x80, 0x00, 0x1a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x44, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x45, 0x18, 0x48, 0xdf,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x46, 0x38, 0x00, 0x87,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x47, 0x09, 0x00, 0x1b,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x48, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x49, 0x18, 0x2d, 0x1f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x4a, 0x18, 0x21, 0x5f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x4b, 0x88, 0x4f, 0x47,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x4c, 0x82, 0x2a, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x4d, 0x22, 0x62, 0x1f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x4e, 0x26, 0x62, 0x7f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x4f, 0x19, 0x05, 0x25,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x50, 0x3b, 0xff, 0xc7,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x51, 0x19, 0x05, 0x3f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x52, 0x0d, 0x01, 0xa6,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x53, 0x92, 0x2a, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x54, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x55, 0x18, 0x23, 0x2f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x56, 0x96, 0x2a, 0xa1,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x57, 0x96, 0x2a, 0xb0,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x58, 0x9a, 0x2a, 0xca,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x59, 0x9a, 0x2a, 0xd7,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x5a, 0x96, 0x2a, 0xe8,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x5b, 0x38, 0x00, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x5c, 0x83, 0xff, 0xaa,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x5d, 0x3b, 0x20, 0x02,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x5e, 0x36, 0x2b, 0x01,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x5f, 0x36, 0x2b, 0x60,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x60, 0x1c, 0x72, 0x2f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x61, 0x93, 0xff, 0x9a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x62, 0x93, 0xff, 0xaa,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x63, 0x86, 0x2a, 0xa1,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x64, 0x86, 0x2a, 0xb0,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x65, 0x8a, 0x2a, 0xca,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x66, 0x8a, 0x2a, 0xd7,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x67, 0x86, 0x2a, 0xe8,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x68, 0x0d, 0x08, 0x28,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x69, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x6a, 0x18, 0x24, 0x0f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x6b, 0x83, 0xfc, 0xfa,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x6c, 0x23, 0x8a, 0xbf,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x6d, 0x82, 0x2d, 0x2f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x6e, 0x27, 0x97, 0xdf,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x6f, 0x23, 0xaa, 0x91,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x70, 0x93, 0xfc, 0xfa,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x71, 0x83, 0x80, 0x30,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x72, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x73, 0x18, 0x3e, 0x9f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x74, 0x80, 0x7a, 0x4a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x75, 0x19, 0x07, 0xe2,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x76, 0x23, 0x3e, 0x0f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x77, 0x0d, 0x00, 0xea,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x78, 0x80, 0x7b, 0xca,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x79, 0x38, 0x7e, 0x02,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x7a, 0x1c, 0x76, 0x9f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x7b, 0x90, 0x7b, 0xca,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x7c, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x7d, 0x19, 0x75, 0xcf,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x7e, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x7f, 0x19, 0x75, 0x9f,
+ 0xfc, 0xf3, 0x68, 0x64, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa0, 0x91, 0xcb,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb0, 0x50, 0x1a,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa1, 0x82, 0xf3,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb1, 0x02, 0xf5,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa2, 0x82, 0xb5,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb2, 0x50, 0x1f,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa3, 0x83, 0xf4,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb3, 0x50, 0x2a,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa4, 0x96, 0x66,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb4, 0x50, 0x3b,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa5, 0x82, 0xcc,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb5, 0x50, 0x46,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa6, 0xc2, 0xcc,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb6, 0x50, 0x46,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa7, 0xc2, 0x10,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb7, 0x50, 0x4a,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa8, 0x82, 0x10,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb8, 0x50, 0x4a,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa9, 0x82, 0x31,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb9, 0x50, 0x4b,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xaa, 0xc2, 0x31,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xba, 0x50, 0x4b,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xab, 0x82, 0x3f,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xbb, 0x50, 0x56,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xac, 0xc2, 0x3f,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xbc, 0x50, 0x56,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xad, 0x83, 0xe8,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xbd, 0x50, 0x6b,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xae, 0x97, 0x58,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xbe, 0x50, 0x74,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xf8, 0x80, 0x05,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xc8, 0x00, 0x29,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xee, 0x00, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xf9, 0x08, 0x5f,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xfa, 0x24, 0x81,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x05, 0x00, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x01, 0x00, 0x02,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x07, 0xf0, 0xf0,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x09, 0x08, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x0d, 0x01, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x0c, 0x08, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xf2, 0x00, 0x44,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xf6, 0x00, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xc6, 0x00, 0x06,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xc7, 0x00, 0x08,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xd2, 0x8a, 0x94,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x03, 0x00, 0x01,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x00, 0x00, 0x04,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x04, 0x23, 0x10,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x2f, 0x01, 0x10,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x39, 0x00, 0x06,
+ 0xfc, 0xf3, 0x3b, 0x23, 0xcf, 0x01, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0xd0, 0x06, 0x20,
+ 0xfc, 0xf3, 0x3b, 0x23, 0xd5, 0x3c, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x6e, 0x20, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x33, 0x02, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0xb3, 0x00, 0x0a,
+ 0xfc, 0xf3, 0x3b, 0x23, 0xb4, 0x00, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x70, 0x40, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xd2, 0x00, 0x32,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xfb, 0x00, 0x00
+};
+
+static const u8 tf300t_input_parameter[] = {
+ FM34NE_BUF_ADDR,
+ 0xfc, 0xf3, 0x68, 0x64, 0x04,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x00, 0x90, 0x00, 0x1a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x01, 0x82, 0x30, 0x50,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x02, 0x27, 0x90, 0x9f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x03, 0x19, 0x00, 0xa0,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x04, 0x1c, 0x5a, 0xaf,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x05, 0x90, 0x00, 0x1a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x06, 0x80, 0x00, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x07, 0x1c, 0x5a, 0xaf,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x08, 0x90, 0x00, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x09, 0x19, 0x01, 0x1f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x0a, 0x27, 0x90, 0x5f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x0b, 0x19, 0x01, 0x10,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x0c, 0x1c, 0x58, 0xef,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x0d, 0x90, 0x00, 0x1a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x0e, 0x80, 0x00, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x0f, 0x1c, 0x58, 0xef,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x10, 0x90, 0x00, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x11, 0x82, 0x2d, 0x20,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x12, 0x27, 0x98, 0x5f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x13, 0x19, 0x01, 0x80,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x14, 0x80, 0x50, 0x5a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x15, 0x90, 0x50, 0x3a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x16, 0x80, 0x50, 0x6f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x17, 0x90, 0x50, 0x4f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x18, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x19, 0x19, 0x00, 0x6f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x1a, 0x80, 0x00, 0xac,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x1b, 0x26, 0x7c, 0x0f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x1c, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x1d, 0x19, 0x1d, 0x82,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x1e, 0x19, 0x1c, 0xef,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x1f, 0x80, 0x53, 0x9a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x20, 0x93, 0xe2, 0xaa,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x21, 0x80, 0x4f, 0xba,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x22, 0x22, 0x7a, 0x0f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x23, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x24, 0x18, 0x2f, 0xd0,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x25, 0x94, 0x4f, 0xb6,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x26, 0x80, 0x4f, 0x6a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x27, 0x26, 0x7a, 0x0f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x28, 0x18, 0x2f, 0x80,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x29, 0x18, 0x2b, 0xcf,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x2a, 0x95, 0x62, 0x06,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x2b, 0x95, 0x61, 0x46,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x2c, 0x40, 0xfa, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x2d, 0x40, 0xe5, 0xb0,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x2e, 0x82, 0x30, 0x14,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x2f, 0x27, 0x00, 0x0f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x30, 0x22, 0x78, 0x00,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x31, 0x83, 0xfd, 0x44,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x32, 0x26, 0xe2, 0x0f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x33, 0x19, 0x03, 0x90,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x34, 0x93, 0xfd, 0x4a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x35, 0x83, 0xfd, 0x5a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x36, 0x23, 0xa2, 0x1f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x37, 0x93, 0xfd, 0x5a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x38, 0x00, 0x00, 0x00,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x39, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x3a, 0x18, 0x3f, 0x7f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x3b, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x3c, 0x19, 0x6c, 0xa4,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x3d, 0x19, 0x66, 0x7f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x3e, 0x80, 0x79, 0xca,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x3f, 0x82, 0x2d, 0x2f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x40, 0x27, 0x97, 0x9f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x41, 0x19, 0x04, 0x40,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x42, 0x94, 0x7b, 0xd6,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x43, 0x80, 0x00, 0x1a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x44, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x45, 0x18, 0x48, 0xdf,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x46, 0x38, 0x00, 0x87,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x47, 0x09, 0x00, 0x1b,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x48, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x49, 0x18, 0x2d, 0x1f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x4a, 0x18, 0x21, 0x5f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x4b, 0x88, 0x4f, 0x47,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x4c, 0x82, 0x2a, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x4d, 0x22, 0x62, 0x1f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x4e, 0x26, 0x62, 0x7f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x4f, 0x19, 0x05, 0x25,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x50, 0x3b, 0xff, 0xc7,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x51, 0x19, 0x05, 0x3f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x52, 0x0d, 0x01, 0xa6,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x53, 0x92, 0x2a, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x54, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x55, 0x18, 0x23, 0x2f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x56, 0x96, 0x2a, 0xa1,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x57, 0x96, 0x2a, 0xb0,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x58, 0x9a, 0x2a, 0xca,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x59, 0x9a, 0x2a, 0xd7,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x5a, 0x96, 0x2a, 0xe8,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x5b, 0x38, 0x00, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x5c, 0x83, 0xff, 0xaa,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x5d, 0x3b, 0x20, 0x02,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x5e, 0x36, 0x2b, 0x01,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x5f, 0x36, 0x2b, 0x60,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x60, 0x1c, 0x72, 0x2f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x61, 0x93, 0xff, 0x9a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x62, 0x93, 0xff, 0xaa,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x63, 0x86, 0x2a, 0xa1,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x64, 0x86, 0x2a, 0xb0,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x65, 0x8a, 0x2a, 0xca,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x66, 0x8a, 0x2a, 0xd7,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x67, 0x86, 0x2a, 0xe8,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x68, 0x0d, 0x08, 0x28,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x69, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x6a, 0x18, 0x24, 0x0f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x6b, 0x83, 0xfc, 0xfa,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x6c, 0x23, 0x8a, 0xbf,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x6d, 0x82, 0x2d, 0x2f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x6e, 0x27, 0x97, 0xdf,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x6f, 0x23, 0xaa, 0x91,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x70, 0x93, 0xfc, 0xfa,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x71, 0x83, 0x80, 0x30,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x72, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x73, 0x18, 0x3e, 0x9f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x74, 0x80, 0x7a, 0x4a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x75, 0x19, 0x07, 0xe2,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x76, 0x23, 0x3e, 0x0f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x77, 0x0d, 0x00, 0xea,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x78, 0x80, 0x7b, 0xca,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x79, 0x38, 0x7e, 0x02,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x7a, 0x1c, 0x76, 0x9f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x7b, 0x90, 0x7b, 0xca,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x7c, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x7d, 0x19, 0x75, 0xcf,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x7e, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x7f, 0x19, 0x75, 0x9f,
+ 0xfc, 0xf3, 0x68, 0x64, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa0, 0x91, 0xcb,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb0, 0x50, 0x1a,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa1, 0x82, 0xf3,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb1, 0x02, 0xf5,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa2, 0x82, 0xb5,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb2, 0x50, 0x1f,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa3, 0x83, 0xf4,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb3, 0x50, 0x2a,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa4, 0x96, 0x66,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb4, 0x50, 0x3b,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa5, 0x82, 0xcc,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb5, 0x50, 0x46,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa6, 0xc2, 0xcc,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb6, 0x50, 0x46,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa7, 0xc2, 0x10,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb7, 0x50, 0x4a,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa8, 0x82, 0x10,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb8, 0x50, 0x4a,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa9, 0x82, 0x31,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb9, 0x50, 0x4b,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xaa, 0xc2, 0x31,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xba, 0x50, 0x4b,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xab, 0x82, 0x3f,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xbb, 0x50, 0x56,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xac, 0xc2, 0x3f,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xbc, 0x50, 0x56,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xad, 0x83, 0xe8,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xbd, 0x50, 0x6b,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xae, 0x97, 0x58,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xbe, 0x50, 0x74,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xf8, 0x80, 0x05,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xc8, 0x00, 0x29,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xee, 0x00, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xf9, 0x08, 0x5f,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xfa, 0x24, 0x81,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x05, 0x00, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x01, 0x00, 0x02,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x07, 0xf0, 0xf0,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x09, 0x08, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x0d, 0x01, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x0c, 0x0e, 0x20,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xf2, 0x00, 0x44,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xf6, 0x00, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xc6, 0x00, 0x06,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xc7, 0x00, 0x08,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xd2, 0x8a, 0x94,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x03, 0x00, 0x01,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x00, 0x00, 0x04,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x04, 0x23, 0x10,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x2f, 0x01, 0x10,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x39, 0x00, 0x06,
+ 0xfc, 0xf3, 0x3b, 0x23, 0xcf, 0x01, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0xd0, 0x06, 0x20,
+ 0xfc, 0xf3, 0x3b, 0x23, 0xd5, 0x3c, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x6e, 0x20, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x33, 0x02, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0xb3, 0x00, 0x0a,
+ 0xfc, 0xf3, 0x3b, 0x23, 0xb4, 0x00, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x70, 0x40, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xd2, 0x00, 0x32,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xfb, 0x00, 0x00
+};
+
+static const u8 tf700t_input_parameter[] = {
+ FM34NE_BUF_ADDR,
+ 0xfc, 0xf3, 0x68, 0x64, 0x04,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x00, 0x90, 0x00, 0x1a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x01, 0x82, 0x30, 0x50,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x02, 0x27, 0x90, 0x9f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x03, 0x19, 0x00, 0xa0,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x04, 0x1c, 0x5a, 0xaf,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x05, 0x90, 0x00, 0x1a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x06, 0x80, 0x00, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x07, 0x1c, 0x5a, 0xaf,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x08, 0x90, 0x00, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x09, 0x19, 0x01, 0x1f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x0a, 0x27, 0x90, 0x5f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x0b, 0x19, 0x01, 0x10,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x0c, 0x1c, 0x58, 0xef,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x0d, 0x90, 0x00, 0x1a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x0e, 0x80, 0x00, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x0f, 0x1c, 0x58, 0xef,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x10, 0x90, 0x00, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x11, 0x82, 0x2d, 0x20,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x12, 0x27, 0x98, 0x5f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x13, 0x19, 0x01, 0x80,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x14, 0x80, 0x50, 0x5a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x15, 0x90, 0x50, 0x3a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x16, 0x80, 0x50, 0x6f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x17, 0x90, 0x50, 0x4f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x18, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x19, 0x19, 0x00, 0x6f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x1a, 0x80, 0x00, 0xac,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x1b, 0x26, 0x7c, 0x0f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x1c, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x1d, 0x19, 0x1d, 0x82,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x1e, 0x19, 0x1c, 0xef,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x1f, 0x80, 0x53, 0x9a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x20, 0x93, 0xe2, 0xaa,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x21, 0x80, 0x4f, 0xba,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x22, 0x22, 0x7a, 0x0f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x23, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x24, 0x18, 0x2f, 0xd0,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x25, 0x94, 0x4f, 0xb6,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x26, 0x80, 0x4f, 0x6a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x27, 0x26, 0x7a, 0x0f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x28, 0x18, 0x2f, 0x80,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x29, 0x18, 0x2b, 0xcf,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x2a, 0x95, 0x62, 0x06,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x2b, 0x95, 0x61, 0x46,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x2c, 0x40, 0xfa, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x2d, 0x40, 0xe5, 0xb0,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x2e, 0x82, 0x30, 0x14,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x2f, 0x27, 0x00, 0x0f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x30, 0x22, 0x78, 0x00,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x31, 0x83, 0xfd, 0x44,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x32, 0x26, 0xe2, 0x0f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x33, 0x19, 0x03, 0x90,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x34, 0x93, 0xfd, 0x4a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x35, 0x83, 0xfd, 0x5a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x36, 0x23, 0xa2, 0x1f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x37, 0x93, 0xfd, 0x5a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x38, 0x00, 0x00, 0x00,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x39, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x3a, 0x18, 0x3f, 0x7f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x3b, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x3c, 0x19, 0x6c, 0xa4,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x3d, 0x19, 0x66, 0x7f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x3e, 0x80, 0x79, 0xca,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x3f, 0x82, 0x2d, 0x2f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x40, 0x27, 0x97, 0x9f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x41, 0x19, 0x04, 0x40,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x42, 0x94, 0x7b, 0xd6,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x43, 0x80, 0x00, 0x1a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x44, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x45, 0x18, 0x48, 0xdf,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x46, 0x38, 0x00, 0x87,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x47, 0x09, 0x00, 0x1b,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x48, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x49, 0x18, 0x2d, 0x1f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x4a, 0x18, 0x21, 0x5f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x4b, 0x88, 0x4f, 0x47,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x4c, 0x82, 0x2a, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x4d, 0x22, 0x62, 0x1f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x4e, 0x26, 0x62, 0x7f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x4f, 0x19, 0x05, 0x25,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x50, 0x3b, 0xff, 0xc7,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x51, 0x19, 0x05, 0x3f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x52, 0x0d, 0x01, 0xa6,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x53, 0x92, 0x2a, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x54, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x55, 0x18, 0x23, 0x2f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x56, 0x96, 0x2a, 0xa1,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x57, 0x96, 0x2a, 0xb0,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x58, 0x9a, 0x2a, 0xca,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x59, 0x9a, 0x2a, 0xd7,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x5a, 0x96, 0x2a, 0xe8,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x5b, 0x38, 0x00, 0x0a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x5c, 0x83, 0xff, 0xaa,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x5d, 0x3b, 0x20, 0x02,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x5e, 0x36, 0x2b, 0x01,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x5f, 0x36, 0x2b, 0x60,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x60, 0x1c, 0x72, 0x2f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x61, 0x93, 0xff, 0x9a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x62, 0x93, 0xff, 0xaa,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x63, 0x86, 0x2a, 0xa1,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x64, 0x86, 0x2a, 0xb0,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x65, 0x8a, 0x2a, 0xca,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x66, 0x8a, 0x2a, 0xd7,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x67, 0x86, 0x2a, 0xe8,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x68, 0x0d, 0x08, 0x28,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x69, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x6a, 0x18, 0x24, 0x0f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x6b, 0x83, 0xfc, 0xfa,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x6c, 0x23, 0x8a, 0xbf,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x6d, 0x82, 0x2d, 0x2f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x6e, 0x27, 0x97, 0xdf,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x6f, 0x23, 0xaa, 0x91,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x70, 0x93, 0xfc, 0xfa,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x71, 0x83, 0x80, 0x30,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x72, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x73, 0x18, 0x3e, 0x9f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x74, 0x80, 0x7a, 0x4a,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x75, 0x19, 0x07, 0xe2,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x76, 0x23, 0x3e, 0x0f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x77, 0x0d, 0x00, 0xea,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x78, 0x80, 0x7b, 0xca,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x79, 0x38, 0x7e, 0x02,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x7a, 0x1c, 0x76, 0x9f,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x7b, 0x90, 0x7b, 0xca,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x7c, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x7d, 0x19, 0x75, 0xcf,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x7e, 0x34, 0x00, 0x0e,
+ 0xfc, 0xf3, 0x0d, 0x10, 0x7f, 0x19, 0x75, 0x9f,
+ 0xfc, 0xf3, 0x68, 0x64, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa0, 0x91, 0xcb,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb0, 0x50, 0x1a,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa1, 0x82, 0xf3,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb1, 0x02, 0xf5,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa2, 0x82, 0xb5,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb2, 0x50, 0x1f,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa3, 0x83, 0xf4,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb3, 0x50, 0x2a,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa4, 0x96, 0x66,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb4, 0x50, 0x3b,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa5, 0x82, 0xcc,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb5, 0x50, 0x46,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa6, 0xc2, 0xcc,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb6, 0x50, 0x46,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa7, 0xc2, 0x10,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb7, 0x50, 0x4a,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa8, 0x82, 0x10,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb8, 0x50, 0x4a,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xa9, 0x82, 0x31,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xb9, 0x50, 0x4b,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xaa, 0xc2, 0x31,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xba, 0x50, 0x4b,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xab, 0x82, 0x3f,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xbb, 0x50, 0x56,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xac, 0xc2, 0x3f,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xbc, 0x50, 0x56,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xad, 0x83, 0xe8,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xbd, 0x50, 0x6b,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xae, 0x97, 0x58,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xbe, 0x50, 0x74,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xf8, 0x80, 0x05,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xc8, 0x00, 0x29,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xee, 0x00, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xf9, 0x08, 0x5f,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xfa, 0x24, 0x81,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x05, 0x00, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x01, 0x00, 0x02,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x07, 0xf0, 0xf0,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x09, 0x08, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x0d, 0x01, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x0c, 0x0e, 0x20,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xf2, 0x00, 0x44,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xf6, 0x00, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xc6, 0x00, 0x06,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xc7, 0x00, 0x08,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xd2, 0x8a, 0x94,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x03, 0x00, 0x01,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x00, 0x00, 0x04,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x04, 0x23, 0x10,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x2f, 0x01, 0x10,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x39, 0x00, 0x06,
+ 0xfc, 0xf3, 0x3b, 0x23, 0xcf, 0x01, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0xd0, 0x06, 0x20,
+ 0xfc, 0xf3, 0x3b, 0x23, 0xd5, 0x3c, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x6e, 0x20, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x33, 0x02, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0xb3, 0x00, 0x0a,
+ 0xfc, 0xf3, 0x3b, 0x23, 0xb4, 0x00, 0x02,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x70, 0x40, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x91, 0x40, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x92, 0x40, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x93, 0x40, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x94, 0x40, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x23, 0x95, 0x40, 0x00,
+ 0xfc, 0xf3, 0x3b, 0x3f, 0xd2, 0x00, 0x32,
+ 0xfc, 0xf3, 0x3b, 0x22, 0xfb, 0x00, 0x00
+};
+#endif
--
2.53.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v4 1/2] ASoC: dt-bindings: Document FM34NE DSP
2026-11-04 12:32 ` [PATCH v4 1/2] ASoC: dt-bindings: Document " Svyatoslav Ryhel
@ 2026-11-06 15:37 ` Rob Herring (Arm)
0 siblings, 0 replies; 5+ messages in thread
From: Rob Herring (Arm) @ 2026-11-06 15:37 UTC (permalink / raw)
To: Svyatoslav Ryhel
Cc: Krzysztof Kozlowski, Liam Girdwood, Takashi Iwai, Conor Dooley,
devicetree, Jaroslav Kysela, Mark Brown, linux-sound,
linux-kernel
On Wed, 04 Nov 2026 14:32:46 +0200, Svyatoslav Ryhel wrote:
> Document the FM34NE DSP based voice processor used in the ASUS Transformer
> devices.
>
> Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
> ---
> .../bindings/dsp/asus,tf201-dsp.yaml | 74 +++++++++++++++++++
> 1 file changed, 74 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/dsp/asus,tf201-dsp.yaml
>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v4 0/2] ASoC: codecs: Add support for Fortemedia FM34NE DSP
2026-11-04 12:32 [PATCH v4 0/2] ASoC: codecs: Add support for Fortemedia FM34NE DSP Svyatoslav Ryhel
2026-11-04 12:32 ` [PATCH v4 1/2] ASoC: dt-bindings: Document " Svyatoslav Ryhel
2026-11-04 12:32 ` [PATCH v4 2/2] ASoC: codecs: Add support for Fortemedia " Svyatoslav Ryhel
@ 2026-11-11 1:59 ` Mark Brown
2 siblings, 0 replies; 5+ messages in thread
From: Mark Brown @ 2026-11-11 1:59 UTC (permalink / raw)
To: Liam Girdwood, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Jaroslav Kysela, Takashi Iwai, Svyatoslav Ryhel
Cc: linux-sound, devicetree, linux-kernel
On Wed, 04 Nov 2026 14:32:45 +0200, Svyatoslav Ryhel wrote:
> ASoC: codecs: Add support for Fortemedia FM34NE DSP
>
> The Fortemedia FM34NE is digital sound processing chip used for
> active noise suppression mainly on ASUS Transformers.
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-7.5
Thanks!
[1/2] ASoC: dt-bindings: Document FM34NE DSP
https://git.kernel.org/broonie/sound/c/72c167d8e3a7
[2/2] ASoC: codecs: Add support for Fortemedia FM34NE DSP
https://git.kernel.org/broonie/sound/c/2488b6a08b88
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-11-11 17:27 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-11-04 12:32 [PATCH v4 0/2] ASoC: codecs: Add support for Fortemedia FM34NE DSP Svyatoslav Ryhel
2026-11-04 12:32 ` [PATCH v4 1/2] ASoC: dt-bindings: Document " Svyatoslav Ryhel
2026-11-06 15:37 ` Rob Herring (Arm)
2026-11-04 12:32 ` [PATCH v4 2/2] ASoC: codecs: Add support for Fortemedia " Svyatoslav Ryhel
2026-11-11 1:59 ` [PATCH v4 0/2] " Mark Brown
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®