Msm8953 for arm64 инструкция на русском языке

Конфигурация PINCTRL

Конфигурация платформы Qualcomm Группа I2S, как правило, соответствует четыре или шести GPIO,

Quin MI2S соответствует gpio88 gpio91 gpio92 gpio93

Соответствующий файл кода: ядро ​​/ MSM-3.18 / Arch / ARM / BOOT / BOOT / DTS / QCOM / MSM8953-PINCTRL.DTSI

		pri-tlmm-lines {
			pri_tlmm_lines_act: pri_tlmm_lines_act {
				mux {
					pins = "gpio91", "gpio88", "gpio93";
					function = "pri_mi2s";
				};

				config {
					pins = "gpio91", "gpio88", "gpio93";
					drive-strength = <8>;
				};
			};

			pri_tlmm_lines_sus: pri_tlmm_lines_sus {
				mux {
					pins = "gpio91", "gpio88", "gpio93";
					function = "pri_mi2s";
				};

				config {
					pins = "gpio91", "gpio88", "gpio93";
					drive-strength = <2>;
					bias-pull-down;
				};
			};
		};

Настройка PINCTRL также необходимо подключить к узлу звуковой карты.

Изменение файла: ядро ​​/ MSM-3.18 / ARCH / ARM / BOOT / BOOT / DTS / QCOM / MSM8953-AUDIO.DTSI

	qcom,msm-gpios =
		"pri_i2s",
		"quin_i2s";

	qcom,pinctrl-names =
		"all_off",
		"pri_i2s_act",
		"quin_act",
		"quin_pri_i2s_act";

	pinctrl-names =
		"all_off",
		"pri_i2s_act",
		"quin_act",
		"quin_pri_i2s_act";

	pinctrl-0 = <&cdc_pdm_lines_sus &cdc_pdm_lines_2_sus &pri_tlmm_lines_sus &pri_tlmm_ws_sus>;
	pinctrl-1 = <&cdc_pdm_lines_act &cdc_pdm_lines_2_act &pri_tlmm_lines_sus &pri_tlmm_ws_sus>;
	pinctrl-2 = <&cdc_pdm_lines_sus &cdc_pdm_lines_2_sus &pri_tlmm_lines_act &pri_tlmm_ws_act>;
	pinctrl-3 = <&cdc_pdm_lines_act &cdc_pdm_lines_2_act &pri_tlmm_lines_act &pri_tlmm_ws_act>;

2. Зарегистрируйте конфигурацию

Узнайте на документе Qualcomm MSM8953 внешний обзор интерфейса MI2S для настройки следующих регистров MI2S для настройки следующих регистров.

Итак, как вы настраиваете эти регистры в вашем коде? Это должно быть изменено в следующие файлы.

Изменить файл:

kernel/msm-3.18/sound/soc/msm/msm8952.c

kernel/msm-3.18/sound/soc/codecs/msm8x16-wcd.h

kernel/msm-3.18/arch/arm/boot/dts/qcom/msm-audio.dtsi

Там, где настроено ядро ​​/ MSM-3.18 / Arch / Arm / Boot / DTS / QCOM / MSM-Audio.dtsi Конфигурация:

	int_codec: sound {
		compatible = "qcom,msm8952-audio-codec";

//added by kuangjincheng @20171221
		reg =   <0xc051000 0x4>,//LPASS_CSR_GP_IO_MUX_MIC_CTL
				<0xc051004 0x4>,//LPASS_CSR_GP_IO_MUX_SPKR_CTL
				<0xc055000 0x4>,//LPASS_CSR_GP_LPAIF_PRI_PCM_PRI_MODE_MUXSEL
				<0xc052000 0x4>,//LPASS_ CSR_GP_IO_MUX_QUI_CTL
				<0xc054000 0x4>,//LPASS_CSR_GP_IO_MUX_MIC_EXT_CLK_CTL
				<0xc056000 0x4>,// LPASS_CSR_GP_LPAIF_QUI_PCM_SEC_MODE_MUXSEL
				<0xc054008 0x4>;//LPASS_CSR_GP_IO_MUX_QUI_EXT_CLK_CTL
		reg-names = "csr_gp_io_mux_mic_ctl",
					"csr_gp_io_mux_spkr_ctl",
					"csr_gp_io_lpaif_pri_pcm_pri_mode_muxsel",
					"csr_gp_io_mux_quin_ctl",
					"csr_gp_io_mux_mic_ext_clk_ctl",
					"csr_gp_io_lpaif_qui_pcm_sec_mode_muxsel",
					"csr_gp_io_mux_quin_ext_clk_ctl";
    };

В структуре устройства в заголовочном файле ядра / MSM-3.18 / SOUND / SOC / CODECS / MSM8X16-WCD.H добавляется элемент указателя, а адрес регистра сохраняется.

struct msm8916_asoc_mach_data {
	int codec_type;
	int ext_pa;
	int us_euro_gpio;
	int spk_ext_pa_gpio;
	int mclk_freq;
	int lb_mode;
	int afe_clk_ver;
	u8 micbias1_cap_mode;
	u8 micbias2_cap_mode;
	atomic_t mclk_rsc_ref;
	atomic_t mclk_enabled;
	atomic_t wsa_mclk_rsc_ref;
	struct mutex cdc_mclk_mutex;
	struct mutex wsa_mclk_mutex;
	struct delayed_work disable_mclk_work;
	struct afe_digital_clk_cfg digital_cdc_clk;
	struct afe_clk_set digital_cdc_core_clk;
	void __iomem *vaddr_gpio_mux_spkr_ctl;
	void __iomem *vaddr_gpio_mux_mic_ctl;
	void __iomem *vaddr_gpio_mux_quin_ctl;
	void __iomem *vaddr_gpio_mux_pcm_ctl;
//added by kuangjincheng @20171221 QUAT_MI2S_SLAVE_MODE config
	void __iomem *vaddr_gpio_mux_mic_ext_clk_ctl;
//added by kuangjincheng @20180521 QUIN_MI2S_SLAVE_MODE config
	void __iomem *vaddr_gpio_quin_sec_muxsel;
	void __iomem *vaddr_gpio_mux_quin_ext_clk_ctl;
	struct on_demand_supply wsa_switch_supply;
};

В функции MSM8952_ASOC_Machine_probe из ядра / MSM / MSM8952.C соответствующий адрес регистра анализируется и сохранен на элементах, соответствующих структуре устройства.

//added by kuangjincheng @20180521 QUIN_MI2S_SLAVE_MODE config
	muxsel = platform_get_resource_byname(pdev, IORESOURCE_MEM, "csr_gp_io_lpaif_qui_pcm_sec_mode_muxsel");
	if (!muxsel) {
		dev_dbg(&pdev->dev, "MUX addr invalid for MI2Sn");
		goto parse_mclk_freq;
	}
	pdata->vaddr_gpio_quin_sec_muxsel = ioremap(muxsel->start, resource_size(muxsel));
	if (pdata->vaddr_gpio_quin_sec_muxsel == NULL) {
		pr_err("%s ==4ioremap failure for muxsel virt addrn", __func__);
		ret = -ENOMEM;
		goto err;
	}

	muxsel = platform_get_resource_byname(pdev, IORESOURCE_MEM, "csr_gp_io_mux_quin_ext_clk_ctl");
	if (!muxsel) {
		dev_dbg(&pdev->dev, "MUX addr invalid for MI2Sn");
		goto parse_mclk_freq;
	}
	pdata->vaddr_gpio_mux_quin_ext_clk_ctl = ioremap(muxsel->start, resource_size(muxsel));
	if (pdata->vaddr_gpio_mux_quin_ext_clk_ctl == NULL) {
		pr_err("%s ==5ioremap failure for muxsel virt addrn", __func__);
		ret = -ENOMEM;
		goto err;
	}

