diff options
author | Scott Murray <scott.murray@konsulko.com> | 2020-10-20 17:11:40 -0400 |
---|---|---|
committer | Scott Murray <scott.murray@konsulko.com> | 2020-10-20 17:11:40 -0400 |
commit | 6c4f90cb4b4175b7256baa04f82bb12c811fe5af (patch) | |
tree | c096df655b01d4870d7c028f06e755dc4c191908 /meta-agl-refhw-gen3/recipes-kernel/linux/files/0002-agl-reference-hardware-sample-bsp.patch | |
parent | e3a57dcb2ae1cd4e6a81e1ca65ac235c8e3dd500 (diff) |
Initial clean ups
Changes:
- Update the layer.conf to indicate dunfell compatibility and add
LAYERDEPENDS definition to make layer dependencies explicit.
- Move kernel files to more expected recipes-kernel/linux directory.
Bug-AGL: SPEC-3658
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Diffstat (limited to 'meta-agl-refhw-gen3/recipes-kernel/linux/files/0002-agl-reference-hardware-sample-bsp.patch')
-rw-r--r-- | meta-agl-refhw-gen3/recipes-kernel/linux/files/0002-agl-reference-hardware-sample-bsp.patch | 846 |
1 files changed, 846 insertions, 0 deletions
diff --git a/meta-agl-refhw-gen3/recipes-kernel/linux/files/0002-agl-reference-hardware-sample-bsp.patch b/meta-agl-refhw-gen3/recipes-kernel/linux/files/0002-agl-reference-hardware-sample-bsp.patch new file mode 100644 index 0000000..6763558 --- /dev/null +++ b/meta-agl-refhw-gen3/recipes-kernel/linux/files/0002-agl-reference-hardware-sample-bsp.patch @@ -0,0 +1,846 @@ +--- + .../arm64/boot/dts/renesas/r8a7795-salvator-xs.dts | 10 - + arch/arm64/boot/dts/renesas/salvator-common.dtsi | 431 ++++++++++----------- + drivers/iio/imu/Kconfig | 1 + + drivers/iio/imu/Makefile | 1 + + drivers/media/i2c/adv748x/adv748x-core.c | 48 ++- + drivers/media/i2c/adv748x/adv748x.h | 12 + + drivers/pinctrl/sh-pfc/pfc-r8a7795.c | 6 +- + 7 files changed, 260 insertions(+), 249 deletions(-) + +diff --git a/arch/arm64/boot/dts/renesas/r8a7795-salvator-xs.dts b/arch/arm64/boot/dts/renesas/r8a7795-salvator-xs.dts +index 498f788..b4236a5 100644 +--- a/arch/arm64/boot/dts/renesas/r8a7795-salvator-xs.dts ++++ b/arch/arm64/boot/dts/renesas/r8a7795-salvator-xs.dts +@@ -166,16 +166,6 @@ + remote-endpoint = <&rcar_dw_hdmi1_out>; + }; + +-&lvds0 { +- ports { +- port@1 { +- lvds0_out: endpoint { +- remote-endpoint = <&lvds_in>; +- }; +- }; +- }; +-}; +- + &ohci2 { + status = "okay"; + }; +diff --git a/arch/arm64/boot/dts/renesas/salvator-common.dtsi b/arch/arm64/boot/dts/renesas/salvator-common.dtsi +index 878ed7c..32d19d9 100644 +--- a/arch/arm64/boot/dts/renesas/salvator-common.dtsi ++++ b/arch/arm64/boot/dts/renesas/salvator-common.dtsi +@@ -34,6 +34,10 @@ + aliases { + serial0 = &scif2; + serial1 = &scif1; ++ serial2 = &scif5; ++ serial3 = &hscif1; ++ serial4 = &hscif0; ++ serial5 = &hscif2; + ethernet0 = &avb; + }; + +@@ -62,65 +66,26 @@ + resets = <&cpg 922>; + }; + +- backlight: backlight { +- compatible = "pwm-backlight"; +- pwms = <&pwm1 0 50000>; +- +- brightness-levels = <256 128 64 16 8 4 0>; +- default-brightness-level = <6>; +- +- power-supply = <®_12v>; +- enable-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>; +- }; +- +- cvbs-in { +- compatible = "composite-video-connector"; +- label = "CVBS IN"; +- +- port { +- cvbs_con: endpoint { +- remote-endpoint = <&adv7482_ain7>; +- }; +- }; +- }; +- +- hdmi-in { ++ hdmi0-in { + compatible = "hdmi-connector"; +- label = "HDMI IN"; ++ label = "HDMI0 IN"; + type = "a"; + + port { + hdmi_in_con: endpoint { +- remote-endpoint = <&adv7482_hdmi>; ++ remote-endpoint = <&adv7481_hdmi>; + }; + }; + }; + +- lvds { +- compatible = "panel-lvds"; +- +- width-mm = <210>; +- height-mm = <158>; +- +- data-mapping = "jeida-24"; +- enable-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>; +- +- panel-timing { +- /* 1024x768 @60Hz */ +- clock-frequency = <65000000>; +- hactive = <1024>; +- vactive = <768>; +- hsync-len = <136>; +- hfront-porch = <20>; +- hback-porch = <160>; +- vfront-porch = <3>; +- vback-porch = <29>; +- vsync-len = <6>; +- }; ++ hdmi2-in { ++ compatible = "hdmi-connector"; ++ label = "HDMI2 IN"; ++ type = "a"; + + port { +- lvds_in: endpoint { +- remote-endpoint = <&lvds0_out>; ++ hdmi_in_con2: endpoint { ++ remote-endpoint = <&adv7481_hdmi2>; + }; + }; + }; +@@ -160,17 +125,6 @@ + dais = <&rsnd_port0>; + }; + +- vbus0_usb2: regulator-vbus0-usb2 { +- compatible = "regulator-fixed"; +- +- regulator-name = "USB20_VBUS0"; +- regulator-min-microvolt = <5000000>; +- regulator-max-microvolt = <5000000>; +- +- gpio = <&gpio6 16 GPIO_ACTIVE_HIGH>; +- enable-active-high; +- }; +- + vcc_sdhi0: regulator-vcc-sdhi0 { + compatible = "regulator-fixed"; + +@@ -241,40 +195,6 @@ + }; + }; + +- vga { +- compatible = "vga-connector"; +- no-use-ddc; +- max-pixelclock = <100000>; +- +- port { +- vga_in: endpoint { +- remote-endpoint = <&adv7123_out>; +- }; +- }; +- }; +- +- vga-encoder { +- compatible = "adi,adv7123"; +- +- ports { +- #address-cells = <1>; +- #size-cells = <0>; +- +- port@0 { +- reg = <0>; +- adv7123_in: endpoint { +- remote-endpoint = <&du_out_rgb>; +- }; +- }; +- port@1 { +- reg = <1>; +- adv7123_out: endpoint { +- remote-endpoint = <&vga_in>; +- }; +- }; +- }; +- }; +- + x12_clk: x12 { + compatible = "fixed-clock"; + #clock-cells = <0>; +@@ -325,49 +245,41 @@ + }; + }; + +-&csi20 { ++&csi40 { + status = "okay"; + + ports { + port@0 { + reg = <0>; +- csi20_in: endpoint { ++ ++ csi40_in: endpoint { + clock-lanes = <0>; +- data-lanes = <1>; +- remote-endpoint = <&adv7482_txb>; ++ data-lanes = <1 2 3 4>; ++ remote-endpoint = <&adv7481_txa>; + }; + }; + }; + }; + +-&csi40 { ++&csi41 { + status = "okay"; + + ports { + port@0 { + reg = <0>; + +- csi40_in: endpoint { ++ csi41_in: endpoint { + clock-lanes = <0>; + data-lanes = <1 2 3 4>; +- remote-endpoint = <&adv7482_txa>; ++ remote-endpoint = <&adv7481_txa2>; + }; + }; + }; + }; + + &du { +- pinctrl-0 = <&du_pins>; +- pinctrl-names = "default"; + status = "okay"; + +- ports { +- port@0 { +- endpoint { +- remote-endpoint = <&adv7123_in>; +- }; +- }; +- }; + }; + + &ehci0 { +@@ -383,12 +295,27 @@ + clock-frequency = <32768>; + }; + ++&hscif0 { ++ pinctrl-0 = <&hscif0_pins>; ++ pinctrl-names = "default"; ++ uart-has-rtscts; ++ ++ status = "okay"; ++}; ++ + &hscif1 { + pinctrl-0 = <&hscif1_pins>; + pinctrl-names = "default"; + + /* Please use exclusively to the scif1 node */ +- /* status = "okay"; */ ++ status = "okay"; ++}; ++ ++&hscif2 { ++ pinctrl-0 = <&hscif2_pins>; ++ pinctrl-names = "default"; ++ ++ status = "okay"; + }; + + &hsusb { +@@ -404,24 +331,65 @@ + + clock-frequency = <100000>; + +- ak4613: codec@10 { +- compatible = "asahi-kasei,ak4613"; +- #sound-dai-cells = <0>; +- reg = <0x10>; +- clocks = <&rcar_sound 3>; ++ video-receiver@70 { ++ compatible = "adi,adv7481"; ++ reg = <0x70>; + +- asahi-kasei,in1-single-end; +- asahi-kasei,in2-single-end; +- asahi-kasei,out1-single-end; +- asahi-kasei,out2-single-end; +- asahi-kasei,out3-single-end; +- asahi-kasei,out4-single-end; +- asahi-kasei,out5-single-end; +- asahi-kasei,out6-single-end; ++ #address-cells = <1>; ++ #size-cells = <0>; + +- port { +- ak4613_endpoint: endpoint { +- remote-endpoint = <&rsnd_endpoint0>; ++ interrupt-parent = <&gpio0>; ++ interrupt-names = "intrq1", "intrq3"; ++ interrupts = <4 IRQ_TYPE_LEVEL_LOW>, ++ <5 IRQ_TYPE_LEVEL_LOW>; ++ ++ port@8 { ++ reg = <8>; ++ ++ adv7481_hdmi: endpoint { ++ remote-endpoint = <&hdmi_in_con>; ++ }; ++ }; ++ ++ port@a { ++ reg = <10>; ++ ++ adv7481_txa: endpoint { ++ clock-lanes = <0>; ++ data-lanes = <1 2 3 4>; ++ remote-endpoint = <&csi40_in>; ++ }; ++ }; ++ ++ }; ++ ++ video-receiver@71 { ++ compatible = "adi,adv7481"; ++ reg = <0x71>; ++ ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ interrupt-parent = <&gpio6>; ++ interrupt-names = "intrq1", "intrq3"; ++ interrupts = <0 IRQ_TYPE_LEVEL_LOW>, ++ <1 IRQ_TYPE_LEVEL_LOW>; ++ ++ port@8 { ++ reg = <8>; ++ ++ adv7481_hdmi2: endpoint { ++ remote-endpoint = <&hdmi_in_con2>; ++ }; ++ }; ++ ++ port@a { ++ reg = <10>; ++ ++ adv7481_txa2: endpoint { ++ clock-lanes = <0>; ++ data-lanes = <1 2 3 4>; ++ remote-endpoint = <&csi41_in>; + }; + }; + }; +@@ -438,75 +406,62 @@ + }; + }; + +-&i2c4 { ++&i2c3 { ++ pinctrl-0 = <&i2c3_pins>; ++ pinctrl-names = "default"; ++ + status = "okay"; + +- pca9654: gpio@20 { +- compatible = "onnn,pca9654"; +- reg = <0x20>; +- gpio-controller; +- #gpio-cells = <2>; +- }; ++ clock-frequency = <100000>; + +- csa_vdd: adc@7c { +- compatible = "maxim,max9611"; +- reg = <0x7c>; ++ asm330lhh@6a { ++ compatible = "st,asm330lhh"; ++ reg = <0x6a>; + +- shunt-resistor-micro-ohms = <5000>; ++ interrupt-names = "int1", "int2"; ++ interrupts = <&gpio6 23 IRQ_TYPE_EDGE_RISING>, ++ <&gpio2 6 IRQ_TYPE_EDGE_RISING>; + }; ++}; + +- csa_dvfs: adc@7f { +- compatible = "maxim,max9611"; +- reg = <0x7f>; ++&i2c4 { ++ status = "okay"; + +- shunt-resistor-micro-ohms = <5000>; ++ versaclock5: clock-generator@68 { ++ compatible = "idt,9fgv0841"; ++ reg = <0x68>; ++ #clock-cells = <1>; ++ clocks = <&x23_clk>; ++ clock-names = "xin"; + }; ++}; + +- video-receiver@70 { +- compatible = "adi,adv7482"; +- reg = <0x70>; +- +- #address-cells = <1>; +- #size-cells = <0>; +- +- interrupt-parent = <&gpio6>; +- interrupt-names = "intrq1", "intrq2"; +- interrupts = <30 IRQ_TYPE_LEVEL_LOW>, +- <31 IRQ_TYPE_LEVEL_LOW>; +- +- port@7 { +- reg = <7>; +- +- adv7482_ain7: endpoint { +- remote-endpoint = <&cvbs_con>; +- }; +- }; +- +- port@8 { +- reg = <8>; ++&i2c5 { ++ pinctrl-0 = <&i2c5_pins>; ++ pinctrl-names = "default"; + +- adv7482_hdmi: endpoint { +- remote-endpoint = <&hdmi_in_con>; +- }; +- }; ++ status = "okay"; + +- port@a { +- reg = <10>; ++ clock-frequency = <100000>; + +- adv7482_txa: endpoint { +- clock-lanes = <0>; +- data-lanes = <1 2 3 4>; +- remote-endpoint = <&csi40_in>; +- }; +- }; ++ ak4613: codec@10 { ++ compatible = "asahi-kasei,ak4613"; ++ #sound-dai-cells = <0>; ++ reg = <0x10>; ++ clocks = <&rcar_sound 3>; + +- port@b { +- reg = <11>; ++ asahi-kasei,in1-single-end; ++ asahi-kasei,in2-single-end; ++ asahi-kasei,out1-single-end; ++ asahi-kasei,out2-single-end; ++ asahi-kasei,out3-single-end; ++ asahi-kasei,out4-single-end; ++ asahi-kasei,out5-single-end; ++ asahi-kasei,out6-single-end; + +- adv7482_txb: endpoint { +- clock-lanes = <0>; +- data-lanes = <1>; +- remote-endpoint = <&csi20_in>; ++ port { ++ ak4613_endpoint: endpoint { ++ remote-endpoint = <&rsnd_endpoint0>; + }; + }; + }; +@@ -550,10 +505,6 @@ + }; + }; + +-&lvds0 { +- status = "okay"; +-}; +- + &ohci0 { + dr_mode = "otg"; + status = "okay"; +@@ -565,6 +516,7 @@ + + &pcie_bus_clk { + clock-frequency = <100000000>; ++ status = "okay"; + }; + + &pciec0 { +@@ -575,6 +527,21 @@ + status = "okay"; + }; + ++&canfd { ++ pinctrl-0 = <&canfd0_pins &canfd1_pins>; ++ pinctrl-names = "default"; ++ ++ status = "okay"; ++ ++ channel0 { ++ status = "okay"; ++ }; ++ ++ channel1 { ++ status = "okay"; ++ }; ++}; ++ + &pfc { + pinctrl-0 = <&scif_clk_pins>; + pinctrl-names = "default"; +@@ -597,38 +564,43 @@ + }; + }; + +- du_pins: du { +- groups = "du_rgb888", "du_sync", "du_oddf", "du_clk_out_0"; +- function = "du"; ++ hscif0_pins: hscif0 { ++ groups = "hscif0_data", "hscif0_ctrl"; ++ function = "hscif0"; + }; + + hscif1_pins: hscif1 { +- groups = "hscif1_data_a", "hscif1_ctrl_a"; ++ groups = "hscif1_data_a"; + function = "hscif1"; + }; + ++ hscif2_pins: hscif2 { ++ groups = "hscif2_data_c"; ++ function = "hscif2"; ++ }; ++ + i2c2_pins: i2c2 { + groups = "i2c2_a"; + function = "i2c2"; + }; + +- irq0_pins: irq0 { +- groups = "intc_ex_irq0"; +- function = "intc_ex"; ++ i2c3_pins: i2c3 { ++ groups = "i2c3"; ++ function = "i2c3"; + }; + +- pwm1_pins: pwm1 { +- groups = "pwm1_a"; +- function = "pwm1"; ++ i2c5_pins: i2c5 { ++ groups = "i2c5"; ++ function = "i2c5"; + }; + +- pwm2_pins: pwm2 { +- groups = "pwm2_a"; +- function = "pwm2"; ++ irq0_pins: irq0 { ++ groups = "intc_ex_irq0"; ++ function = "intc_ex"; + }; + + scif1_pins: scif1 { +- groups = "scif1_data_a", "scif1_ctrl"; ++ groups = "scif1_data_b"; + function = "scif1"; + }; + +@@ -637,6 +609,11 @@ + function = "scif2"; + }; + ++ scif5_pins: scif5 { ++ groups = "scif5_data_a"; ++ function = "scif5"; ++ }; ++ + scif_clk_pins: scif_clk { + groups = "scif_clk_a"; + function = "scif_clk"; +@@ -679,13 +656,13 @@ + }; + + sound_pins: sound { +- groups = "ssi01239_ctrl", "ssi0_data", "ssi1_data_a"; ++ groups = "ssi349_ctrl", "ssi3_data", "ssi4_data"; + function = "ssi"; + }; + + sound_clk_pins: sound_clk { +- groups = "audio_clk_a_a", "audio_clk_b_a", "audio_clk_c_a", +- "audio_clkout_a", "audio_clkout3_a"; ++ groups = "audio_clk_a_a", "audio_clk_b_a", ++ "audio_clkout_a", "audio_clkout3_b"; + function = "audio_clk"; + }; + +@@ -695,40 +672,24 @@ + }; + + usb1_pins: usb1 { +- mux { +- groups = "usb1"; +- function = "usb1"; +- }; +- +- ovc { +- pins = "GP_6_27"; +- bias-pull-up; +- }; +- +- pwen { +- pins = "GP_6_26"; +- bias-pull-down; +- }; ++ groups = "usb1"; ++ function = "usb1"; + }; + + usb30_pins: usb30 { + groups = "usb30"; + function = "usb30"; + }; +-}; +- +-&pwm1 { +- pinctrl-0 = <&pwm1_pins>; +- pinctrl-names = "default"; +- +- status = "okay"; +-}; + +-&pwm2 { +- pinctrl-0 = <&pwm2_pins>; +- pinctrl-names = "default"; ++ canfd0_pins: canfd0 { ++ groups = "canfd0_data_a"; ++ function = "canfd0"; ++ }; + +- status = "okay"; ++ canfd1_pins: canfd1 { ++ groups = "canfd1_data"; ++ function = "canfd1"; ++ }; + }; + + &rcar_sound { +@@ -775,8 +736,8 @@ + bitclock-master = <&rsnd_endpoint0>; + frame-master = <&rsnd_endpoint0>; + +- playback = <&ssi0 &src0 &dvc0>; +- capture = <&ssi1 &src1 &dvc1>; ++ playback = <&ssi3>; //ssi0 -> ssi3 ++ capture = <&ssi4>; //ssi1 -> ssi4 + }; + }; + }; +@@ -803,6 +764,13 @@ + status = "okay"; + }; + ++&scif5 { ++ pinctrl-0 = <&scif5_pins>; ++ pinctrl-names = "default"; ++ ++ status = "okay"; ++}; ++ + &scif_clk { + clock-frequency = <14745600>; + }; +@@ -857,7 +825,7 @@ + status = "okay"; + }; + +-&ssi1 { ++&ssi4 { + shared-pin; + }; + +@@ -869,7 +837,6 @@ + pinctrl-0 = <&usb0_pins>; + pinctrl-names = "default"; + +- vbus-supply = <&vbus0_usb2>; + status = "okay"; + }; + +diff --git a/drivers/iio/imu/Kconfig b/drivers/iio/imu/Kconfig +index 156630a..463210d 100644 +--- a/drivers/iio/imu/Kconfig ++++ b/drivers/iio/imu/Kconfig +@@ -40,6 +40,7 @@ config KMX61 + + source "drivers/iio/imu/inv_mpu6050/Kconfig" + source "drivers/iio/imu/st_lsm6dsx/Kconfig" ++source "drivers/iio/imu/st_asm330lhh/Kconfig" + + endmenu + +diff --git a/drivers/iio/imu/Makefile b/drivers/iio/imu/Makefile +index 68629c68..349a7de 100644 +--- a/drivers/iio/imu/Makefile ++++ b/drivers/iio/imu/Makefile +@@ -20,3 +20,4 @@ obj-y += inv_mpu6050/ + obj-$(CONFIG_KMX61) += kmx61.o + + obj-y += st_lsm6dsx/ ++obj-y += st_asm330lhh/ +diff --git a/drivers/media/i2c/adv748x/adv748x-core.c b/drivers/media/i2c/adv748x/adv748x-core.c +index da8f062..c2b37f7 100644 +--- a/drivers/media/i2c/adv748x/adv748x-core.c ++++ b/drivers/media/i2c/adv748x/adv748x-core.c +@@ -165,6 +165,21 @@ static int adv748x_i2c_addresses[ADV748X_PAGE_MAX] = { + ADV748X_I2C_TXA, + }; + ++/* Default addresses for the I2C pages 0x71*/ ++static int adv748x_i2c_addresses2[ADV748X_PAGE_MAX] = { ++ ADV748X_I2C_IO2, ++ ADV748X_I2C_DPLL2, ++ ADV748X_I2C_CP2, ++ ADV748X_I2C_HDMI2, ++ ADV748X_I2C_EDID2, ++ ADV748X_I2C_REPEATER2, ++ ADV748X_I2C_INFOFRAME2, ++ ADV748X_I2C_CEC2, ++ ADV748X_I2C_SDP2, ++ ADV748X_I2C_TXB2, ++ ADV748X_I2C_TXA2, ++}; ++ + static int adv748x_read_check(struct adv748x_state *state, + int client_page, u8 reg) + { +@@ -238,9 +253,16 @@ static int adv748x_initialise_clients(struct adv748x_state *state) + int ret; + + for (i = ADV748X_PAGE_DPLL; i < ADV748X_PAGE_MAX; ++i) { +- state->i2c_clients[i] = +- adv748x_dummy_client(state, adv748x_i2c_addresses[i], +- ADV748X_IO_SLAVE_ADDR_BASE + i); ++ if((state->client->addr << 1) == 0xe0) { ++ state->i2c_clients[i] = ++ adv748x_dummy_client(state, adv748x_i2c_addresses[i], ++ ADV748X_IO_SLAVE_ADDR_BASE + i); ++ } else { ++ state->i2c_clients[i] = ++ adv748x_dummy_client(state, adv748x_i2c_addresses2[i], ++ ADV748X_IO_SLAVE_ADDR_BASE + i); ++ } ++ + if (state->i2c_clients[i] == NULL) { + adv_err(state, "failed to create i2c client %u\n", i); + return -ENOMEM; +@@ -508,6 +530,20 @@ static const struct adv748x_reg_value adv748x_set_slave_address[] = { + {ADV748X_PAGE_EOR, 0xff, 0xff} /* End of register table */ + }; + ++static const struct adv748x_reg_value adv748x_set_slave_address2[] = { ++ {ADV748X_PAGE_IO, 0xf3, ADV748X_I2C_DPLL2 << 1}, ++ {ADV748X_PAGE_IO, 0xf4, ADV748X_I2C_CP2 << 1}, ++ {ADV748X_PAGE_IO, 0xf5, ADV748X_I2C_HDMI2 << 1}, ++ {ADV748X_PAGE_IO, 0xf6, ADV748X_I2C_EDID2 << 1}, ++ {ADV748X_PAGE_IO, 0xf7, ADV748X_I2C_REPEATER2 << 1}, ++ {ADV748X_PAGE_IO, 0xf8, ADV748X_I2C_INFOFRAME2 << 1}, ++ {ADV748X_PAGE_IO, 0xfa, ADV748X_I2C_CEC2 << 1}, ++ {ADV748X_PAGE_IO, 0xfb, ADV748X_I2C_SDP2 << 1}, ++ {ADV748X_PAGE_IO, 0xfc, ADV748X_I2C_TXB2 << 1}, ++ {ADV748X_PAGE_IO, 0xfd, ADV748X_I2C_TXA2 << 1}, ++ {ADV748X_PAGE_EOR, 0xff, 0xff} /* End of register table */ ++}; ++ + /* Supported Formats For Script Below */ + /* - 01-29 HDMI to MIPI TxA CSI 4-Lane - RGB888: */ + static const struct adv748x_reg_value adv748x_init_txa_4lane[] = { +@@ -683,7 +719,11 @@ static int adv748x_reset(struct adv748x_state *state) + if (ret < 0) + return ret; + +- ret = adv748x_write_regs(state, adv748x_set_slave_address); ++ if((state->client->addr << 1) == 0xe0) { ++ ret = adv748x_write_regs(state, adv748x_set_slave_address); //i2c address 0x70 ++ } else { ++ ret = adv748x_write_regs(state, adv748x_set_slave_address2); //i2c address 0x71 ++ } + if (ret < 0) + return ret; + +diff --git a/drivers/media/i2c/adv748x/adv748x.h b/drivers/media/i2c/adv748x/adv748x.h +index fb30bfa..ac50a9e 100644 +--- a/drivers/media/i2c/adv748x/adv748x.h ++++ b/drivers/media/i2c/adv748x/adv748x.h +@@ -40,6 +40,18 @@ + #define ADV748X_I2C_TXB 0x48 /* CSI-TXB Map */ + #define ADV748X_I2C_TXA 0x4a /* CSI-TXA Map */ + ++#define ADV748X_I2C_IO2 0x71 /* IO Map */ ++#define ADV748X_I2C_DPLL2 0x27 /* DPLL Map */ ++#define ADV748X_I2C_CP2 0x23 /* CP Map */ ++#define ADV748X_I2C_HDMI2 0x35 /* HDMI Map */ ++#define ADV748X_I2C_EDID2 0x37 /* EDID Map */ ++#define ADV748X_I2C_REPEATER2 0x33 /* HDMI RX Repeater Map */ ++#define ADV748X_I2C_INFOFRAME2 0x30 /* HDMI RX InfoFrame Map */ ++#define ADV748X_I2C_CEC2 0x42 /* CEC Map */ ++#define ADV748X_I2C_SDP2 0x78 /* SDP Map */ ++#define ADV748X_I2C_TXB2 0x49 /* CSI-TXB Map */ ++#define ADV748X_I2C_TXA2 0x4b /* CSI-TXA Map */ ++ + enum adv748x_page { + ADV748X_PAGE_IO, + ADV748X_PAGE_DPLL, +diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7795.c b/drivers/pinctrl/sh-pfc/pfc-r8a7795.c +index 3ebe8de..546761c 100644 +--- a/drivers/pinctrl/sh-pfc/pfc-r8a7795.c ++++ b/drivers/pinctrl/sh-pfc/pfc-r8a7795.c +@@ -3912,7 +3912,7 @@ static const unsigned int tmu_tclk2_b_mux[] = { + /* - USB0 ------------------------------------------------------------------- */ + static const unsigned int usb0_pins[] = { + /* PWEN, OVC */ +- RCAR_GP_PIN(6, 24), RCAR_GP_PIN(6, 25), ++ RCAR_GP_PIN(6, 24), + }; + static const unsigned int usb0_mux[] = { + USB0_PWEN_MARK, USB0_OVC_MARK, +@@ -3920,7 +3920,7 @@ static const unsigned int usb0_mux[] = { + /* - USB1 ------------------------------------------------------------------- */ + static const unsigned int usb1_pins[] = { + /* PWEN, OVC */ +- RCAR_GP_PIN(6, 26), RCAR_GP_PIN(6, 27), ++ RCAR_GP_PIN(6, 27), + }; + static const unsigned int usb1_mux[] = { + USB1_PWEN_MARK, USB1_OVC_MARK, +@@ -3936,7 +3936,7 @@ static const unsigned int usb2_mux[] = { + /* - USB2_CH3 --------------------------------------------------------------- */ + static const unsigned int usb2_ch3_pins[] = { + /* PWEN, OVC */ +- RCAR_GP_PIN(6, 30), RCAR_GP_PIN(6, 31), ++ RCAR_GP_PIN(6, 30), + }; + static const unsigned int usb2_ch3_mux[] = { + USB2_CH3_PWEN_MARK, USB2_CH3_OVC_MARK, +-- +2.7.4 + |