diff --git a/arch/arm64/boot/dts/amlogic/s6_s905d5_bq201.dts b/arch/arm64/boot/dts/amlogic/s6_s905d5_bq201.dts index 1d1bb50e8..df1197f94 100644 --- a/arch/arm64/boot/dts/amlogic/s6_s905d5_bq201.dts +++ b/arch/arm64/boot/dts/amlogic/s6_s905d5_bq201.dts @@ -211,6 +211,12 @@ linux,cma-default; alloc-ranges = <0x0 0x30000000>; }; + vm0_cma_reserved:linux,vm0_cma { + compatible = "shared-dma-pool"; + reusable; + size = <0x0 0x2000000>; + alignment = <0x0 0x400000>; + }; }; codec_mm { compatible = "amlogic, codec, mm"; @@ -544,6 +550,64 @@ cma_mode = <1>; }; + vm0 { + compatible = "amlogic, vm"; + memory-region = <&vm0_cma_reserved>; + dev_name = "vm0"; + status = "okay"; + vm_id = <0>; + }; + + aml_cams { + compatible = "amlogic, cams_prober-s6"; + status = "okay"; + + // using cm_mclk_0 24M + clocks = <&clkc CLKID_MCLK0>; + clock-names = "mclk0"; + + cam_0{ + cam_name = "ov5640"; + front_back = <0>; + camera-i2c-bus = <&i2c5>; + gpio_pwdn-gpios = <&gpio GPIOX_5 GPIO_ACTIVE_HIGH>; + gpio_rst-gpios = <&gpio GPIOX_4 GPIO_ACTIVE_HIGH>; + mirror_flip = <1>; + vertical_flip = <1>; + spread_spectrum = <0>; + bt_path = "csi"; + interface = "mipi"; + clk_channel = "a"; + bt_path_count = <1>; + status = "okay"; + }; + }; + + amvdec_csi { + compatible = "amlogic, amvdec_csi-s6"; + status = "okay"; + csi_id = <0>; + squlech_mode = <1>; + deskew_mode = <0>; + reg = <0x0 0xfe014000 0x0 0x00000100>, + <0x0 0xfe016000 0x0 0x00000100>, + <0x0 0xfe018000 0x0 0x00000100>; + reg-names = "csi_phy", "csi_host", "csi_adapt"; + + clocks = <&clkc CLKID_CSI2_ADAPT>, + <&clkc CLKID_MIPI_CSI_PHY_0>; + clock-names = "cts_csi_adapt_clk_composite", + "cts_csi_phy_clk_composite"; + + // depends on power domain. ID expect to be PDID_S6_CSI2_ADAPT + // maybe. always on; need to be tested. + //power-domains = <&pwrdm PDID_S6_CSI2_ADAPT>; + + // 88 for csi2_adap_int + interrupts = ; + interrupt-names = "csi_phy"; + }; + ppmgr { compatible = "amlogic, ppmgr"; memory-region = <&ppmgr_reserved>; @@ -823,6 +887,17 @@ clock-frequency = <300000>; }; +&i2c5 { + status = "okay"; + pinctrl-names="default"; + pinctrl-0=<&i2c5_pins3>; + clock-frequency = <100000>; + ov5640@3c { + compatible = "ov5640"; + reg = <0x3c>; + }; +}; + &i2c0 { status = "okay"; pinctrl-names="default"; diff --git a/arch/arm64/boot/dts/amlogic/s6_s905d5_bq208.dts b/arch/arm64/boot/dts/amlogic/s6_s905d5_bq208.dts index 59549c65b..f539f516a 100644 --- a/arch/arm64/boot/dts/amlogic/s6_s905d5_bq208.dts +++ b/arch/arm64/boot/dts/amlogic/s6_s905d5_bq208.dts @@ -211,6 +211,12 @@ linux,cma-default; alloc-ranges = <0x0 0x30000000>; }; + vm0_cma_reserved:linux,vm0_cma { + compatible = "shared-dma-pool"; + reusable; + size = <0x0 0x2000000>; + alignment = <0x0 0x400000>; + }; }; codec_mm { compatible = "amlogic, codec, mm"; @@ -544,6 +550,64 @@ cma_mode = <1>; }; + vm0 { + compatible = "amlogic, vm"; + memory-region = <&vm0_cma_reserved>; + dev_name = "vm0"; + status = "okay"; + vm_id = <0>; + }; + + aml_cams { + compatible = "amlogic, cams_prober-s6"; + status = "okay"; + + // using cm_mclk_0 24M + clocks = <&clkc CLKID_MCLK0>; + clock-names = "mclk0"; + + cam_0{ + cam_name = "ov5640"; + front_back = <0>; + camera-i2c-bus = <&i2c5>; + gpio_pwdn-gpios = <&gpio GPIOX_5 GPIO_ACTIVE_HIGH>; + gpio_rst-gpios = <&gpio GPIOX_4 GPIO_ACTIVE_HIGH>; + mirror_flip = <1>; + vertical_flip = <1>; + spread_spectrum = <0>; + bt_path = "csi"; + interface = "mipi"; + clk_channel = "a"; + bt_path_count = <1>; + status = "okay"; + }; + }; + + amvdec_csi { + compatible = "amlogic, amvdec_csi-s6"; + status = "okay"; + csi_id = <0>; + squlech_mode = <1>; + deskew_mode = <0>; + reg = <0x0 0xfe014000 0x0 0x00000100>, + <0x0 0xfe016000 0x0 0x00000100>, + <0x0 0xfe018000 0x0 0x00000100>; + reg-names = "csi_phy", "csi_host", "csi_adapt"; + + clocks = <&clkc CLKID_CSI2_ADAPT>, + <&clkc CLKID_MIPI_CSI_PHY_0>; + clock-names = "cts_csi_adapt_clk_composite", + "cts_csi_phy_clk_composite"; + + // depends on power domain. ID expect to be PDID_S6_CSI2_ADAPT + // maybe. always on; need to be tested. + //power-domains = <&pwrdm PDID_S6_CSI2_ADAPT>; + + // 88 for csi2_adap_int + interrupts = ; + interrupt-names = "csi_phy"; + }; + ppmgr { compatible = "amlogic, ppmgr"; memory-region = <&ppmgr_reserved>; @@ -810,6 +874,17 @@ clock-frequency = <300000>; }; +&i2c5 { + status = "okay"; + pinctrl-names="default"; + pinctrl-0=<&i2c5_pins3>; + clock-frequency = <100000>; + ov5640@3c { + compatible = "ov5640"; + reg = <0x3c>; + }; +}; + &i2c1 { status = "disabled"; pinctrl-names="default"; diff --git a/arch/arm64/boot/dts/amlogic/s6_s905d5_bq209.dts b/arch/arm64/boot/dts/amlogic/s6_s905d5_bq209.dts index 17e04728e..4214aa941 100644 --- a/arch/arm64/boot/dts/amlogic/s6_s905d5_bq209.dts +++ b/arch/arm64/boot/dts/amlogic/s6_s905d5_bq209.dts @@ -211,6 +211,12 @@ linux,cma-default; alloc-ranges = <0x0 0x30000000>; }; + vm0_cma_reserved:linux,vm0_cma { + compatible = "shared-dma-pool"; + reusable; + size = <0x0 0x2000000>; + alignment = <0x0 0x400000>; + }; }; codec_mm { compatible = "amlogic, codec, mm"; @@ -544,6 +550,64 @@ cma_mode = <1>; }; + vm0 { + compatible = "amlogic, vm"; + memory-region = <&vm0_cma_reserved>; + dev_name = "vm0"; + status = "okay"; + vm_id = <0>; + }; + + aml_cams { + compatible = "amlogic, cams_prober-s6"; + status = "okay"; + + // using cm_mclk_0 24M + clocks = <&clkc CLKID_MCLK0>; + clock-names = "mclk0"; + + cam_0{ + cam_name = "ov5640"; + front_back = <0>; + camera-i2c-bus = <&i2c5>; + gpio_pwdn-gpios = <&gpio GPIOX_5 GPIO_ACTIVE_HIGH>; + gpio_rst-gpios = <&gpio GPIOX_4 GPIO_ACTIVE_HIGH>; + mirror_flip = <1>; + vertical_flip = <1>; + spread_spectrum = <0>; + bt_path = "csi"; + interface = "mipi"; + clk_channel = "a"; + bt_path_count = <1>; + status = "okay"; + }; + }; + + amvdec_csi { + compatible = "amlogic, amvdec_csi-s6"; + status = "okay"; + csi_id = <0>; + squlech_mode = <1>; + deskew_mode = <0>; + reg = <0x0 0xfe014000 0x0 0x00000100>, + <0x0 0xfe016000 0x0 0x00000100>, + <0x0 0xfe018000 0x0 0x00000100>; + reg-names = "csi_phy", "csi_host", "csi_adapt"; + + clocks = <&clkc CLKID_CSI2_ADAPT>, + <&clkc CLKID_MIPI_CSI_PHY_0>; + clock-names = "cts_csi_adapt_clk_composite", + "cts_csi_phy_clk_composite"; + + // depends on power domain. ID expect to be PDID_S6_CSI2_ADAPT + // maybe. always on; need to be tested. + //power-domains = <&pwrdm PDID_S6_CSI2_ADAPT>; + + // 88 for csi2_adap_int + interrupts = ; + interrupt-names = "csi_phy"; + }; + ppmgr { compatible = "amlogic, ppmgr"; memory-region = <&ppmgr_reserved>; @@ -810,6 +874,17 @@ clock-frequency = <300000>; }; +&i2c5 { + status = "okay"; + pinctrl-names="default"; + pinctrl-0=<&i2c5_pins3>; + clock-frequency = <100000>; + ov5640@3c { + compatible = "ov5640"; + reg = <0x3c>; + }; +}; + &i2c1 { status = "disabled"; pinctrl-names="default"; diff --git a/arch/arm64/boot/dts/amlogic/s6_s905x5_bl201.dts b/arch/arm64/boot/dts/amlogic/s6_s905x5_bl201.dts index 48f39b08c..3ffd61c20 100644 --- a/arch/arm64/boot/dts/amlogic/s6_s905x5_bl201.dts +++ b/arch/arm64/boot/dts/amlogic/s6_s905x5_bl201.dts @@ -211,6 +211,12 @@ linux,cma-default; alloc-ranges = <0x0 0x30000000>; }; + vm0_cma_reserved:linux,vm0_cma { + compatible = "shared-dma-pool"; + reusable; + size = <0x0 0x2000000>; + alignment = <0x0 0x400000>; + }; }; codec_mm { compatible = "amlogic, codec, mm"; @@ -544,6 +550,64 @@ cma_mode = <1>; }; + vm0 { + compatible = "amlogic, vm"; + memory-region = <&vm0_cma_reserved>; + dev_name = "vm0"; + status = "okay"; + vm_id = <0>; + }; + + aml_cams { + compatible = "amlogic, cams_prober-s6"; + status = "okay"; + + // using cm_mclk_0 24M + clocks = <&clkc CLKID_MCLK0>; + clock-names = "mclk0"; + + cam_0{ + cam_name = "ov5640"; + front_back = <0>; + camera-i2c-bus = <&i2c5>; + gpio_pwdn-gpios = <&gpio GPIOX_5 GPIO_ACTIVE_HIGH>; + gpio_rst-gpios = <&gpio GPIOX_4 GPIO_ACTIVE_HIGH>; + mirror_flip = <1>; + vertical_flip = <1>; + spread_spectrum = <0>; + bt_path = "csi"; + interface = "mipi"; + clk_channel = "a"; + bt_path_count = <1>; + status = "okay"; + }; + }; + + amvdec_csi { + compatible = "amlogic, amvdec_csi-s6"; + status = "okay"; + csi_id = <0>; + squlech_mode = <1>; + deskew_mode = <0>; + reg = <0x0 0xfe014000 0x0 0x00000100>, + <0x0 0xfe016000 0x0 0x00000100>, + <0x0 0xfe018000 0x0 0x00000100>; + reg-names = "csi_phy", "csi_host", "csi_adapt"; + + clocks = <&clkc CLKID_CSI2_ADAPT>, + <&clkc CLKID_MIPI_CSI_PHY_0>; + clock-names = "cts_csi_adapt_clk_composite", + "cts_csi_phy_clk_composite"; + + // depends on power domain. ID expect to be PDID_S6_CSI2_ADAPT + // maybe. always on; need to be tested. + //power-domains = <&pwrdm PDID_S6_CSI2_ADAPT>; + + // 88 for csi2_adap_int + interrupts = ; + interrupt-names = "csi_phy"; + }; + ppmgr { compatible = "amlogic, ppmgr"; memory-region = <&ppmgr_reserved>; diff --git a/arch/arm64/boot/dts/amlogic/s6_s905x5_bl208.dts b/arch/arm64/boot/dts/amlogic/s6_s905x5_bl208.dts index 1b35f79bf..cb01e1804 100644 --- a/arch/arm64/boot/dts/amlogic/s6_s905x5_bl208.dts +++ b/arch/arm64/boot/dts/amlogic/s6_s905x5_bl208.dts @@ -211,6 +211,12 @@ linux,cma-default; alloc-ranges = <0x0 0x30000000>; }; + vm0_cma_reserved:linux,vm0_cma { + compatible = "shared-dma-pool"; + reusable; + size = <0x0 0x2000000>; + alignment = <0x0 0x400000>; + }; }; codec_mm { compatible = "amlogic, codec, mm"; @@ -544,6 +550,64 @@ cma_mode = <1>; }; + vm0 { + compatible = "amlogic, vm"; + memory-region = <&vm0_cma_reserved>; + dev_name = "vm0"; + status = "okay"; + vm_id = <0>; + }; + + aml_cams { + compatible = "amlogic, cams_prober-s6"; + status = "okay"; + + // using cm_mclk_0 24M + clocks = <&clkc CLKID_MCLK0>; + clock-names = "mclk0"; + + cam_0{ + cam_name = "ov5640"; + front_back = <0>; + camera-i2c-bus = <&i2c5>; + gpio_pwdn-gpios = <&gpio GPIOX_5 GPIO_ACTIVE_HIGH>; + gpio_rst-gpios = <&gpio GPIOX_4 GPIO_ACTIVE_HIGH>; + mirror_flip = <1>; + vertical_flip = <1>; + spread_spectrum = <0>; + bt_path = "csi"; + interface = "mipi"; + clk_channel = "a"; + bt_path_count = <1>; + status = "okay"; + }; + }; + + amvdec_csi { + compatible = "amlogic, amvdec_csi-s6"; + status = "okay"; + csi_id = <0>; + squlech_mode = <1>; + deskew_mode = <0>; + reg = <0x0 0xfe014000 0x0 0x00000100>, + <0x0 0xfe016000 0x0 0x00000100>, + <0x0 0xfe018000 0x0 0x00000100>; + reg-names = "csi_phy", "csi_host", "csi_adapt"; + + clocks = <&clkc CLKID_CSI2_ADAPT>, + <&clkc CLKID_MIPI_CSI_PHY_0>; + clock-names = "cts_csi_adapt_clk_composite", + "cts_csi_phy_clk_composite"; + + // depends on power domain. ID expect to be PDID_S6_CSI2_ADAPT + // maybe. always on; need to be tested. + //power-domains = <&pwrdm PDID_S6_CSI2_ADAPT>; + + // 88 for csi2_adap_int + interrupts = ; + interrupt-names = "csi_phy"; + }; + ppmgr { compatible = "amlogic, ppmgr"; memory-region = <&ppmgr_reserved>; @@ -952,6 +1016,17 @@ clock-frequency = <300000>; }; +&i2c5 { + status = "okay"; + pinctrl-names="default"; + pinctrl-0=<&i2c5_pins3>; + clock-frequency = <100000>; + ov5640@3c { + compatible = "ov5640"; + reg = <0x3c>; + }; +}; + &i2c1 { status = "disabled"; pinctrl-names="default"; diff --git a/arch/arm64/boot/dts/amlogic/s6_s905x5_bl209.dts b/arch/arm64/boot/dts/amlogic/s6_s905x5_bl209.dts index e7c477f91..f69e48581 100644 --- a/arch/arm64/boot/dts/amlogic/s6_s905x5_bl209.dts +++ b/arch/arm64/boot/dts/amlogic/s6_s905x5_bl209.dts @@ -211,6 +211,12 @@ linux,cma-default; alloc-ranges = <0x0 0x30000000>; }; + vm0_cma_reserved:linux,vm0_cma { + compatible = "shared-dma-pool"; + reusable; + size = <0x0 0x2000000>; + alignment = <0x0 0x400000>; + }; }; codec_mm { compatible = "amlogic, codec, mm"; @@ -544,6 +550,64 @@ cma_mode = <1>; }; + vm0 { + compatible = "amlogic, vm"; + memory-region = <&vm0_cma_reserved>; + dev_name = "vm0"; + status = "okay"; + vm_id = <0>; + }; + + aml_cams { + compatible = "amlogic, cams_prober-s6"; + status = "okay"; + + // using cm_mclk_0 24M + clocks = <&clkc CLKID_MCLK0>; + clock-names = "mclk0"; + + cam_0{ + cam_name = "ov5640"; + front_back = <0>; + camera-i2c-bus = <&i2c5>; + gpio_pwdn-gpios = <&gpio GPIOX_5 GPIO_ACTIVE_HIGH>; + gpio_rst-gpios = <&gpio GPIOX_4 GPIO_ACTIVE_HIGH>; + mirror_flip = <1>; + vertical_flip = <1>; + spread_spectrum = <0>; + bt_path = "csi"; + interface = "mipi"; + clk_channel = "a"; + bt_path_count = <1>; + status = "okay"; + }; + }; + + amvdec_csi { + compatible = "amlogic, amvdec_csi-s6"; + status = "okay"; + csi_id = <0>; + squlech_mode = <1>; + deskew_mode = <0>; + reg = <0x0 0xfe014000 0x0 0x00000100>, + <0x0 0xfe016000 0x0 0x00000100>, + <0x0 0xfe018000 0x0 0x00000100>; + reg-names = "csi_phy", "csi_host", "csi_adapt"; + + clocks = <&clkc CLKID_CSI2_ADAPT>, + <&clkc CLKID_MIPI_CSI_PHY_0>; + clock-names = "cts_csi_adapt_clk_composite", + "cts_csi_phy_clk_composite"; + + // depends on power domain. ID expect to be PDID_S6_CSI2_ADAPT + // maybe. always on; need to be tested. + //power-domains = <&pwrdm PDID_S6_CSI2_ADAPT>; + + // 88 for csi2_adap_int + interrupts = ; + interrupt-names = "csi_phy"; + }; + ppmgr { compatible = "amlogic, ppmgr"; memory-region = <&ppmgr_reserved>; @@ -962,6 +1026,17 @@ clock-frequency = <300000>; }; +&i2c5 { + status = "okay"; + pinctrl-names="default"; + pinctrl-0=<&i2c5_pins3>; + clock-frequency = <100000>; + ov5640@3c { + compatible = "ov5640"; + reg = <0x3c>; + }; +}; + &i2c1 { status = "disabled"; pinctrl-names="default";