Конфигурация регистров имеет последний шаг — выполнить конфигурацию регистров в I2S, соответствующих MSM_QUIN_MI2S_SND_STARTUP.

static int msm_quin_mi2s_snd_startup(struct snd_pcm_substream *substream)
{
	struct snd_soc_pcm_runtime *rtd = substream->private_data;
	struct snd_soc_card *card = rtd->card;
	struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
	struct msm8916_asoc_mach_data *pdata =
			snd_soc_card_get_drvdata(card);
	int ret = 0, val = 0;

	pr_err("honeywell_msm8952>>>%s: substream = %s  stream = %dn", __func__, substream->name, substream->stream);
#ifdef QUIN_MI2S_USE_SLAVE_MODE
//0xc051000 LPASS_CSR_GP_IO_MUX_MIC_CTL
	if(pdata->vaddr_gpio_mux_mic_ctl){
		val = ioread32(pdata->vaddr_gpio_mux_mic_ctl);
		val = 0x00000000;
		iowrite32(val, pdata->vaddr_gpio_mux_mic_ctl);
	}
	pr_err("msm8952>>>%s:  iowrite32 vaddr_gpio_mux_mic_ctln", __func__);
//0xc056000 LPASS_CSR_GP_LPAIF_QUI_PCM_SEC_MODE_MUXSEL
	if(pdata->vaddr_gpio_quin_sec_muxsel){
		val = ioread32(pdata->vaddr_gpio_quin_sec_muxsel);
		val = 0x00000000;
		iowrite32(val, pdata->vaddr_gpio_quin_sec_muxsel);
	}
	pr_err("msm8952>>>%s:  iowrite32 vaddr_gpio_quin_sec_muxseln", __func__);
//0xc052000 LPASS_ CSR_GP_IO_MUX_QUI_CTL
	if(pdata->vaddr_gpio_mux_quin_ctl){
		val = ioread32(pdata->vaddr_gpio_mux_quin_ctl);
		val = 0x00000001;
		iowrite32(val, pdata->vaddr_gpio_mux_quin_ctl);
	}
	pr_err("msm8952>>>%s:  iowrite32 vaddr_gpio_mux_quin_ctln", __func__);
//0xc054008 LPASS_CSR_GP_IO_MUX_QUI_EXT_CLK_CTL
	if(pdata->vaddr_gpio_mux_quin_ext_clk_ctl){
		val = ioread32(pdata->vaddr_gpio_mux_quin_ext_clk_ctl);
		val = 0x00000001;
		iowrite32(val, pdata->vaddr_gpio_mux_quin_ext_clk_ctl);
	}
	pr_err("msm8952>>>%s:  iowrite32 vaddr_gpio_mux_quin_ext_clk_ctln", __func__);
#else
	if (pdata->vaddr_gpio_mux_quin_ctl) {
		val = ioread32(pdata->vaddr_gpio_mux_quin_ctl);
		val = val | 0x00000001;
		iowrite32(val, pdata->vaddr_gpio_mux_quin_ctl);
	} else {
		return -EINVAL;
	}
#endif
	pr_err("honeywell_msm8952>>>%s: ---001n", __func__);

#ifdef QUIN_MI2S_USE_SLAVE_MODE
	ret = msm_quin_i2s_sclk_ctl(substream, true);
#else
	ret = msm_mi2s_sclk_ctl(substream, true);
#endif
	if (ret < 0) {
		pr_err("honeywell_msm8952>>>%s: failed to enable sclkn", __func__);
		return ret;
	}
	pr_err("honeywell_msm8952>>>%s: ---002n", __func__);

	ret = msm_gpioset_activate(CLIENT_WCD_INT, "quin_i2s");
	if (ret < 0) {
		pr_err("honeywell_msm8952>>>%s: failed to enable codec gpiosn", __func__);
		goto err;
	}
	pr_err("honeywell_msm8952>>>%s: ---003n", __func__);

	if (atomic_inc_return(&quin_mi2s_clk_ref) == 1) {
#ifdef QUIN_MI2S_USE_SLAVE_MODE
		ret = snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_CBM_CFM);
#else
		ret = snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_CBS_CFS);
#endif
		if (ret < 0)
			pr_err("honeywell_msm8952>>>%s: set fmt cpu dai failedn", __func__);
	}
	pr_err("honeywell_msm8952>>>%s: ---004n", __func__);

	return ret;
err:
#ifdef QUIN_MI2S_USE_SLAVE_MODE
	ret = msm_quin_i2s_sclk_ctl(substream, false);
#else
	ret = msm_mi2s_sclk_ctl(substream, false);
#endif
	if (ret < 0)
		pr_err("failed to disable sclkn");
	return ret;
}

static void msm_quin_mi2s_snd_shutdown(struct snd_pcm_substream *substream)
{
	int ret;
	pr_err("honeywell_msm8952>>>%s: substream = %s  stream = %dn", __func__, substream->name, substream->stream);
#ifdef QUIN_MI2S_USE_SLAVE_MODE
	ret = msm_quin_i2s_sclk_ctl(substream, false);
#else
	ret = msm_mi2s_sclk_ctl(substream, false);
#endif
	if (ret < 0)
		pr_err("honeywell_msm8952>>>%s: clock disable failedn", __func__);
	if (atomic_read(&quin_mi2s_clk_ref) > 0)
		atomic_dec(&quin_mi2s_clk_ref);
	ret = msm_gpioset_suspend(CLIENT_WCD_INT, "quin_i2s");
	if (ret < 0) {
		pr_err("honeywell_msm8952>>>%s: gpio set cannot be de-activated %sd", __func__, "quin_i2s");
		return;
	}
}

3. Конфигурация часов

(1) Кто дает часы?

Часы в конфигурации часов обеспечиваются MSM8953 или сторонним чипом кодека, который обеспечивается внешним кристаллом, который напрямую связан с основным подчиненным режимом I2S.

Когда I2S является основным режимом, часы имеют внутренний хрустальный генератор MSM8953; наоборот, он предоставляется третьим сторонним кодеком.

Код, настроенный здесь, также установлен в функции MSM_QUIN_MI2S_SND_STARTUP.

Соответствующий сегмент кода индивидуально перехвачен:

#ifdef QUIN_MI2S_USE_SLAVE_MODE
		ret = snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_CBM_CFM);
#else
		ret = snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_CBS_CFS);
#endif

(2) Как так часто частота настройки?

Здесь MSM_MI2S_SCLK_CTL записывает функцию MSM_QUIN_I2S_SCLK_CTL для конфигурации часов рабочего режима.

//added by kuangjincheng @20180521 QUIN_MI2S_SLAVE_MODE config
#ifdef QUIN_MI2S_USE_SLAVE_MODE
static struct afe_clk_set quin_i2s_rx_clk = {
	AFE_API_VERSION_I2S_CONFIG,
	Q6AFE_LPASS_CLK_ID_QUI_MI2S_EBIT,
	Q6AFE_LPASS_OSR_CLK_1_P536_MHZ,
	Q6AFE_LPASS_CLK_ATTRIBUTE_COUPLE_NO,
	Q6AFE_LPASS_CLK_ROOT_DEFAULT,
	0,
};

static struct afe_clk_set quin_i2s_tx_clk = {
	AFE_API_VERSION_I2S_CONFIG,
	Q6AFE_LPASS_CLK_ID_QUI_MI2S_EBIT,
	Q6AFE_LPASS_OSR_CLK_3_P072_MHZ,
	Q6AFE_LPASS_CLK_ATTRIBUTE_COUPLE_NO,
	Q6AFE_LPASS_CLK_ROOT_DEFAULT,
	0,
};
#endif

