aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLCPD Auto Merger2023-04-07 04:34:04 -0500
committerLCPD Auto Merger2023-04-07 04:34:04 -0500
commit991c5ce91e43cb620f534dc9fe7b0ad21f4f4388 (patch)
tree670d43e51acfc9af7ed93cfd3d615e88778c6332
parent2c23e6c538c879e380401ae4b236f54020618eaa (diff)
parenta11b43647f65c78ab86e9eb4a951a24bfd04a36f (diff)
downloadti-linux-kernel-ti-linux-5.10.y.tar.gz
ti-linux-kernel-ti-linux-5.10.y.tar.xz
ti-linux-kernel-ti-linux-5.10.y.zip
TI-Feature: platform_base TI-Branch: platform-ti-linux-5.10.y * 'platform-ti-linux-5.10.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/platform: arm64: dts: ti: k3-j784s4-main: Use BCDMA channels for CSI arm64: dts: ti: k3-j784s4-main: Enable BCDMA instance for CSI2RX arm64: dts: ti: k3-j721s2-main: Use BCDMA channels for CSI arm64: dts: ti: k3-j721s2-main: Enable BCDMA instance for CSI2RX dmaengine: ti: k3-udma: Add support for J721S2 CSI BCDMA instance dt-bindings: dma: ti: Add bindings for J721S2 BCDMA Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
-rw-r--r--Documentation/devicetree/bindings/dma/ti/k3-bcdma.yaml22
-rw-r--r--arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi30
-rw-r--r--arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi37
-rw-r--r--drivers/dma/ti/k3-udma.c26
4 files changed, 98 insertions, 17 deletions
diff --git a/Documentation/devicetree/bindings/dma/ti/k3-bcdma.yaml b/Documentation/devicetree/bindings/dma/ti/k3-bcdma.yaml
index 8f2e6d8e23b4..0b5eab6be681 100644
--- a/Documentation/devicetree/bindings/dma/ti/k3-bcdma.yaml
+++ b/Documentation/devicetree/bindings/dma/ti/k3-bcdma.yaml
@@ -33,6 +33,7 @@ properties:
33 enum: 33 enum:
34 - ti,am62a-dmss-bcdma-csirx 34 - ti,am62a-dmss-bcdma-csirx
35 - ti,am64-dmss-bcdma 35 - ti,am64-dmss-bcdma
36 - ti,j721s2-dmss-bcdma-csi
36 37
37 reg: 38 reg:
38 minItems: 3 39 minItems: 3
@@ -149,7 +150,28 @@ allOf:
149 150
150 required: 151 required:
151 - power-domains 152 - power-domains
153 - if:
154 properties:
155 compatible:
156 contains:
157 const: ti,j721s2-dmss-bcdma-csi
158 then:
159 properties:
160 ti,sci-rm-range-bchan: false
161
162 reg:
163 maxItems: 3
152 164
165 reg-names:
166 items:
167 - const: gcfg
168 - const: rchanrt
169 - const: tchanrt
170 - const: ringrt
171
172 required:
173 - ti,sci-rm-range-rchan
174 - ti,sci-rm-range-tchan
153 else: 175 else:
154 properties: 176 properties:
155 reg: 177 reg:
diff --git a/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi b/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi
index bd6b849fa14f..69216fe05787 100644
--- a/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi
@@ -538,6 +538,7 @@
538 ti,sci = <&sms>; 538 ti,sci = <&sms>;
539 ti,sci-dev-id = <265>; 539 ti,sci-dev-id = <265>;
540 ti,interrupt-ranges = <0 0 256>; 540 ti,interrupt-ranges = <0 0 256>;
541 ti,unmapped-event-sources = <&main_bcdma_csi>;
541 }; 542 };
542 543
543 secure_proxy_main: mailbox@32c00000 { 544 secure_proxy_main: mailbox@32c00000 {
@@ -809,6 +810,21 @@
809 ti,sci-rm-range-rflow = <0x00>; /* GP RFLOW */ 810 ti,sci-rm-range-rflow = <0x00>; /* GP RFLOW */
810 }; 811 };
811 812
813 main_bcdma_csi: dma-controller@311a0000 {
814 compatible = "ti,j721s2-dmss-bcdma-csi";
815 reg = <0x00 0x311a0000 0x00 0x100>,
816 <0x00 0x35d00000 0x00 0x20000>,
817 <0x00 0x35c00000 0x00 0x10000>,
818 <0x00 0x35e00000 0x00 0x80000>;
819 reg-names = "gcfg", "rchanrt", "tchanrt", "ringrt";
820 msi-parent = <&main_udmass_inta>;
821 #dma-cells = <3>;
822 ti,sci = <&sms>;
823 ti,sci-dev-id = <225>;
824 ti,sci-rm-range-rchan = <0x21>;
825 ti,sci-rm-range-tchan = <0x22>;
826 };
827
812 cpts@310d0000 { 828 cpts@310d0000 {
813 compatible = "ti,j721e-cpts"; 829 compatible = "ti,j721e-cpts";
814 reg = <0x0 0x310d0000 0x0 0x400>; 830 reg = <0x0 0x310d0000 0x0 0x400>;
@@ -1593,9 +1609,10 @@
1593 1609
1594 ti_csi2rx0: ticsi2rx@4500000 { 1610 ti_csi2rx0: ticsi2rx@4500000 {
1595 compatible = "ti,j721e-csi2rx"; 1611 compatible = "ti,j721e-csi2rx";
1596 dmas = <&main_udmap 0x4940>, <&main_udmap 0x4941>, <&main_udmap 0x4942>, 1612 dmas = <&main_bcdma_csi 0 0x4940 0>, <&main_bcdma_csi 0 0x4941 0>,
1597 <&main_udmap 0x4943>, <&main_udmap 0x4944>, <&main_udmap 0x4945>, 1613 <&main_bcdma_csi 0 0x4942 0>, <&main_bcdma_csi 0 0x4943 0>,
1598 <&main_udmap 0x4946>, <&main_udmap 0x4947>; 1614 <&main_bcdma_csi 0 0x4944 0>, <&main_bcdma_csi 0 0x4945 0>,
1615 <&main_bcdma_csi 0 0x4946 0>, <&main_bcdma_csi 0 0x4947 0>;
1599 dma-names = "rx0", "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7"; 1616 dma-names = "rx0", "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7";
1600 reg = <0x00 0x04500000 0x00 0x1000>; 1617 reg = <0x00 0x04500000 0x00 0x1000>;
1601 power-domains = <&k3_pds 38 TI_SCI_PD_EXCLUSIVE>; 1618 power-domains = <&k3_pds 38 TI_SCI_PD_EXCLUSIVE>;
@@ -1643,9 +1660,10 @@
1643 1660
1644 ti_csi2rx1: ticsi2rx@4510000 { 1661 ti_csi2rx1: ticsi2rx@4510000 {
1645 compatible = "ti,j721e-csi2rx"; 1662 compatible = "ti,j721e-csi2rx";
1646 dmas = <&main_udmap 0x4960>, <&main_udmap 0x4961>, <&main_udmap 0x4962>, 1663 dmas = <&main_bcdma_csi 0 0x4960 0>, <&main_bcdma_csi 0 0x4961 0>,
1647 <&main_udmap 0x4963>, <&main_udmap 0x4964>, <&main_udmap 0x4965>, 1664 <&main_bcdma_csi 0 0x4962 0>, <&main_bcdma_csi 0 0x4963 0>,
1648 <&main_udmap 0x4966>, <&main_udmap 0x4967>; 1665 <&main_bcdma_csi 0 0x4964 0>, <&main_bcdma_csi 0 0x4965 0>,
1666 <&main_bcdma_csi 0 0x4966 0>, <&main_bcdma_csi 0 0x4967 0>;
1649 dma-names = "rx0", "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7"; 1667 dma-names = "rx0", "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7";
1650 reg = <0x00 0x04510000 0x00 0x1000>; 1668 reg = <0x00 0x04510000 0x00 0x1000>;
1651 power-domains = <&k3_pds 39 TI_SCI_PD_EXCLUSIVE>; 1669 power-domains = <&k3_pds 39 TI_SCI_PD_EXCLUSIVE>;
diff --git a/arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi b/arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi
index a968672b4f8d..08fa262efb73 100644
--- a/arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi
@@ -621,6 +621,7 @@
621 ti,sci = <&sms>; 621 ti,sci = <&sms>;
622 ti,sci-dev-id = <321>; 622 ti,sci-dev-id = <321>;
623 ti,interrupt-ranges = <0 0 256>; 623 ti,interrupt-ranges = <0 0 256>;
624 ti,unmapped-event-sources = <&main_bcdma_csi>;
624 status = "disabled"; 625 status = "disabled";
625 }; 626 };
626 627
@@ -920,6 +921,21 @@
920 status = "disabled"; 921 status = "disabled";
921 }; 922 };
922 923
924 main_bcdma_csi: dma-controller@311a0000 {
925 compatible = "ti,j721s2-dmss-bcdma-csi";
926 reg = <0x00 0x311a0000 0x00 0x100>,
927 <0x00 0x35d00000 0x00 0x20000>,
928 <0x00 0x35c00000 0x00 0x10000>,
929 <0x00 0x35e00000 0x00 0x80000>;
930 reg-names = "gcfg", "rchanrt", "tchanrt", "ringrt";
931 msi-parent = <&main_udmass_inta>;
932 #dma-cells = <3>;
933 ti,sci = <&sms>;
934 ti,sci-dev-id = <281>;
935 ti,sci-rm-range-rchan = <0x21>;
936 ti,sci-rm-range-tchan = <0x22>;
937 };
938
923 cpts@310d0000 { 939 cpts@310d0000 {
924 compatible = "ti,j721e-cpts"; 940 compatible = "ti,j721e-cpts";
925 reg = <0x0 0x310d0000 0x0 0x400>; 941 reg = <0x0 0x310d0000 0x0 0x400>;
@@ -2008,9 +2024,10 @@
2008 ti_csi2rx0: ticsi2rx@4500000 { 2024 ti_csi2rx0: ticsi2rx@4500000 {
2009 status = "disabled"; 2025 status = "disabled";
2010 compatible = "ti,j721e-csi2rx"; 2026 compatible = "ti,j721e-csi2rx";
2011 dmas = <&main_udmap 0x4940>, <&main_udmap 0x4941>, <&main_udmap 0x4942>, 2027 dmas = <&main_bcdma_csi 0 0x4940 0>, <&main_bcdma_csi 0 0x4941 0>,
2012 <&main_udmap 0x4943>, <&main_udmap 0x4944>, <&main_udmap 0x4945>, 2028 <&main_bcdma_csi 0 0x4942 0>, <&main_bcdma_csi 0 0x4943 0>,
2013 <&main_udmap 0x4946>, <&main_udmap 0x4947>; 2029 <&main_bcdma_csi 0 0x4944 0>, <&main_bcdma_csi 0 0x4945 0>,
2030 <&main_bcdma_csi 0 0x4946 0>, <&main_bcdma_csi 0 0x4947 0>;
2014 dma-names = "rx0", "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7"; 2031 dma-names = "rx0", "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7";
2015 reg = <0x00 0x04500000 0x00 0x00001000>; 2032 reg = <0x00 0x04500000 0x00 0x00001000>;
2016 power-domains = <&k3_pds 72 TI_SCI_PD_EXCLUSIVE>; 2033 power-domains = <&k3_pds 72 TI_SCI_PD_EXCLUSIVE>;
@@ -2065,10 +2082,9 @@
2065 ti_csi2rx1: ticsi2rx@4510000 { 2082 ti_csi2rx1: ticsi2rx@4510000 {
2066 status = "disabled"; 2083 status = "disabled";
2067 compatible = "ti,j721e-csi2rx"; 2084 compatible = "ti,j721e-csi2rx";
2068 dmas = <&main_udmap 0x4960>, <&main_udmap 0x4961>, <&main_udmap 0x4962>, 2085 dmas = <&main_bcdma_csi 0 0x4960 0>, <&main_bcdma_csi 0 0x4961 0>,
2069 <&main_udmap 0x4963>, <&main_udmap 0x4964>, <&main_udmap 0x4965>, 2086 <&main_bcdma_csi 0 0x4962 0>, <&main_bcdma_csi 0 0x4963 0>;
2070 <&main_udmap 0x4966>, <&main_udmap 0x4967>; 2087 dma-names = "rx0", "rx1", "rx2", "rx3";
2071 dma-names = "rx0", "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7";
2072 reg = <0x00 0x04510000 0x00 0x00001000>; 2088 reg = <0x00 0x04510000 0x00 0x00001000>;
2073 power-domains = <&k3_pds 73 TI_SCI_PD_EXCLUSIVE>; 2089 power-domains = <&k3_pds 73 TI_SCI_PD_EXCLUSIVE>;
2074 #address-cells = <2>; 2090 #address-cells = <2>;
@@ -2122,10 +2138,9 @@
2122 ti_csi2rx2: ticsi2rx@4520000 { 2138 ti_csi2rx2: ticsi2rx@4520000 {
2123 status = "disabled"; 2139 status = "disabled";
2124 compatible = "ti,j721e-csi2rx"; 2140 compatible = "ti,j721e-csi2rx";
2125 dmas = <&main_udmap 0x4980>, <&main_udmap 0x4981>, <&main_udmap 0x4982>, 2141 dmas = <&main_bcdma_csi 0 0x4980 0>, <&main_bcdma_csi 0 0x4981 0>,
2126 <&main_udmap 0x4983>, <&main_udmap 0x4984>, <&main_udmap 0x4985>, 2142 <&main_bcdma_csi 0 0x4982 0>, <&main_bcdma_csi 0 0x4983 0>;
2127 <&main_udmap 0x4986>, <&main_udmap 0x4987>; 2143 dma-names = "rx0", "rx1", "rx2", "rx3";
2128 dma-names = "rx0", "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7";
2129 reg = <0x00 0x04520000 0x00 0x00001000>; 2144 reg = <0x00 0x04520000 0x00 0x00001000>;
2130 power-domains = <&k3_pds 74 TI_SCI_PD_EXCLUSIVE>; 2145 power-domains = <&k3_pds 74 TI_SCI_PD_EXCLUSIVE>;
2131 #address-cells = <2>; 2146 #address-cells = <2>;
diff --git a/drivers/dma/ti/k3-udma.c b/drivers/dma/ti/k3-udma.c
index 0d117c1c49fe..8cde54fbb62b 100644
--- a/drivers/dma/ti/k3-udma.c
+++ b/drivers/dma/ti/k3-udma.c
@@ -4308,6 +4308,15 @@ static struct udma_match_data j721e_mcu_data = {
4308 }, 4308 },
4309}; 4309};
4310 4310
4311static struct udma_soc_data j721s2_bcdma_soc_data = {
4312 .oes = {
4313 .bcdma_tchan_data = 0x800,
4314 .bcdma_tchan_ring = 0xa00,
4315 .bcdma_rchan_data = 0xe00,
4316 .bcdma_rchan_ring = 0x1000,
4317 },
4318};
4319
4311static struct udma_soc_data am62a_dmss_csi_soc_data = { 4320static struct udma_soc_data am62a_dmss_csi_soc_data = {
4312 .oes = { 4321 .oes = {
4313 .bcdma_rchan_data = 0xe00, 4322 .bcdma_rchan_data = 0xe00,
@@ -4328,6 +4337,19 @@ static struct udma_match_data am62a_bcdma_csirx_data = {
4328 .order_id = 8, 4337 .order_id = 8,
4329}; 4338};
4330 4339
4340static struct udma_match_data j721s2_bcdma_data = {
4341 .type = DMA_TYPE_BCDMA,
4342 .psil_base = 0x2000,
4343 .enable_memcpy_support = false,
4344 .burst_size = {
4345 TI_SCI_RM_UDMAP_CHAN_BURST_SIZE_64_BYTES, /* Normal Channels */
4346 0, /* No H Channels */
4347 0, /* No UH Channels */
4348 },
4349 .soc_data = &j721s2_bcdma_soc_data,
4350 .order_id = 15,
4351};
4352
4331static struct udma_match_data am64_bcdma_data = { 4353static struct udma_match_data am64_bcdma_data = {
4332 .type = DMA_TYPE_BCDMA, 4354 .type = DMA_TYPE_BCDMA,
4333 .psil_base = 0x2000, /* for tchan and rchan, not applicable to bchan */ 4355 .psil_base = 0x2000, /* for tchan and rchan, not applicable to bchan */
@@ -4381,6 +4403,10 @@ static const struct of_device_id udma_of_match[] = {
4381 .compatible = "ti,am62a-dmss-bcdma-csirx", 4403 .compatible = "ti,am62a-dmss-bcdma-csirx",
4382 .data = &am62a_bcdma_csirx_data, 4404 .data = &am62a_bcdma_csirx_data,
4383 }, 4405 },
4406 {
4407 .compatible = "ti,j721s2-dmss-bcdma-csi",
4408 .data = &j721s2_bcdma_data,
4409 },
4384 { /* Sentinel */ }, 4410 { /* Sentinel */ },
4385}; 4411};
4386 4412