Release develop 251015
This commit is contained in:
49
arch/riscv/boot/dts/zhihe/a210-dev.dts
Normal file → Executable file
49
arch/riscv/boot/dts/zhihe/a210-dev.dts
Normal file → Executable file
@@ -1,5 +1,6 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include "a210-soc-core.dtsi"
|
||||
#include "a210-soc-peri.dtsi"
|
||||
#include "a210-platform-dev.dtsi"
|
||||
@@ -37,6 +38,7 @@
|
||||
i2c5 = &i2c5;
|
||||
i2c6 = &i2c6;
|
||||
i2c7 = &i2c7;
|
||||
aoi2c1 = &aoi2c1;
|
||||
|
||||
can0 = &can0;
|
||||
can1 = &can1;
|
||||
@@ -148,6 +150,17 @@
|
||||
slew-rate = <0>;
|
||||
};
|
||||
};
|
||||
aoi2c1_pins: aoi2c1-0 {
|
||||
i2c-pins {
|
||||
pins = "AOI2C1_SCL", "AOI2C1_SDA";
|
||||
function = "aoi2c1";
|
||||
bias-disable;
|
||||
drive-strength = <7>;
|
||||
input-enable;
|
||||
input-schmitt-enable;
|
||||
slew-rate = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&peri1_padctrl {
|
||||
@@ -573,6 +586,7 @@
|
||||
compatible = "awinic,aw87565_pa";
|
||||
reg = <0x5b>;
|
||||
sound-name-prefix = "AW87565_PA2";
|
||||
reset-gpios = <&aw9535_0 8 GPIO_ACTIVE_LOW>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
@@ -589,6 +603,41 @@
|
||||
clock-frequency = <400000>;
|
||||
};
|
||||
|
||||
&aoi2c1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&aoi2c1_pins>;
|
||||
clock-frequency = <400000>;
|
||||
status = "okay";
|
||||
|
||||
aw9535_0: gpio@20 {
|
||||
compatible = "awinic,aw9535";
|
||||
reg = <0x20>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
ngpios = <16>;
|
||||
interrupt-parent = <&ao_gpio1>;
|
||||
interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
|
||||
gpio-line-names =
|
||||
"CSI1_PWDN_IO0", "CSI1_RST_IO1", "CSI1_FSIN_IO2", "CSI0_PWDN_IO3", // index 0..3
|
||||
"CSI0_RST_IO4", "CSI0_FSIN_IO5", "PCIE_X1_PRSNT_L_IO6", "PCIE_X4_PRSNT_L_IO7", // index 4..7
|
||||
"AUDIO1_PARST0_IO8", "AUDIO_ADC1_INT_IO9", "AUDIO_ADC0_INT_IO10", "HP_CTL_H_IO11", // index 8..11
|
||||
"SIT91211_SSC_EN_IO12","DISP_RST_IO13","SWITCH3_SEL_IO14","SWITCH1_SEL_IO15"; // index 12..15
|
||||
};
|
||||
|
||||
aw9535_1: gpio@21 {
|
||||
compatible = "awinic,aw9535";
|
||||
reg = <0x21>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
ngpios = <16>;
|
||||
gpio-line-names =
|
||||
"PCIE_BAT_EN_IO0", "AUDIO_3V3_PWREN_IO1", "AUDIO_1V8_PWREN_IO2", "MIPI_CSI0_PWREN_IO3", // index 0..3
|
||||
"MIPI_CSI1_PWREN_IO4", "MIPI_TP_PWREN_IO5", "PCIE_3V3_EN_IO6", "PCIE_12V_EN_IO7", // index 4..7
|
||||
"USBCON_PWREN_IO8", "USBCON1_PWREN_IO9", "PCIE_3V3_AUX_EN_IO10", "SDIO_3V3_PWREN_IO11", // index 8..11
|
||||
"SDIO_1V8_PWREN_IO12","SIT91211_3V3_EN_IO13","MIPI_DSI_PWREN_IO14","BL_EN_IO15"; // index 12..15
|
||||
};
|
||||
};
|
||||
|
||||
&uart4 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart4_pins>;
|
||||
|
||||
14
arch/riscv/boot/dts/zhihe/a210-soc-peri.dtsi
Normal file → Executable file
14
arch/riscv/boot/dts/zhihe/a210-soc-peri.dtsi
Normal file → Executable file
@@ -1045,6 +1045,20 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
aoi2c1: i2c@30891000{
|
||||
compatible = "snps,designware-i2c";
|
||||
reg = <0x00 0x30891000 0x0 0x1000>;
|
||||
interrupt-parent = <&intc>;
|
||||
interrupts = <20>;
|
||||
//clocks = <&clk_peri PERI2_I2C7_IC_CLK_EN>, <&clk_peri PERI2_I2C7_PCLK_EN>;
|
||||
clocks = <&aon_110m>;
|
||||
clock-names = "ref", "pclk";
|
||||
//power-domains = <&power_peri2>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
vdec: vdec@0006800000 {
|
||||
compatible = "zhihe,vpu-vc9000d";
|
||||
address-cells = <2>;
|
||||
|
||||
2
arch/riscv/configs/a210_evb_defconfig
Normal file → Executable file
2
arch/riscv/configs/a210_evb_defconfig
Normal file → Executable file
@@ -176,6 +176,8 @@ CONFIG_PINCTRL=y
|
||||
CONFIG_PINCTRL_A210=y
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
CONFIG_GPIO_DWAPB=y
|
||||
CONFIG_GPIO_PCA953X=y
|
||||
CONFIG_GPIO_PCA953X_IRQ=y
|
||||
CONFIG_SENSORS_MR75203=y
|
||||
CONFIG_SENSORS_TMP102=m
|
||||
CONFIG_WATCHDOG=y
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
#include <linux/regulator/consumer.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/delay.h>
|
||||
|
||||
#include <asm/unaligned.h>
|
||||
|
||||
@@ -112,8 +113,11 @@ static const struct i2c_device_id pca953x_id[] = {
|
||||
{ "tca9539", 16 | PCA953X_TYPE | PCA_INT, },
|
||||
{ "tca9554", 8 | PCA953X_TYPE | PCA_INT, },
|
||||
{ "xra1202", 8 | PCA953X_TYPE },
|
||||
|
||||
{ "aw9535", 16 | PCA953X_TYPE | PCA_INT, },
|
||||
{ }
|
||||
};
|
||||
|
||||
MODULE_DEVICE_TABLE(i2c, pca953x_id);
|
||||
|
||||
#ifdef CONFIG_GPIO_PCA953X_IRQ
|
||||
@@ -1351,6 +1355,8 @@ static const struct of_device_id pca953x_dt_ids[] = {
|
||||
{ .compatible = "onnn,pca9655", .data = OF_953X(16, PCA_INT), },
|
||||
|
||||
{ .compatible = "exar,xra1202", .data = OF_953X( 8, 0), },
|
||||
|
||||
{ .compatible = "awinic,aw9535", .data = OF_953X(16, PCA_INT) },
|
||||
{ }
|
||||
};
|
||||
|
||||
|
||||
@@ -31,6 +31,8 @@
|
||||
#include <sound/soc.h>
|
||||
#include <sound/tlv.h>
|
||||
#include <sound/soc-dapm.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/gpio/consumer.h>
|
||||
#include "aw87565.h"
|
||||
|
||||
/*******************************************************************************
|
||||
@@ -396,6 +398,9 @@ static const struct snd_soc_component_driver aw87565_component_driver = {
|
||||
static int aw87565_i2c_probe(struct i2c_client *client)
|
||||
{
|
||||
struct device_node *np = client->dev.of_node;
|
||||
struct device_node *node;
|
||||
struct device_node *aw9535_node = NULL;
|
||||
int reg_val;
|
||||
int ret = -1;
|
||||
|
||||
if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
|
||||
@@ -421,7 +426,14 @@ static int aw87565_i2c_probe(struct i2c_client *client)
|
||||
aw87565->i2c_client = client;
|
||||
i2c_set_clientdata(client, aw87565);
|
||||
|
||||
/* aw87565芯片ID检查 */
|
||||
aw87565->audio_parst0_desc = devm_gpiod_get_optional(&client->dev, "reset", GPIOD_OUT_LOW);
|
||||
if (aw87565->audio_parst0_desc) {
|
||||
gpiod_set_value_cansleep(aw87565->audio_parst0_desc, 1);
|
||||
msleep(1);
|
||||
gpiod_set_value_cansleep(aw87565->audio_parst0_desc, 0);
|
||||
msleep(5);
|
||||
}
|
||||
|
||||
ret = aw87565_read_chipid(aw87565);
|
||||
if (ret < 0) {
|
||||
dev_err(&client->dev, "%s: aw87565_read_chipid failed %d\n",
|
||||
@@ -442,8 +454,6 @@ static int aw87565_i2c_probe(struct i2c_client *client)
|
||||
return devm_snd_soc_register_component(&client->dev, &aw87565_component_driver, NULL, 0);
|
||||
|
||||
exit_i2c_check_id_failed:
|
||||
exit_gpio_request_failed:
|
||||
exit_gpio_get_failed:
|
||||
devm_kfree(&client->dev, aw87565);
|
||||
aw87565 = NULL;
|
||||
exit_devm_kzalloc_failed:
|
||||
@@ -453,6 +463,9 @@ exit_check_functionality_failed:
|
||||
|
||||
static void aw87565_i2c_remove(struct i2c_client *client)
|
||||
{
|
||||
if (aw87565->audio_parst0_desc)
|
||||
gpiod_put(aw87565->audio_parst0_desc);
|
||||
return;
|
||||
}
|
||||
|
||||
static const struct i2c_device_id aw87565_i2c_id[] = {
|
||||
|
||||
@@ -158,6 +158,7 @@ struct aw87565 {
|
||||
unsigned char spk_cfg_update_flag;
|
||||
unsigned char rcv_cfg_update_flag;
|
||||
struct regmap *regmap;
|
||||
struct gpio_desc *audio_parst0_desc;
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
|
||||
Reference in New Issue
Block a user