//added by kuangjincheng @20180521 QUIN_MI2S_SLAVE_MODE config
#ifdef QUIN_MI2S_USE_SLAVE_MODE
static int msm_quin_i2s_sclk_ctl(struct snd_pcm_substream *substream, bool enable)
{
	int ret = 0;
	struct snd_soc_pcm_runtime *rtd = substream->private_data;
	int port_id = 0;
	pr_err("msm8952>>>%s:  entern", __func__);
	port_id = msm8952_get_port_id(rtd->dai_link->be_id);
	if (port_id < 0) {
		pr_err("msm8952>>>%s:  Invalid port_idn", __func__);
		return -EINVAL;
	}

	if (enable) {
		if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
			quin_i2s_rx_clk.enable = enable;
			quin_i2s_rx_clk.clk_id = msm8952_get_clk_id(port_id);
			quin_i2s_rx_clk.clk_freq_in_hz = get_mi2s_rx_clk_val(port_id);
			ret = afe_set_lpass_clock_v2(port_id, &quin_i2s_rx_clk);
		} else if (substream->stream == SNDRV_PCM_STREAM_CAPTURE) {
			quin_i2s_tx_clk.enable = enable;
			quin_i2s_tx_clk.clk_id = msm8952_get_clk_id(port_id);
			quin_i2s_tx_clk.clk_freq_in_hz = Q6AFE_LPASS_OSR_CLK_1_P536_MHZ;
			ret = afe_set_lpass_clock_v2(port_id, &quin_i2s_tx_clk);
		} else {
			pr_err("msm8952>>>%s:  Not valid substream.n", __func__);
		}

		if (ret < 0)
			pr_err("msm8952>>>%s:  enable: %d, afe_set_lpass_clock_v2 failedn", __func__, enable);
	} else {
		if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
			quin_i2s_rx_clk.enable = enable;
			quin_i2s_rx_clk.clk_id = msm8952_get_clk_id(port_id);
			ret = afe_set_lpass_clock_v2(port_id, &quin_i2s_rx_clk);
		} else if (substream->stream == SNDRV_PCM_STREAM_CAPTURE) {
			quin_i2s_tx_clk.enable = enable;
			quin_i2s_tx_clk.clk_id = msm8952_get_clk_id(port_id);
			ret = afe_set_lpass_clock_v2(port_id, &quin_i2s_tx_clk);
		} else {
			pr_err("msm8952>>>%s:  Not valid substream.n", __func__);
		}

		if (ret < 0)
			pr_err("msm8952>>>%s: enable: %d, afe_set_lpass_clock_v2 failedn", __func__, enable);
	}
	return ret;
}
#endif

4. Сводка и расширение

Приведенный выше код модифицирован для завершения шины I2S из конфигурации режима, а основной субклюк-микрофон можно вырезать на макро определение Quin_MI2S_USE_SLAVE_MODE.

Расширенный:

kernel/msm-3.18/include/uapi/sound/asound.h

kernel/msm-3.18/include/sound/apr_audio-v2.h

Формат PCM можно установить:

SNDRV_PCM_FORMAT_S16_LE

SNDRV_PCM_FORMAT_S24_LE

SNDRV_PCM_FORMAT_S24_3LE

Битовые часы могут быть выбраны для:

/* Supported OSR clock values */
#define Q6AFE_LPASS_OSR_CLK_12_P288_MHZ         0xBB8000
#define Q6AFE_LPASS_OSR_CLK_9_P600_MHZ          0x927C00
#define Q6AFE_LPASS_OSR_CLK_8_P192_MHZ          0x7D0000
#define Q6AFE_LPASS_OSR_CLK_6_P144_MHZ          0x5DC000
#define Q6AFE_LPASS_OSR_CLK_4_P096_MHZ          0x3E8000
#define Q6AFE_LPASS_OSR_CLK_3_P072_MHZ          0x2EE000
#define Q6AFE_LPASS_OSR_CLK_2_P048_MHZ          0x1F4000
#define Q6AFE_LPASS_OSR_CLK_1_P536_MHZ          0x177000
#define Q6AFE_LPASS_OSR_CLK_1_P024_MHZ           0xFA000
#define Q6AFE_LPASS_OSR_CLK_768_kHZ              0xBB800
#define Q6AFE_LPASS_OSR_CLK_512_kHZ              0x7D000
#define Q6AFE_LPASS_OSR_CLK_DISABLE                  0x0

/* Supported Bit clock values */
#define Q6AFE_LPASS_IBIT_CLK_12_P288_MHZ        0xBB8000
#define Q6AFE_LPASS_IBIT_CLK_11_P2896_MHZ       0xAC4400
#define Q6AFE_LPASS_IBIT_CLK_8_P192_MHZ         0x7D0000
#define Q6AFE_LPASS_IBIT_CLK_6_P144_MHZ         0x5DC000
#define Q6AFE_LPASS_IBIT_CLK_4_P096_MHZ         0x3E8000
#define Q6AFE_LPASS_IBIT_CLK_3_P072_MHZ         0x2EE000
#define Q6AFE_LPASS_IBIT_CLK_2_P8224_MHZ                0x2b1100
#define Q6AFE_LPASS_IBIT_CLK_2_P048_MHZ         0x1F4000
#define Q6AFE_LPASS_IBIT_CLK_1_P536_MHZ         0x177000
#define Q6AFE_LPASS_IBIT_CLK_1_P4112_MHZ                0x158880
#define Q6AFE_LPASS_IBIT_CLK_1_P024_MHZ          0xFA000
#define Q6AFE_LPASS_IBIT_CLK_768_KHZ             0xBB800
#define Q6AFE_LPASS_IBIT_CLK_512_KHZ             0x7D000
#define Q6AFE_LPASS_IBIT_CLK_256_KHZ             0x3E800
#define Q6AFE_LPASS_IBIT_CLK_DISABLE                 0x0

Глубина местоположения может быть выбрана: 16, 24

Скорость образца может быть выбрана для:

#define BTSCO_RATE_8KHZ 8000
#define BTSCO_RATE_16KHZ 16000

#define SAMPLING_RATE_48KHZ     48000
#define SAMPLING_RATE_96KHZ     96000
#define SAMPLING_RATE_192KHZ    192000

Эта часть этого раздела находится в документах Qualcomm следующим образом:

Конфигурация PINCTRL

Конфигурация платформы Qualcomm Группа I2S, как правило, соответствует четыре или шести GPIO,

Quin MI2S соответствует gpio88 gpio91 gpio92 gpio93

Соответствующий файл кода: ядро ​​/ MSM-3.18 / Arch / ARM / BOOT / BOOT / DTS / QCOM / MSM8953-PINCTRL.DTSI

		pri-tlmm-lines {
			pri_tlmm_lines_act: pri_tlmm_lines_act {
				mux {
					pins = "gpio91", "gpio88", "gpio93";
					function = "pri_mi2s";
				};

				config {
					pins = "gpio91", "gpio88", "gpio93";
					drive-strength = <8>;
				};
			};

			pri_tlmm_lines_sus: pri_tlmm_lines_sus {
				mux {
					pins = "gpio91", "gpio88", "gpio93";
					function = "pri_mi2s";
				};

				config {
					pins = "gpio91", "gpio88", "gpio93";
					drive-strength = <2>;
					bias-pull-down;
				};
			};
		};

Настройка PINCTRL также необходимо подключить к узлу звуковой карты.

