summaryrefslogtreecommitdiffstats
path: root/meta-agl-refhw-gen3/recipes-kernel/linux/files/0002-agl-reference-hardware-sample-bsp.patch
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2020-10-21 18:04:18 -0400
committerScott Murray <scott.murray@konsulko.com>2020-10-21 18:21:39 -0400
commit5b115837394e7a408638c0d46cde1b689d03832f (patch)
tree242c4e67bcd8f74b37c85dd3b28a3a677d95470f /meta-agl-refhw-gen3/recipes-kernel/linux/files/0002-agl-reference-hardware-sample-bsp.patch
parent6c4f90cb4b4175b7256baa04f82bb12c811fe5af (diff)
Rework for AGL UCB integration
Changes include: - The provided kernel patches have been reworked to not modify the salvator-x(s) devicetree source, but to introduce new files for the reference hardware instead. There is some possibility that the reference hardware devicetree could be based off the the salvator-x with some work and perhaps splitting of the salvator-x source, but for now the aim is to avoid breaking the salvator-x(s) with the reference hardware changes. - The modifications to the r8a7795 pinctrl driver have been replaced with a splitting of the USB interface OVC pins into their own pin groups, which has previously been done for other older Renesas hardware. This allows booting the reference hardware off of the same kernel as other H3 boards, at the expense of minor devicetree modifications for them (e.g. h3ulcb). There is likely some more work required if this needs to be upstreamed, as the ulcb.dtsi changes would mean that the pinctrl drivers for M3 would also need the new pin groups. - All changes for the ST asm330lhh driver addtion have been moved to that patch to the kernel. - A machine conf file has been added for "agl-refhw-h3", and the firmware documentation updated to document how to set up a build of the firmware using it. This is required due to the firmware options from this layer's arm-trusted-firmware bbappend not being compatible with other H3 boards (eMMC versus Hyperflash boot). A definition of the COMPATIBLE_MACHINE variable has been added to that bbappend to make sure that attempting to use it with another H3 machine will trigger an error. In AGL, the bbappend will need to be masked out with BBMASK for now. - The top-level README file has been updated to reflect the expected integration in AGL. 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.patch846
1 files changed, 0 insertions, 846 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
deleted file mode 100644
index 6763558..0000000
--- a/meta-agl-refhw-gen3/recipes-kernel/linux/files/0002-agl-reference-hardware-sample-bsp.patch
+++ /dev/null
@@ -1,846 +0,0 @@
----
- .../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 = <&reg_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
-