mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 12:17:12 +09:00
i2c: add i2c support on m8b
PD#141217: add i2c support on m8b. add i2c ao~d support. Change-Id: Ibc46745d99b172186255fc3f47be42e04480c9a9 Signed-off-by: Jian Hu <jian.hu@amlogic.com> Signed-off-by: Jianxin Pan <jianxin.pan@amlogic.com>
This commit is contained in:
@@ -58,6 +58,82 @@
|
||||
};
|
||||
};
|
||||
|
||||
i2c_ao: i2c@c8100500{ /*I2C-AO*/
|
||||
compatible = "amlogic, meson-i2c";
|
||||
dev_name = "i2c-AO";
|
||||
status = "disabled";
|
||||
reg = <0xc8100500 0x1d>;
|
||||
device_id = <0>;
|
||||
pinctrl-names="default";
|
||||
pinctrl-0=<&ao_i2c_master>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
use_pio = <0>;
|
||||
master_i2c_speed = <100000>;
|
||||
clocks = <&clkc CLKID_CLK81>;
|
||||
clock-names = "clk_i2c";
|
||||
};
|
||||
i2c_a: i2c@c1108500{ /*I2C-A*/
|
||||
compatible = "amlogic, meson-i2c";
|
||||
dev_name = "i2c-A";
|
||||
status = "disabled";
|
||||
reg = <0xc1108500 0x20>;
|
||||
device_id = <1>;
|
||||
pinctrl-names="default";
|
||||
pinctrl-0=<&a_i2c_master>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
use_pio = <0>;
|
||||
master_i2c_speed = <300000>;
|
||||
clocks = <&clkc CLKID_CLK81>;
|
||||
clock-names = "clk_i2c";
|
||||
};
|
||||
i2c_b: i2c@c11087c0{ /*I2C-B*/
|
||||
compatible = "amlogic, meson-i2c";
|
||||
dev_name = "i2c-B";
|
||||
status = "disabled";
|
||||
reg = <0xc11087c0 0x20>;
|
||||
device_id = <2>;
|
||||
pinctrl-names="default";
|
||||
pinctrl-0=<&b_i2c_master>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
use_pio = <0>;
|
||||
master_i2c_speed = <300000>;
|
||||
clocks = <&clkc CLKID_CLK81>;
|
||||
clock-names = "clk_i2c";
|
||||
};
|
||||
i2c_c: i2c@c11087e0{ /*I2C-C*/
|
||||
compatible = "amlogic, meson-i2c";
|
||||
dev_name = "i2c-C";
|
||||
status = "disabled";
|
||||
reg = <0xc11087e0 0x20>;
|
||||
device_id = <3>;
|
||||
pinctrl-names="default";
|
||||
pinctrl-0=<&c_i2c_master>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
use_pio = <0>;
|
||||
master_i2c_speed = <300000>;
|
||||
clocks = <&clkc CLKID_CLK81>;
|
||||
clock-names = "clk_i2c";
|
||||
};
|
||||
i2c_d: i2c@c1108d20{ /*I2C-D*/
|
||||
compatible = "amlogic, meson-i2c";
|
||||
dev_name = "i2c-D";
|
||||
status = "disabled";
|
||||
reg = <0xc1108d20 0x20>;
|
||||
device_id = <4>;
|
||||
pinctrl-names="default";
|
||||
pinctrl-0=<&d_i2c_master>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
use_pio = <0>;
|
||||
master_i2c_speed = <300000>;
|
||||
clocks = <&clkc CLKID_CLK81>;
|
||||
clock-names = "clk_i2c";
|
||||
};
|
||||
|
||||
soc {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
@@ -215,6 +291,55 @@
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
|
||||
a_i2c_master:a_i2c {
|
||||
mux {
|
||||
groups = "i2c_sda_a","i2c_sck_a";
|
||||
function = "i2c_a";
|
||||
};
|
||||
};
|
||||
|
||||
b_i2c_master:b_i2c {
|
||||
mux {
|
||||
groups = "i2c_sda_b0","i2c_sck_b0";
|
||||
function = "i2c_b";
|
||||
};
|
||||
};
|
||||
|
||||
b_i2c_master_pin1:b_i2c_pin1 {
|
||||
mux {
|
||||
groups = "i2c_sda_b1","i2c_sck_b1";
|
||||
function = "i2c_b";
|
||||
};
|
||||
};
|
||||
|
||||
c_i2c_master:c_i2c {
|
||||
mux {
|
||||
groups = "i2c_sda_c0","i2c_sck_c0";
|
||||
function = "i2c_c";
|
||||
};
|
||||
};
|
||||
|
||||
c_i2c_master_pin1:c_i2c_pin1{
|
||||
mux {
|
||||
groups = "i2c_sda_c1","i2c_sck_c1";
|
||||
function = "i2c_c";
|
||||
};
|
||||
};
|
||||
|
||||
d_i2c_master:d_i2c {
|
||||
mux {
|
||||
groups = "i2c_sda_d0","i2c_sck_d0";
|
||||
function = "i2c_d";
|
||||
};
|
||||
};
|
||||
|
||||
d_i2c_master_pin1:d_i2c_pin1 {
|
||||
mux {
|
||||
groups = "i2c_sda_d1","i2c_sck_d1";
|
||||
function = "i2c_d";
|
||||
};
|
||||
};
|
||||
|
||||
emmc_clk_cmd_pins:emmc_clk_cmd_pins {
|
||||
mux {
|
||||
groups = "sd_cmd_c",
|
||||
@@ -394,6 +519,13 @@
|
||||
function = "uart_ao";
|
||||
};
|
||||
};
|
||||
ao_i2c_master:ao_i2c{
|
||||
mux {
|
||||
groups = "i2c_mst_sck_ao",
|
||||
"i2c_mst_sda_ao";
|
||||
function = "i2c_mst_ao";
|
||||
};
|
||||
};
|
||||
};
|
||||
dwc2_b {
|
||||
compatible = "amlogic,dwc2";
|
||||
|
||||
7
arch/arm/boot/dts/amlogic/meson8b_m200.dts
Executable file → Normal file
7
arch/arm/boot/dts/amlogic/meson8b_m200.dts
Executable file → Normal file
@@ -190,3 +190,10 @@
|
||||
pinctrl-0 = <&uart_ao_a_pins>;
|
||||
pinctrl-names = "default";
|
||||
};
|
||||
&i2c_a {
|
||||
status = "ok";
|
||||
};
|
||||
&i2c_ao {
|
||||
status = "ok";
|
||||
};
|
||||
|
||||
|
||||
@@ -50,6 +50,8 @@ CONFIG_AMLOGIC_USB_HOST_ELECT_TEST=y
|
||||
CONFIG_AMLOGIC_USBPHY=y
|
||||
CONFIG_AMLOGIC_CPU_VERSION=y
|
||||
CONFIG_AMLOGIC_M8B_MESON32_VERSION=y
|
||||
CONFIG_AMLOGIC_I2C=y
|
||||
CONFIG_AMLOGIC_I2C_MASTER=y
|
||||
CONFIG_AMLOGIC_REG_ACCESS=y
|
||||
CONFIG_AMLOGIC_CLK=y
|
||||
# CONFIG_AMLOGIC_RESET is not set
|
||||
|
||||
@@ -1161,7 +1161,7 @@ static void __exit aml_i2c_exit(void)
|
||||
platform_driver_unregister(&aml_i2c_driver);
|
||||
}
|
||||
|
||||
arch_initcall(aml_i2c_init);
|
||||
subsys_initcall(aml_i2c_init);
|
||||
module_exit(aml_i2c_exit);
|
||||
|
||||
MODULE_AUTHOR("AMLOGIC");
|
||||
|
||||
@@ -683,8 +683,12 @@ static const char * const iso7816_groups[] = {
|
||||
"iso7816_1_clk", "iso7816_1_data", "iso7816_2_clk", "iso7816_2_data"
|
||||
};
|
||||
|
||||
static const char * const i2c_d_groups[] = {
|
||||
"i2c_sda_d0", "i2c_sck_d0", "i2c_sda_d1", "i2c_sck_d1"
|
||||
static const char * const i2c_d0_groups[] = {
|
||||
"i2c_sda_d0", "i2c_sck_d0"
|
||||
};
|
||||
|
||||
static const char * const i2c_d1_groups[] = {
|
||||
"i2c_sda_d1", "i2c_sck_d1"
|
||||
};
|
||||
|
||||
static const char * const xtal_groups[] = {
|
||||
@@ -695,10 +699,15 @@ static const char * const uart_c_groups[] = {
|
||||
"uart_tx_c", "uart_rx_c", "uart_cts_c", "uart_rts_c"
|
||||
};
|
||||
|
||||
static const char * const i2c_c_groups[] = {
|
||||
"i2c_sda_c0", "i2c_sck_c0", "i2c_sda_c1", "i2c_sck_c1"
|
||||
static const char * const i2c_c0_groups[] = {
|
||||
"i2c_sda_c0", "i2c_sck_c0"
|
||||
};
|
||||
|
||||
static const char * const i2c_c1_groups[] = {
|
||||
"i2c_sda_c1", "i2c_sck_c1"
|
||||
};
|
||||
|
||||
|
||||
static const char * const hdmi_groups[] = {
|
||||
"hdmi_hpd", "hdmi_sda", "hdmi_scl", "hdmi_cec_0"
|
||||
};
|
||||
@@ -724,8 +733,12 @@ static const char * const i2c_a_groups[] = {
|
||||
"i2c_sda_a", "i2c_sck_a",
|
||||
};
|
||||
|
||||
static const char * const i2c_b_groups[] = {
|
||||
"i2c_sda_b0", "i2c_sck_b0", "i2c_sda_b1", "i2c_sck_b1"
|
||||
static const char * const i2c_b0_groups[] = {
|
||||
"i2c_sda_b0", "i2c_sck_b0"
|
||||
};
|
||||
|
||||
static const char * const i2c_b1_groups[] = {
|
||||
"i2c_sda_b1", "i2c_sck_b1"
|
||||
};
|
||||
|
||||
static const char * const sd_c_groups[] = {
|
||||
@@ -843,15 +856,18 @@ static struct meson_pmx_func meson8b_cbus_functions[] = {
|
||||
FUNCTION(uart_a),
|
||||
FUNCTION(uart_b),
|
||||
FUNCTION(iso7816),
|
||||
FUNCTION(i2c_d),
|
||||
FUNCTION(i2c_d0),
|
||||
FUNCTION(i2c_d1),
|
||||
FUNCTION(xtal),
|
||||
FUNCTION(uart_c),
|
||||
FUNCTION(i2c_c),
|
||||
FUNCTION(i2c_c0),
|
||||
FUNCTION(i2c_c1),
|
||||
FUNCTION(hdmi),
|
||||
FUNCTION(spi),
|
||||
FUNCTION(ethernet),
|
||||
FUNCTION(i2c_a),
|
||||
FUNCTION(i2c_b),
|
||||
FUNCTION(i2c_b0),
|
||||
FUNCTION(i2c_b1),
|
||||
FUNCTION(sd_c),
|
||||
FUNCTION(sdxc_c),
|
||||
FUNCTION(nand),
|
||||
|
||||
Reference in New Issue
Block a user