Изменение файла: ядро ​​/ MSM-3.18 / ARCH / ARM / BOOT / BOOT / DTS / QCOM / MSM8953-AUDIO.DTSI

	qcom,msm-gpios =
		"pri_i2s",
		"quin_i2s";

	qcom,pinctrl-names =
		"all_off",
		"pri_i2s_act",
		"quin_act",
		"quin_pri_i2s_act";

	pinctrl-names =
		"all_off",
		"pri_i2s_act",
		"quin_act",
		"quin_pri_i2s_act";

	pinctrl-0 = <&cdc_pdm_lines_sus &cdc_pdm_lines_2_sus &pri_tlmm_lines_sus &pri_tlmm_ws_sus>;
	pinctrl-1 = <&cdc_pdm_lines_act &cdc_pdm_lines_2_act &pri_tlmm_lines_sus &pri_tlmm_ws_sus>;
	pinctrl-2 = <&cdc_pdm_lines_sus &cdc_pdm_lines_2_sus &pri_tlmm_lines_act &pri_tlmm_ws_act>;
	pinctrl-3 = <&cdc_pdm_lines_act &cdc_pdm_lines_2_act &pri_tlmm_lines_act &pri_tlmm_ws_act>;

2. Зарегистрируйте конфигурацию

Узнайте на документе Qualcomm MSM8953 внешний обзор интерфейса MI2S для настройки следующих регистров MI2S для настройки следующих регистров.

Итак, как вы настраиваете эти регистры в вашем коде? Это должно быть изменено в следующие файлы.

Изменить файл:

kernel/msm-3.18/sound/soc/msm/msm8952.c

kernel/msm-3.18/sound/soc/codecs/msm8x16-wcd.h

kernel/msm-3.18/arch/arm/boot/dts/qcom/msm-audio.dtsi

Там, где настроено ядро ​​/ MSM-3.18 / Arch / Arm / Boot / DTS / QCOM / MSM-Audio.dtsi Конфигурация:

	int_codec: sound {
		compatible = "qcom,msm8952-audio-codec";

//added by kuangjincheng @20171221
		reg =   <0xc051000 0x4>,//LPASS_CSR_GP_IO_MUX_MIC_CTL
				<0xc051004 0x4>,//LPASS_CSR_GP_IO_MUX_SPKR_CTL
				<0xc055000 0x4>,//LPASS_CSR_GP_LPAIF_PRI_PCM_PRI_MODE_MUXSEL
				<0xc052000 0x4>,//LPASS_ CSR_GP_IO_MUX_QUI_CTL
				<0xc054000 0x4>,//LPASS_CSR_GP_IO_MUX_MIC_EXT_CLK_CTL
				<0xc056000 0x4>,// LPASS_CSR_GP_LPAIF_QUI_PCM_SEC_MODE_MUXSEL
				<0xc054008 0x4>;//LPASS_CSR_GP_IO_MUX_QUI_EXT_CLK_CTL
		reg-names = "csr_gp_io_mux_mic_ctl",
					"csr_gp_io_mux_spkr_ctl",
					"csr_gp_io_lpaif_pri_pcm_pri_mode_muxsel",
					"csr_gp_io_mux_quin_ctl",
					"csr_gp_io_mux_mic_ext_clk_ctl",
					"csr_gp_io_lpaif_qui_pcm_sec_mode_muxsel",
					"csr_gp_io_mux_quin_ext_clk_ctl";
    };

В структуре устройства в заголовочном файле ядра / MSM-3.18 / SOUND / SOC / CODECS / MSM8X16-WCD.H добавляется элемент указателя, а адрес регистра сохраняется.

struct msm8916_asoc_mach_data {
	int codec_type;
	int ext_pa;
	int us_euro_gpio;
	int spk_ext_pa_gpio;
	int mclk_freq;
	int lb_mode;
	int afe_clk_ver;
	u8 micbias1_cap_mode;
	u8 micbias2_cap_mode;
	atomic_t mclk_rsc_ref;
	atomic_t mclk_enabled;
	atomic_t wsa_mclk_rsc_ref;
	struct mutex cdc_mclk_mutex;
	struct mutex wsa_mclk_mutex;
	struct delayed_work disable_mclk_work;
	struct afe_digital_clk_cfg digital_cdc_clk;
	struct afe_clk_set digital_cdc_core_clk;
	void __iomem *vaddr_gpio_mux_spkr_ctl;
	void __iomem *vaddr_gpio_mux_mic_ctl;
	void __iomem *vaddr_gpio_mux_quin_ctl;
	void __iomem *vaddr_gpio_mux_pcm_ctl;
//added by kuangjincheng @20171221 QUAT_MI2S_SLAVE_MODE config
	void __iomem *vaddr_gpio_mux_mic_ext_clk_ctl;
//added by kuangjincheng @20180521 QUIN_MI2S_SLAVE_MODE config
	void __iomem *vaddr_gpio_quin_sec_muxsel;
	void __iomem *vaddr_gpio_mux_quin_ext_clk_ctl;
	struct on_demand_supply wsa_switch_supply;
};

В функции MSM8952_ASOC_Machine_probe из ядра / MSM / MSM8952.C соответствующий адрес регистра анализируется и сохранен на элементах, соответствующих структуре устройства.

//added by kuangjincheng @20180521 QUIN_MI2S_SLAVE_MODE config
	muxsel = platform_get_resource_byname(pdev, IORESOURCE_MEM, "csr_gp_io_lpaif_qui_pcm_sec_mode_muxsel");
	if (!muxsel) {
		dev_dbg(&pdev->dev, "MUX addr invalid for MI2Sn");
		goto parse_mclk_freq;
	}
	pdata->vaddr_gpio_quin_sec_muxsel = ioremap(muxsel->start, resource_size(muxsel));
	if (pdata->vaddr_gpio_quin_sec_muxsel == NULL) {
		pr_err("%s ==4ioremap failure for muxsel virt addrn", __func__);
		ret = -ENOMEM;
		goto err;
	}

	muxsel = platform_get_resource_byname(pdev, IORESOURCE_MEM, "csr_gp_io_mux_quin_ext_clk_ctl");
	if (!muxsel) {
		dev_dbg(&pdev->dev, "MUX addr invalid for MI2Sn");
		goto parse_mclk_freq;
	}
	pdata->vaddr_gpio_mux_quin_ext_clk_ctl = ioremap(muxsel->start, resource_size(muxsel));
	if (pdata->vaddr_gpio_mux_quin_ext_clk_ctl == NULL) {
		pr_err("%s ==5ioremap failure for muxsel virt addrn", __func__);
		ret = -ENOMEM;
		goto err;
	}

Конфигурация регистров имеет последний шаг — выполнить конфигурацию регистров в I2S, соответствующих MSM_QUIN_MI2S_SND_STARTUP.

