From 3b54c5af68a83e0b4b211232f65d73e0c0ded04f Mon Sep 17 00:00:00 2001 From: Vladimir Barinov Date: Thu, 27 Jul 2017 16:19:01 +0300 Subject: LVDS: optional compilation for Cogent firmware This allows to use Cogent generated frimware for LVDS cameras (ov490+0v10640). --- .../0040-arm64-dts-renesas-add-ADAS-boards.patch | 123 +++++++++++++++++---- .../0043-media-ov490-disable-stats-rows.patch | 28 +++++ .../linux/linux-renesas_4.9.bbappend | 1 + 3 files changed, 130 insertions(+), 22 deletions(-) create mode 100644 meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0043-media-ov490-disable-stats-rows.patch diff --git a/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0040-arm64-dts-renesas-add-ADAS-boards.patch b/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0040-arm64-dts-renesas-add-ADAS-boards.patch index bc15c75..d3fefb4 100644 --- a/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0040-arm64-dts-renesas-add-ADAS-boards.patch +++ b/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0040-arm64-dts-renesas-add-ADAS-boards.patch @@ -31,20 +31,20 @@ Signed-off-by: Vladimir Barinov .../boot/dts/renesas/r8a7795-h3ulcb-had-alfa.dts | 22 + .../boot/dts/renesas/r8a7795-h3ulcb-had-beta.dts | 23 + .../arm64/boot/dts/renesas/r8a7795-h3ulcb-had.dtsi | 219 +++ - .../boot/dts/renesas/r8a7795-h3ulcb-kf-v1.dts | 445 +++++ - arch/arm64/boot/dts/renesas/r8a7795-h3ulcb-kf.dts | 1703 +++++++++++++++++++ + .../boot/dts/renesas/r8a7795-h3ulcb-kf-v1.dts | 469 +++++ + arch/arm64/boot/dts/renesas/r8a7795-h3ulcb-kf.dts | 1712 +++++++++++++++++++ arch/arm64/boot/dts/renesas/r8a7795-h3ulcb-vb.dts | 1787 ++++++++++++++++++++ .../arm64/boot/dts/renesas/r8a7795-h3ulcb-view.dts | 546 ++++++ .../boot/dts/renesas/r8a7795-salvator-x-view.dts | 552 ++++++ - .../boot/dts/renesas/r8a7796-m3ulcb-kf-v1.dts | 445 +++++ - arch/arm64/boot/dts/renesas/r8a7796-m3ulcb-kf.dts | 1267 ++++++++++++++ + .../boot/dts/renesas/r8a7796-m3ulcb-kf-v1.dts | 469 +++++ + arch/arm64/boot/dts/renesas/r8a7796-m3ulcb-kf.dts | 1284 ++++++++++++++ .../arm64/boot/dts/renesas/r8a7796-m3ulcb-view.dts | 287 ++++ .../boot/dts/renesas/r8a7796-salvator-x-view.dts | 318 ++++ arch/arm64/boot/dts/renesas/ulcb-kf-cmos.dtsi | 75 + arch/arm64/boot/dts/renesas/ulcb-kf-rpi.dtsi | 75 + - arch/arm64/boot/dts/renesas/ulcb-kf-sd3.dtsi | 33 + + arch/arm64/boot/dts/renesas/ulcb-kf-sd3.dtsi | 44 + arch/arm64/boot/dts/renesas/ulcb-vb-cn12.dtsi | 515 ++++++ - 25 files changed, 13633 insertions(+) + 25 files changed, 13718 insertions(+) create mode 100644 arch/arm64/boot/dts/renesas/r8a7795-es1-h3ulcb-had-alfa.dts create mode 100644 arch/arm64/boot/dts/renesas/r8a7795-es1-h3ulcb-had-beta.dts create mode 100644 arch/arm64/boot/dts/renesas/r8a7795-es1-h3ulcb-had.dtsi @@ -5733,10 +5733,10 @@ index 0000000..4a00426 +}; diff --git a/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb-kf-v1.dts b/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb-kf-v1.dts new file mode 100644 -index 0000000..fc613d2 +index 0000000..f3e5bda --- /dev/null +++ b/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb-kf-v1.dts -@@ -0,0 +1,445 @@ +@@ -0,0 +1,469 @@ +/* + * Device Tree Source for the H3ULCB Kingfisher V1 board + * @@ -5819,6 +5819,25 @@ index 0000000..fc613d2 + regulator-always-on; + }; + ++ mpcie_3v3: regulator@12 { ++ compatible = "regulator-fixed"; ++ regulator-name = "mPCIe 3v3"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ gpio = <&gpio_ext_77 14 GPIO_ACTIVE_HIGH>; ++ enable-active-high; ++ }; ++ ++ mpcie_1v8: regulator@13 { ++ compatible = "regulator-fixed"; ++ regulator-name = "mPCIe 1v8"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ gpio = <&gpio_ext_77 15 GPIO_ACTIVE_HIGH>; ++ startup-delay-us = <200000>; ++ enable-active-high; ++ }; ++ + kim { + nshutdown_gpio = <343>; /* gpio_ext_74 pin 3 */ + }; @@ -6182,12 +6201,17 @@ index 0000000..fc613d2 +&wlcore { + interrupts = <25 IRQ_TYPE_EDGE_FALLING>; +}; ++ ++&pciec1 { ++ pcie3v3-supply = <&mpcie_3v3>; ++ pcie1v8-supply = <&mpcie_1v8>; ++}; diff --git a/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb-kf.dts b/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb-kf.dts new file mode 100644 -index 0000000..c0481dc +index 0000000..71e8881 --- /dev/null +++ b/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb-kf.dts -@@ -0,0 +1,1703 @@ +@@ -0,0 +1,1712 @@ +/* + * Device Tree Source for the H3ULCB Kingfisher board on r8a7795 + * @@ -6232,7 +6256,9 @@ index 0000000..c0481dc + regulator-name = "SDHI3 Vcc"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; -+ regulator-always-on; ++ ++ gpio = <&gpio4 17 GPIO_ACTIVE_HIGH>; ++ enable-active-high; + }; + + vccq_sdhi3: regulator@5 { @@ -6455,6 +6481,12 @@ index 0000000..c0481dc + power-source = <3300>; + }; + ++ sdhi3_pins_1v8: sd3_1v8 { ++ groups = "sdhi3_data4", "sdhi3_ctrl"; ++ function = "sdhi3"; ++ power-source = <1800>; ++ }; ++ + sound_0_pins: sound0 { + groups = "ssi78_ctrl", "ssi7_data", "ssi8_data"; + function = "ssi"; @@ -7805,7 +7837,8 @@ index 0000000..c0481dc + +&sdhi3 { + pinctrl-0 = <&sdhi3_pins_3v3>; -+ pinctrl-names = "default"; ++ pinctrl-1 = <&sdhi3_pins_1v8>; ++ pinctrl-names = "default", "state_uhs"; + + vmmc-supply = <&wlan_en>; + vqmmc-supply = <&vccq_sdhi3>; @@ -10796,10 +10829,10 @@ index 0000000..fb12a39f3 +}; diff --git a/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb-kf-v1.dts b/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb-kf-v1.dts new file mode 100644 -index 0000000..202af9c +index 0000000..9264680 --- /dev/null +++ b/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb-kf-v1.dts -@@ -0,0 +1,445 @@ +@@ -0,0 +1,469 @@ +/* + * Device Tree Source for the M3ULCB Kingfisher V1 board + * @@ -10882,6 +10915,25 @@ index 0000000..202af9c + regulator-always-on; + }; + ++ mpcie_3v3: regulator@12 { ++ compatible = "regulator-fixed"; ++ regulator-name = "mPCIe 3v3"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ gpio = <&gpio_ext_77 14 GPIO_ACTIVE_HIGH>; ++ enable-active-high; ++ }; ++ ++ mpcie_1v8: regulator@13 { ++ compatible = "regulator-fixed"; ++ regulator-name = "mPCIe 1v8"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ gpio = <&gpio_ext_77 15 GPIO_ACTIVE_HIGH>; ++ startup-delay-us = <200000>; ++ enable-active-high; ++ }; ++ + kim { + nshutdown_gpio = <343>; /* gpio_ext_74 pin 3 */ + }; @@ -11245,12 +11297,17 @@ index 0000000..202af9c +&wlcore { + interrupts = <25 IRQ_TYPE_EDGE_FALLING>; +}; ++ ++&pciec1 { ++ pcie3v3-supply = <&mpcie_3v3>; ++ pcie1v8-supply = <&mpcie_1v8>; ++}; diff --git a/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb-kf.dts b/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb-kf.dts new file mode 100644 -index 0000000..e5aaa88 +index 0000000..5a6c38b --- /dev/null +++ b/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb-kf.dts -@@ -0,0 +1,1273 @@ +@@ -0,0 +1,1284 @@ +/* + * Device Tree Source for the M3ULCB Kingfisher board on r8a7796 + * @@ -11295,7 +11352,9 @@ index 0000000..e5aaa88 + regulator-name = "SDHI3 Vcc"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; -+ regulator-always-on; ++ ++ gpio = <&gpio4 17 GPIO_ACTIVE_HIGH>; ++ enable-active-high; + }; + + vccq_sdhi3: regulator@5 { @@ -11518,6 +11577,12 @@ index 0000000..e5aaa88 + power-source = <3300>; + }; + ++ sdhi3_pins_1v8: sd3_1v8 { ++ groups = "sdhi3_data4", "sdhi3_ctrl"; ++ function = "sdhi3"; ++ power-source = <1800>; ++ }; ++ + sound_0_pins: sound0 { + groups = "ssi78_ctrl", "ssi7_data", "ssi8_data"; + function = "ssi"; @@ -12436,7 +12501,8 @@ index 0000000..e5aaa88 + +&sdhi3 { + pinctrl-0 = <&sdhi3_pins_3v3>; -+ pinctrl-names = "default"; ++ pinctrl-1 = <&sdhi3_pins_1v8>; ++ pinctrl-names = "default", "state_uhs"; + + vmmc-supply = <&wlan_en>; + vqmmc-supply = <&vccq_sdhi3>; @@ -12522,6 +12588,8 @@ index 0000000..e5aaa88 + +/* uncomment to enable CN47: SD on SDHI3 */ +//#include "ulcb-kf-sd3.dtsi" ++/* CN48 (Raspberry Pi) on VIN4 */ ++#include "ulcb-kf-rpi.dtsi" +/* CN29: (CMOS camera) on VIN5 */ +#include "ulcb-kf-cmos.dtsi" diff --git a/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb-view.dts b/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb-view.dts @@ -13305,10 +13373,10 @@ index 0000000..d3b4ece +}; diff --git a/arch/arm64/boot/dts/renesas/ulcb-kf-sd3.dtsi b/arch/arm64/boot/dts/renesas/ulcb-kf-sd3.dtsi new file mode 100644 -index 0000000..ef481d3 +index 0000000..216e800 --- /dev/null +++ b/arch/arm64/boot/dts/renesas/ulcb-kf-sd3.dtsi -@@ -0,0 +1,33 @@ +@@ -0,0 +1,44 @@ +/* + * Device Tree Source for the H3/M3ULCB Kingfisher board: + * this overrides WIFI in favour SD on SDHI3 @@ -13326,15 +13394,26 @@ index 0000000..ef481d3 + enable-active-high; +}; + ++&vccq_sdhi3 { ++ compatible = "regulator-gpio"; ++ ++ regulator-min-microvolt = <1800000>; ++ ++ gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>; ++ gpios-states = <1>; ++ states = <3300000 1 ++ 1800000 0>; ++}; ++ +&sdhi3 { + /delete-property/non-removable; + /delete-property/cap-power-off-card; + /delete-property/keep-power-in-suspend; + /delete-property/enable-sdio-wakeup; -+ /delete-property/sd-uhs-sdr104; ++ /delete-property/max-frequency; ++ /delete-property/no-1-8-v; + + vmmc-supply = <&vcc_sdhi3>; -+ max-frequency = <46000000>; + cd-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>; + wp-gpios = <&gpio4 16 GPIO_ACTIVE_HIGH>; +}; diff --git a/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0043-media-ov490-disable-stats-rows.patch b/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0043-media-ov490-disable-stats-rows.patch new file mode 100644 index 0000000..a1d1f0d --- /dev/null +++ b/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0043-media-ov490-disable-stats-rows.patch @@ -0,0 +1,28 @@ +From 93c918815a618bd799e7c8a40a17da2282c4b23c Mon Sep 17 00:00:00 2001 +From: Vladimir Barinov +Date: Wed, 26 Jul 2017 21:03:34 +0300 +Subject: [PATCH] media: ov490: disable stats rows + +This is needed if Cogent generated firmware used + +Signed-off-by: Vladimir Barinov +--- + drivers/media/i2c/soc_camera/ov490_ov10640.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/media/i2c/soc_camera/ov490_ov10640.h b/drivers/media/i2c/soc_camera/ov490_ov10640.h +index dde81ef..0f5b657 100644 +--- a/drivers/media/i2c/soc_camera/ov490_ov10640.h ++++ b/drivers/media/i2c/soc_camera/ov490_ov10640.h +@@ -35,7 +35,7 @@ static const struct ov490_reg ov490_regs_wizard[] = { + {0x5000, 0x00}, + {0x5001, 0x30}, + {0x5002, 0x91}, +-{0x5003, 0x08}, ++{0x5003, 0x00}, + {0xfffe, 0x80}, + {0x00c0, 0xc1}, + /* Ov490 FSIN: app_fsin_from_fsync */ +-- +1.9.1 + diff --git a/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas_4.9.bbappend b/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas_4.9.bbappend index 5cae1e5..ef06f5b 100644 --- a/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas_4.9.bbappend +++ b/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas_4.9.bbappend @@ -39,6 +39,7 @@ SRC_URI_append = " \ file://0040-arm64-dts-renesas-add-ADAS-boards.patch \ file://0041-arm64-dts-renesas-ulcb-enlarge-cma-region.patch \ file://0042-arm64-dts-renesas-r8a7795-es1-h3ulcb-disable-eMMC.patch \ + ${@base_conditional("LVDSCAMERA_USE_COGENT_FIRMWARE", "1", " file://0043-media-ov490-disable-stats-rows.patch", "", d)} \ ${@base_conditional("LVDSCAMERA_FIRST4_TYPE1", "1", " file://0050-arm64-dts-Gen3-view-boards-TYPE1-first-4-cameras.patch", "", d)} \ ${@base_conditional("LVDSCAMERA_SECOND4_TYPE1", "1", " file://0051-arm64-dts-Gen3-view-boards-TYPE1-second-4-cameras.patch", "", d)} \ ${@base_conditional("LVDSCAMERA_FIRST4_TYPE2", "1", " file://0052-arm64-dts-Gen3-view-boards-TYPE2-first-4-cameras.patch", "", d)} \ -- cgit 1.2.3-korg