static int msm_quin_mi2s_snd_startup(struct snd_pcm_substream *substream)
{
	struct snd_soc_pcm_runtime *rtd = substream->private_data;
	struct snd_soc_card *card = rtd->card;
	struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
	struct msm8916_asoc_mach_data *pdata =
			snd_soc_card_get_drvdata(card);
	int ret = 0, val = 0;

	pr_err("honeywell_msm8952>>>%s: substream = %s  stream = %dn", __func__, substream->name, substream->stream);
#ifdef QUIN_MI2S_USE_SLAVE_MODE
//0xc051000 LPASS_CSR_GP_IO_MUX_MIC_CTL
	if(pdata->vaddr_gpio_mux_mic_ctl){
		val = ioread32(pdata->vaddr_gpio_mux_mic_ctl);
		val = 0x00000000;
		iowrite32(val, pdata->vaddr_gpio_mux_mic_ctl);
	}
	pr_err("msm8952>>>%s:  iowrite32 vaddr_gpio_mux_mic_ctln", __func__);
//0xc056000 LPASS_CSR_GP_LPAIF_QUI_PCM_SEC_MODE_MUXSEL
	if(pdata->vaddr_gpio_quin_sec_muxsel){
		val = ioread32(pdata->vaddr_gpio_quin_sec_muxsel);
		val = 0x00000000;
		iowrite32(val, pdata->vaddr_gpio_quin_sec_muxsel);
	}
	pr_err("msm8952>>>%s:  iowrite32 vaddr_gpio_quin_sec_muxseln", __func__);
//0xc052000 LPASS_ CSR_GP_IO_MUX_QUI_CTL
	if(pdata->vaddr_gpio_mux_quin_ctl){
		val = ioread32(pdata->vaddr_gpio_mux_quin_ctl);
		val = 0x00000001;
		iowrite32(val, pdata->vaddr_gpio_mux_quin_ctl);
	}
	pr_err("msm8952>>>%s:  iowrite32 vaddr_gpio_mux_quin_ctln", __func__);
//0xc054008 LPASS_CSR_GP_IO_MUX_QUI_EXT_CLK_CTL
	if(pdata->vaddr_gpio_mux_quin_ext_clk_ctl){
		val = ioread32(pdata->vaddr_gpio_mux_quin_ext_clk_ctl);
		val = 0x00000001;
		iowrite32(val, pdata->vaddr_gpio_mux_quin_ext_clk_ctl);
	}
	pr_err("msm8952>>>%s:  iowrite32 vaddr_gpio_mux_quin_ext_clk_ctln", __func__);
#else
	if (pdata->vaddr_gpio_mux_quin_ctl) {
		val = ioread32(pdata->vaddr_gpio_mux_quin_ctl);
		val = val | 0x00000001;
		iowrite32(val, pdata->vaddr_gpio_mux_quin_ctl);
	} else {
		return -EINVAL;
	}
#endif
	pr_err("honeywell_msm8952>>>%s: ---001n", __func__);

#ifdef QUIN_MI2S_USE_SLAVE_MODE
	ret = msm_quin_i2s_sclk_ctl(substream, true);
#else
	ret = msm_mi2s_sclk_ctl(substream, true);
#endif
	if (ret < 0) {
		pr_err("honeywell_msm8952>>>%s: failed to enable sclkn", __func__);
		return ret;
	}
	pr_err("honeywell_msm8952>>>%s: ---002n", __func__);

	ret = msm_gpioset_activate(CLIENT_WCD_INT, "quin_i2s");
	if (ret < 0) {
		pr_err("honeywell_msm8952>>>%s: failed to enable codec gpiosn", __func__);
		goto err;
	}
	pr_err("honeywell_msm8952>>>%s: ---003n", __func__);

	if (atomic_inc_return(&quin_mi2s_clk_ref) == 1) {
#ifdef QUIN_MI2S_USE_SLAVE_MODE
		ret = snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_CBM_CFM);
#else
		ret = snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_CBS_CFS);
#endif
		if (ret < 0)
			pr_err("honeywell_msm8952>>>%s: set fmt cpu dai failedn", __func__);
	}
	pr_err("honeywell_msm8952>>>%s: ---004n", __func__);

	return ret;
err:
#ifdef QUIN_MI2S_USE_SLAVE_MODE
	ret = msm_quin_i2s_sclk_ctl(substream, false);
#else
	ret = msm_mi2s_sclk_ctl(substream, false);
#endif
	if (ret < 0)
		pr_err("failed to disable sclkn");
	return ret;
}

static void msm_quin_mi2s_snd_shutdown(struct snd_pcm_substream *substream)
{
	int ret;
	pr_err("honeywell_msm8952>>>%s: substream = %s  stream = %dn", __func__, substream->name, substream->stream);
#ifdef QUIN_MI2S_USE_SLAVE_MODE
	ret = msm_quin_i2s_sclk_ctl(substream, false);
#else
	ret = msm_mi2s_sclk_ctl(substream, false);
#endif
	if (ret < 0)
		pr_err("honeywell_msm8952>>>%s: clock disable failedn", __func__);
	if (atomic_read(&quin_mi2s_clk_ref) > 0)
		atomic_dec(&quin_mi2s_clk_ref);
	ret = msm_gpioset_suspend(CLIENT_WCD_INT, "quin_i2s");
	if (ret < 0) {
		pr_err("honeywell_msm8952>>>%s: gpio set cannot be de-activated %sd", __func__, "quin_i2s");
		return;
	}
}

3. Конфигурация часов

(1) Кто дает часы?

Часы в конфигурации часов обеспечиваются MSM8953 или сторонним чипом кодека, который обеспечивается внешним кристаллом, который напрямую связан с основным подчиненным режимом I2S.

Когда I2S является основным режимом, часы имеют внутренний хрустальный генератор MSM8953; наоборот, он предоставляется третьим сторонним кодеком.

Код, настроенный здесь, также установлен в функции MSM_QUIN_MI2S_SND_STARTUP.

Соответствующий сегмент кода индивидуально перехвачен:

#ifdef QUIN_MI2S_USE_SLAVE_MODE
		ret = snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_CBM_CFM);
#else
		ret = snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_CBS_CFS);
#endif

(2) Как так часто частота настройки?

Здесь MSM_MI2S_SCLK_CTL записывает функцию MSM_QUIN_I2S_SCLK_CTL для конфигурации часов рабочего режима.

//added by kuangjincheng @20180521 QUIN_MI2S_SLAVE_MODE config
#ifdef QUIN_MI2S_USE_SLAVE_MODE
static struct afe_clk_set quin_i2s_rx_clk = {
	AFE_API_VERSION_I2S_CONFIG,
	Q6AFE_LPASS_CLK_ID_QUI_MI2S_EBIT,
	Q6AFE_LPASS_OSR_CLK_1_P536_MHZ,
	Q6AFE_LPASS_CLK_ATTRIBUTE_COUPLE_NO,
	Q6AFE_LPASS_CLK_ROOT_DEFAULT,
	0,
};

static struct afe_clk_set quin_i2s_tx_clk = {
	AFE_API_VERSION_I2S_CONFIG,
	Q6AFE_LPASS_CLK_ID_QUI_MI2S_EBIT,
	Q6AFE_LPASS_OSR_CLK_3_P072_MHZ,
	Q6AFE_LPASS_CLK_ATTRIBUTE_COUPLE_NO,
	Q6AFE_LPASS_CLK_ROOT_DEFAULT,
	0,
};
#endif

//added by kuangjincheng @20180521 QUIN_MI2S_SLAVE_MODE config
#ifdef QUIN_MI2S_USE_SLAVE_MODE
static int msm_quin_i2s_sclk_ctl(struct snd_pcm_substream *substream, bool enable)
{
	int ret = 0;
	struct snd_soc_pcm_runtime *rtd = substream->private_data;
	int port_id = 0;
	pr_err("msm8952>>>%s:  entern", __func__);
	port_id = msm8952_get_port_id(rtd->dai_link->be_id);
	if (port_id < 0) {
		pr_err("msm8952>>>%s:  Invalid port_idn", __func__);
		return -EINVAL;
	}

	if (enable) {
		if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
			quin_i2s_rx_clk.enable = enable;
			quin_i2s_rx_clk.clk_id = msm8952_get_clk_id(port_id);
			quin_i2s_rx_clk.clk_freq_in_hz = get_mi2s_rx_clk_val(port_id);
			ret = afe_set_lpass_clock_v2(port_id, &quin_i2s_rx_clk);
		} else if (substream->stream == SNDRV_PCM_STREAM_CAPTURE) {
			quin_i2s_tx_clk.enable = enable;
			quin_i2s_tx_clk.clk_id = msm8952_get_clk_id(port_id);
			quin_i2s_tx_clk.clk_freq_in_hz = Q6AFE_LPASS_OSR_CLK_1_P536_MHZ;
			ret = afe_set_lpass_clock_v2(port_id, &quin_i2s_tx_clk);
		} else {
			pr_err("msm8952>>>%s:  Not valid substream.n", __func__);
		}

		if (ret < 0)
			pr_err("msm8952>>>%s:  enable: %d, afe_set_lpass_clock_v2 failedn", __func__, enable);
	} else {
		if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
			quin_i2s_rx_clk.enable = enable;
			quin_i2s_rx_clk.clk_id = msm8952_get_clk_id(port_id);
			ret = afe_set_lpass_clock_v2(port_id, &quin_i2s_rx_clk);
		} else if (substream->stream == SNDRV_PCM_STREAM_CAPTURE) {
			quin_i2s_tx_clk.enable = enable;
			quin_i2s_tx_clk.clk_id = msm8952_get_clk_id(port_id);
			ret = afe_set_lpass_clock_v2(port_id, &quin_i2s_tx_clk);
		} else {
			pr_err("msm8952>>>%s:  Not valid substream.n", __func__);
		}

		if (ret < 0)
			pr_err("msm8952>>>%s: enable: %d, afe_set_lpass_clock_v2 failedn", __func__, enable);
	}
	return ret;
}
#endif

4. Сводка и расширение

Приведенный выше код модифицирован для завершения шины I2S из конфигурации режима, а основной субклюк-микрофон можно вырезать на макро определение Quin_MI2S_USE_SLAVE_MODE.

Расширенный:

kernel/msm-3.18/include/uapi/sound/asound.h

kernel/msm-3.18/include/sound/apr_audio-v2.h

Формат PCM можно установить:

SNDRV_PCM_FORMAT_S16_LE

SNDRV_PCM_FORMAT_S24_LE

SNDRV_PCM_FORMAT_S24_3LE

Битовые часы могут быть выбраны для:

/* Supported OSR clock values */
#define Q6AFE_LPASS_OSR_CLK_12_P288_MHZ         0xBB8000
#define Q6AFE_LPASS_OSR_CLK_9_P600_MHZ          0x927C00
#define Q6AFE_LPASS_OSR_CLK_8_P192_MHZ          0x7D0000
#define Q6AFE_LPASS_OSR_CLK_6_P144_MHZ          0x5DC000
#define Q6AFE_LPASS_OSR_CLK_4_P096_MHZ          0x3E8000
#define Q6AFE_LPASS_OSR_CLK_3_P072_MHZ          0x2EE000
#define Q6AFE_LPASS_OSR_CLK_2_P048_MHZ          0x1F4000
#define Q6AFE_LPASS_OSR_CLK_1_P536_MHZ          0x177000
#define Q6AFE_LPASS_OSR_CLK_1_P024_MHZ           0xFA000
#define Q6AFE_LPASS_OSR_CLK_768_kHZ              0xBB800
#define Q6AFE_LPASS_OSR_CLK_512_kHZ              0x7D000
#define Q6AFE_LPASS_OSR_CLK_DISABLE                  0x0

/* Supported Bit clock values */
#define Q6AFE_LPASS_IBIT_CLK_12_P288_MHZ        0xBB8000
#define Q6AFE_LPASS_IBIT_CLK_11_P2896_MHZ       0xAC4400
#define Q6AFE_LPASS_IBIT_CLK_8_P192_MHZ         0x7D0000
#define Q6AFE_LPASS_IBIT_CLK_6_P144_MHZ         0x5DC000
#define Q6AFE_LPASS_IBIT_CLK_4_P096_MHZ         0x3E8000
#define Q6AFE_LPASS_IBIT_CLK_3_P072_MHZ         0x2EE000
#define Q6AFE_LPASS_IBIT_CLK_2_P8224_MHZ                0x2b1100
#define Q6AFE_LPASS_IBIT_CLK_2_P048_MHZ         0x1F4000
#define Q6AFE_LPASS_IBIT_CLK_1_P536_MHZ         0x177000
#define Q6AFE_LPASS_IBIT_CLK_1_P4112_MHZ                0x158880
#define Q6AFE_LPASS_IBIT_CLK_1_P024_MHZ          0xFA000
#define Q6AFE_LPASS_IBIT_CLK_768_KHZ             0xBB800
#define Q6AFE_LPASS_IBIT_CLK_512_KHZ             0x7D000
#define Q6AFE_LPASS_IBIT_CLK_256_KHZ             0x3E800
#define Q6AFE_LPASS_IBIT_CLK_DISABLE                 0x0

Глубина местоположения может быть выбрана: 16, 24

Скорость образца может быть выбрана для:

#define BTSCO_RATE_8KHZ 8000
#define BTSCO_RATE_16KHZ 16000

#define SAMPLING_RATE_48KHZ     48000
#define SAMPLING_RATE_96KHZ     96000
#define SAMPLING_RATE_192KHZ    192000

Эта часть этого раздела находится в документах Qualcomm следующим образом:

CARMEDIA NH-M1206-128-10 (Android 10, MSM 8953PX6 6×2.0 Ghz, 6Gb Ram, <br>128Gb ROM, BT4.0, 1920*1080) Головное устройство на Android 10 для Mercedes GLE <br>/ GLS 2016-2018 NTG 5.0/5.1

CARMEDIA
NH-M1206-128-11 (Android 11, MSM 8953PX6 6×2.0 Ghz, 6Gb Ram, 128Gb ROM, BT4.0, 1920*1080) Головное устройство на
Android 11 для Mercedes
GLE / GLS 2016-2018 NTG 5.0/5.1


Разработка


202
2
года от


CARMEDIA

линейка головных устройств


серии


HN Tesla-Style



со
 встроенным
звуковым процессором

с
TDA 7850
,
центральным процессором

MSM
8953PX6

6×2,0 Ghz (6
турбо-ядер)
, 6Гб оперативной
и
128Гб встроенной памяти! Штатное
головное устройство для


Mercedes GLE / GLS 2016-2018 NTG 5.0/5.1
 на
Android 11 CARMEDIA



NH-M1206-128-11

со стабильным



шести-ядерным
 процессором 
M1206, точной навигацией (GPS,
Глонасс), ярким сенсорным экраном


AHD 1080TVL

и громкой связью идеально подходит 
для
замены магнитолы на вашем авто
Стиль


Tesla

уникальный и красивый!


В составе графической подсистемы задействован контроллер 
Mali
T860 MP4
 (процессор
способен справляться с декодированием видеоматериалов 1080p
H.265/H.264/VC-1/MPEG/VP8).



Главные преимущества CARMEDIA серии
HN-xxxx-M1206-64-10 Tesla-Style:


  • Встроенный звуковой
    процессор TDA 7850 для качественного звука!



  • Цифровой сенсорный экран c матрицей 1080tvl для Tesla-Style
    (морозостойкий)!


  • Втроенный


    4G/LTE модем!
  • MSM
    8953PX6 6×2.0 Ghz + надежные
    комплектующие!
  • 6Gb
    оперативной памяти и 128Gb втроенной!

  • Внутренний микрофон полностью
    поддерживает голосовой поиск и управление андроид!
  • Подддержка
    CarPlay! Наличие HDMI
    порта!

  • NXP 6686 FM цифровой Радио модуль высокой
    чувствительности!

  • Управление климат-контролем и другими функциями с экрана!

  • Сверхточная GPS+Glonass навигация!

Официальный
магазин

CARMEDIA.RU
предлагает только высококачественные комплектующие и самые
последние прошивки, что обеспечивает стабильность и долгую работу головного 
устройства!


Описание — CARMEDIA NH-M1206-128-11
Головное устройство на Android 11 для

Mercedes GLE / GLS 2016-2018 NTG
5.0/5.1

  • Архитектура процессора

    MSM 8953PX6 6x2.0 Ghz
  • Оперативная память
    6 Гб, Встроенная память 128 Гб
  • OS


    Android 11
  • Экран AHD
    12,3«,
    1920*
    720
  • Поддержка разделения экрана!
  • Поддержка

    CarPlay
  • Поддержка карт памяти
    Поддержка SD карт (на

    некоторых моделях), USB flash и HDD до 1 Террабайта
  • Wi-Fi (802.11 b/g/n)

    150 Mbit встроенный модуль



  • Встроенный 4G/LTE!


    Возможность по WiFi принимать интернет с вашего смартфона (нужно включить на
    нем точку доступа WiFi)
  • Bluetooth встроенный
    4
    .0
  • DVD привод

    отсутствует
  • Встроенный GPS и
    Glonass — UBlox (сверхточный прием)

  • Радио модуль HD Radio NXP 6686
    (используется в аудиосистеме Mercedes и BMW) уверенный приём даже при самом
    слабом сигнале
  • CAN шина
    — в комплекте
    (в некоторых
    моделях втроенная)
  • Поддержка кнопок на
    руле
  • 1*USB OTG, 1*USB HOST (поддержка
    HDD дисков, USB drive, Keyboard, Mouse, Вебкамера, Wi-Fi роутеров, зарядка
    мобильных и др.), 2 порта (в некоторых устройствах 3 порта)
  • TV
    цифровое —
    Лайм.ТВ
  • Рабочее напряжение
    10.8V ~16V
  • Соотношение сигнал/шум
    усилителя 85 dB
  • Аудио входы 1 линейный
  • Аудио выходы
    5.1 линейные
  • Видео входы 1
    композитный
  • Видео выходы 2-х
    композитный, HDMI
  • Выходная мощность
    MOSFET TDA7850 4х55Вт,
    поддержка четырех-омной и двух-омной(премиум) акустики
  • Диапазон рабочих
    температур -20~+70

  • П
    оддержка
    IPop, Iphone, смартфоны на OS Android
  • Поддержка
    датчиков давления в шинах
  • Поддержка ИК пульта*
    (в некоторых моделях не комплектуется)

  • П
    оддержка
    камеры заднего хода
  • Яркость и подсветка
    кнопок*

Комплектация —

CARMEDIA NH-M1206-128-11
Головное устройство на
Android 11 для

Mercedes GLE / GLS 2016-2018 NTG
5.0/5.1

  • Головное устройство
    Tesla Style
  • Жгут проводов для
    подключения к штатным разъемам автомобиля
  • Адаптер CAN-шины для
    поддержки штатных функций
    (для определенных встроенный)
  • Жгут «тюльпанов» для
    усилителя, сабвуфера, AUX и камеры заднего вида
  • Внешний микрофон для
    громкой связи
  • GPS антенна для
    навигации
  • Гарантийный талон
    CARMEDIA (гарантия 2 года)


Официальный интернет-магазин

www.carmedia.ru

Теги: Цена
головное устройство CARMEDIA NH-M1206-128-11

для  Mercedes GLE / GLS 2016-2018 NTG 5.0/5.1,
купить
CARMEDIA NH-M1206-128-11, доставка
CARMEDIA NH-M1206-128-11, установка
CARMEDIA NH-M1206-128-11
,
характеристики
CARMEDIA NH-M1206-128-11

Mercedes GLE / GLS 2016-2018 NTG 5.0/5.1 CARMEDIA
NH-M1206-128-11

(Android 11, MSM 8953PX6 6×2.0 Ghz, 6Gb Ram, 128Gb ROM, BT4.0, 1920*1080) Штатное головное мультимедийное устройство

*
уточняйте при заказе (некоторые опции могут отсутствовать в начальной
комплектации)

Вчем привет. Ребят помогите! Нужна схема подключения этой магнитоллы. МНЕ ЕЕ КОРЯВО УСТАНОВИЛИ СХЕМУ ПОТЕРЯЛИ. Mmi глючит и не хочет с ней работать.

Приезжала Q7 4l с подобной прибоудой, у неё потребление в спящем от приборки в 300mA, возможно ли такое от этого монитора? он вешвется в одну цепь, не вкурсе?

Надо пробовать методом исключения

Вариант отличный, именно он в первую очередь и пришел в голову мне, подкинуть родной MMI, чем я и займусь. Но если проблема будет и в магнитоле, не могу понять, с чего начать смотреть, учитывая что инструкции по этому китайскому прибору нигде нет

Похоже ни как, 300мА это дежурка возможно. И скорее надо искать провод который её отключает. Или. Коричневую коробочку вскрыть. Смотреть что греется в магнитоле.

Проблема оказалась из за магнитолы, а именно ложила can шину или пробуждала mmi по оптике. Перевешал питание транспондера оптики с 30 клеммы на 15 и это частично помогло, но теперь нельзя воспользоваться mmi без включённого зажигания

Привет
Подскажи пожалуйста — удалось поставить?

Здравствуйте, все поставили, работает

Можно телефон владельца? Я такую же себе купил
Есть ряд вопросов

Не сохранил, обычно мне звонят

У меня не работает автояркость
И нет индикации климата поверх андроида

Xiaomi Redmi Note 4 MSM8953

Все фото

4.5


  • 165 г, 8.45 мм


  • Android 7.0

  • 5.5″

    1080 x 1920

  • 12.98mp

  • 4/3/2Gb RAM

    Qualcomm Snapdragon 625 MSM8953

  • 4100mAh

    Li-polymer

  • Установка официальной прошивки | Fastboot

    Описание

    Подробная инструкция по установке официальной прошивки на Xiaomi Redmi Note 4X и Xiaomi Redmi Note 4 Qualcomm (Mido) с разблокированным загрузчиком.

    • Драйвера и программы

      • MiPhoneSetup.zip

        Скачать

      • MiFlash.zip

        Скачать

      • adb-fastboot.zip

        Скачать

    Инструкция по установке

    • 1

      Сделать резервные копии всех необходимых данных и файлов и сохранить их на компьютер, съёмный носитель или облако.

    • 2

      Создать в корне диска С: папку с именем «Android».

    • 3

      Отключить проверку подлинности драйверов.
      Windows 7
      Во время включения компьютера, после загрузки BIOS, необходимо нажать клавишу F8. В появившимся меню «Дополнительные варианты загрузки» выбрать «Отключение обязательной подписи драйверов». Данный способ может сработать не с первого раза, поэтому следует повторить действие либо открыть командную строку от имени администратора и ввести две команды:
      «bcdedit.exe /set loadoptions DDISABLE_INTEGRITY_CHECKS»
      «bcdedit.exe /set TESTSIGNING ON»
      Windows 8
      Нужно нажать сочетание клавиш Win+I, зажать клавишу Shift и выбрать пункт «Выключение» > «Перезагрузка». При включении компьютера выбрать «Диагностика» > «Дополнительные параметры» > «Параметры загрузки» > «Перезагрузить». При загрузке выбрать режим «Отключить обязательную проверку подписи драйверов», нажав клавишу F7.
      Windows 10
      Необходимо зажать клавишу Shift и выбрать меню «Пуск» > «Выключение» > «Перезагрузка». После загрузки выбрать «Поиск и устранение неисправностей» > «Дополнительные параметры» > «Параметры загрузки» > «Перезагрузить». Затем выбрать пункт «Отключить обязательную проверку подписи драйверов», нажав клавишу F7.

    • 4

      Скачать приложение MiFlash.
      Примечание:
      Если уже установлена программа Mi PC Suite, данный шаг можно пропустить.

    • 5

      Скачать архив adb-fastboot.zip и распаковать все файлы в папку «Android».

    • 6

      Скачать архив с прошивкой для Fastboot в формате *.tgz и распаковать все файлы в папку «Android».

    • 7

      Активировать пункты «Заводская разблокировка», «Отладка по USB» и «Режим Fastboot» на смартфоне.
      Сделать это можно в разделе «Для разработчиков». Как его открыть, можно узнать здесь.

    • 8

      Подключить телефон к компьютеру по USB-кабелю.
      Рекомендуется использовать оригинальный или кабель хорошего качества, а также порт USB 2.0, расположенный на материнской плате (для ПК).

    • 9

      Открыть командную строку и перейти в созданную папку Android командой «cd c:Android» (команды пишутся без кавычек).

    • 10

      Убедиться, что компьютер находит устройство по ADB.
      Для этого необходимо ввести «adb devices» в командную строку. На появившейся запрос на телефоне о разрешении об отладке по ADB на данном компьютере необходимо нажать «Ok», при этом выбрав пункт «Всегда разрешать с этого компьютера». Если устройство видно, то выведется текст «List of devices attached» и список всех устройств (например,xxxxxxx device). Если же вместо «device» будет написано «offline» либо список окажется пустым, то необходимо обновить ADB, проверить драйвера/шнур, поменять порт USB/компьютер.

    • 11

      Перезагрузить смартфон в режим Fastboot.
      Для этого необходимо в командной строке ввести «adb reboot bootloader» либо выключить его, затем включить с зажатой клавишей Уменьшения Громкости. На экране должен отобразиться заяц в шапке-ушанке.

    • 12

      Убедиться, что компьютер находит устройство в режиме Fastboot.
      Для этого необходимо ввести команду «fastboot devices». Если в ответ выведется «xxxxxxx fastboot» значит телефон подключён верно. Если же выводится «waiting for device» или же вообще ничего — необходимо проверить состояние USB-подключения либо переустановить драйвера.

    • 13

      В командной строке ввести «flash_all.bat» для установки прошивки с удалением всех пользовательских данных либо «flash_all_except_data_storage.bat» для прошивки с их сохранением.
      Начнётся процесс установки прошивки.

    • 14

      Через некоторое время устройство само перезагрузится в систему и будет готово к дальнейшей работе.
      Если этого не произошло, необходимо в командной строке ввести «fastboot reboot» либо зажать кнопку Включения примерно на 10 секунд.

Список инструкции для Xiaomi Redmi Note 4 MSM8953
  • Переход с глобальной стабильной на прошивку для разработчиков

  • Установка официальной прошивки | XiaoMiTool

  • Установка официальной прошивки | MiFlash

  • Установка кастомной прошивки

  • Установка кастомного рекавери и получение рут-прав

  • Разблокировка загрузчика

Список прошивок для Xiaomi Redmi Note 4 MSM8953
  • Официальная глобальная прошивка для разработчиков | Recovery

  • Официальная китайская прошивка для разработчиков | Recovery

  • Официальная глобальная стабильная прошивка | Recovery

  • Официальная глобальная стабильная прошивка | Fastboot

Регистрация прошла успешно

История изменения цены

MSM8953 4G LTE HD 8 ядер Android 10 0 встроенный CarPlay автомобильный мультимедийный плеер

Двойное преобразование системы, оригинальная система Mercedes Benz NTG и система Android.

Поддержка всех оригинальных функций NTG, таких как заводское радио, gps-навигация, bluetooth, DVD/CD,USB,SD и т. д., поддержка заводской камеры заднего вида обратного траектории. Камера 360, дверная открывающаяся, совместима с оригианловым джойстиком, сенсорной мышью и управлением рулем, совместима с оригинальной звуковой системой и оптическим волокном, проигрывает аудио без потерь.Новые модели и новый пользовательский интерфейс, больше похоже на оригинальный стиль автомобиля, более стильныйПримечание: При оформлении заказа, пожалуйста, проверьте, что ваш автомобиль NTG 4,0 или 4,5 или 5,0. Если у вас есть какие-либо сомнения, пожалуйста, свяжитесь с нашим персоналом по обслуживанию клиентов.Автомобильный мультимедийный плеер подходит дляДля Benz C-Class W204 2007 до 2010 NTG 4,0

> ПоддержкаВидеорегистраторFuntion> Вы можете смотреть видео на радио, подключив USB. Легко подключить и легко смотреть. Сделайте вас безопаснее в дороге. (дополнительный аксессуар)

>ADASФункция, Предупреждение о столкновении, Предупреждение о выезде переднего транспортного средства, делает вас более безопасными на дороге.

>Поддержка задней камеры

**Когда автомобиль находится на заднем ходу, Этот автомобильный DVD автоматически переключается на изображение камеры заднего вида с помощью линии парковки. (дополнительный аксессуар)

>CarPlayЭто более умный, безопасный способ использования вашего iPhone в автомобиле. CarPlay принимает то, что вы хотите сделать с вашим iPhone во время вождения, и кладет их прямо на встроенный дисплей вашего автомобиля. Вы можете получать указания, совершать звонки, отправлять и получать сообщения, а также слушать музыку, таким образом, чтобы вы могли оставаться сосредоточенными на дороге. Просто подключите ваш iPhone и перейдите.

Функция BT:Автомобильная стереосистема оснащена встроенным Bluetooth и функцией телефонной книги. Вы можете синхронизировать телефонную книгу с вашего мобильный телефон на этот блок, а затем сделать мобильный телефон без рук удобным и быстрым. Вы также можете наслаждаться беспроводным воспроизведением музыки с вашего устройства bluetooth.

Поддержка зеркального соединения:Любое содержимое смартфона Android или IOS может отображаться на экране устройства, поэтому вы можете смотреть видео на большом дисплее, для телефона android, вы даже можете достичь Двунаправленного управления с помощью usb-кабеля для доступа к телефонной книге, карте, музыке и многому другому.

Встроенный gps-навигатор** Встроенная GPS/ГЛОНАСС навигация** Встроенная карта, постоянно обновляется** О обновлении карты: если вы хотите обновить карту, пожалуйста, свяжитесь с нами, мы загрузим ее в «Drop box», пожалуйста, не загружайте в других местах, В противном случае это повредит оригинальную карту.** Об обновлении карты:Если вы хотите обновить карту, пожалуйста, свяжитесь с нами, мы загрузим ее в «Drop box», пожалуйста, не загружайте в других местах, в противном случае это повредит оригинальную карту.> Время обновления карты: один раз в год


Отзывы покупателей

*о других товарах на сайте

Отзывы о MSM8953 4G LTE HD 8 ядер Android 10 0 встроенный CarPlay автомобильный мультимедийный

Здесь вы можете оставить свой отзыв о данном товаре.

Понравилась статья? Поделить с друзьями:
  • Mtd bl 5060 gt инструкция
  • Msm 1000 mg инструкция по применению
  • Msi z590 a pro инструкция
  • Mtd ast 790 m инструкция
  • Msi mag coreliquid p360 инструкция