Message ID | 1546635388-13795-7-git-send-email-john.stultz@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | k3dma patches to add support for hi3660/HiKey960 | expand |
Hi John, On Fri, Jan 04, 2019 at 12:56:26PM -0800, John Stultz wrote: > Try to add DMA support to the uart nodes following > the assignments made in the dts from the victoria vendor kernel > here: > https://consumer.huawei.com/en/opensource/detail/?siteCode=worldwide&keywords=p10&fileType=openSourceSoftware&pageSize=10&curPage=1 > > Cc: Tanglei Han <hantanglei@huawei.com> > Cc: Zhuangluan Su <suzhuangluan@hisilicon.com> > Cc: Ryan Grachek <ryan@edited.us> > Cc: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> > Cc: Wei Xu <xuwei5@hisilicon.com> > Cc: Rob Herring <robh+dt@kernel.org> > Cc: Mark Rutland <mark.rutland@arm.com> > Cc: linux-arm-kernel@lists.infradead.org > Cc: devicetree@vger.kernel.org > Signed-off-by: John Stultz <john.stultz@linaro.org> > --- > arch/arm64/boot/dts/hisilicon/hi3660.dtsi | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/arch/arm64/boot/dts/hisilicon/hi3660.dtsi b/arch/arm64/boot/dts/hisilicon/hi3660.dtsi > index 20ae40d..aaa2b04 100644 > --- a/arch/arm64/boot/dts/hisilicon/hi3660.dtsi > +++ b/arch/arm64/boot/dts/hisilicon/hi3660.dtsi > @@ -466,6 +466,8 @@ > compatible = "arm,pl011", "arm,primecell"; > reg = <0x0 0xfdf02000 0x0 0x1000>; > interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; > + dma-names = "rx", "tx"; > + dmas = <&dma0 0 &dma0 1>; Usage of DMA channel 0 contradicts with the description provided in patch, "dma: k3dma: Add support to dma_avail_chan". Thanks, Mani > clocks = <&crg_ctrl HI3660_CLK_MUX_UART0>, > <&crg_ctrl HI3660_PCLK>; > clock-names = "uartclk", "apb_pclk"; > @@ -478,6 +480,8 @@ > compatible = "arm,pl011", "arm,primecell"; > reg = <0x0 0xfdf00000 0x0 0x1000>; > interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; > + dma-names = "rx", "tx"; > + dmas = <&dma0 2 &dma0 3>; > clocks = <&crg_ctrl HI3660_CLK_GATE_UART1>, > <&crg_ctrl HI3660_CLK_GATE_UART1>; > clock-names = "uartclk", "apb_pclk"; > @@ -490,6 +494,8 @@ > compatible = "arm,pl011", "arm,primecell"; > reg = <0x0 0xfdf03000 0x0 0x1000>; > interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; > + dma-names = "rx", "tx"; > + dmas = <&dma0 4 &dma0 5>; > clocks = <&crg_ctrl HI3660_CLK_GATE_UART2>, > <&crg_ctrl HI3660_PCLK>; > clock-names = "uartclk", "apb_pclk"; > @@ -514,6 +520,8 @@ > compatible = "arm,pl011", "arm,primecell"; > reg = <0x0 0xfdf01000 0x0 0x1000>; > interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; > + dma-names = "rx", "tx"; > + dmas = <&dma0 6 &dma0 7>; > clocks = <&crg_ctrl HI3660_CLK_GATE_UART4>, > <&crg_ctrl HI3660_CLK_GATE_UART4>; > clock-names = "uartclk", "apb_pclk"; > @@ -526,6 +534,8 @@ > compatible = "arm,pl011", "arm,primecell"; > reg = <0x0 0xfdf05000 0x0 0x1000>; > interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; > + dma-names = "rx", "tx"; > + dmas = <&dma0 8 &dma0 9>; > clocks = <&crg_ctrl HI3660_CLK_GATE_UART5>, > <&crg_ctrl HI3660_CLK_GATE_UART5>; > clock-names = "uartclk", "apb_pclk"; > -- > 2.7.4 >
On Fri, Jan 4, 2019 at 7:49 PM Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> wrote: > > Hi John, > > On Fri, Jan 04, 2019 at 12:56:26PM -0800, John Stultz wrote: > > Try to add DMA support to the uart nodes following > > the assignments made in the dts from the victoria vendor kernel > > here: > > https://consumer.huawei.com/en/opensource/detail/?siteCode=worldwide&keywords=p10&fileType=openSourceSoftware&pageSize=10&curPage=1 > > > > Cc: Tanglei Han <hantanglei@huawei.com> > > Cc: Zhuangluan Su <suzhuangluan@hisilicon.com> > > Cc: Ryan Grachek <ryan@edited.us> > > Cc: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> > > Cc: Wei Xu <xuwei5@hisilicon.com> > > Cc: Rob Herring <robh+dt@kernel.org> > > Cc: Mark Rutland <mark.rutland@arm.com> > > Cc: linux-arm-kernel@lists.infradead.org > > Cc: devicetree@vger.kernel.org > > Signed-off-by: John Stultz <john.stultz@linaro.org> > > --- > > arch/arm64/boot/dts/hisilicon/hi3660.dtsi | 10 ++++++++++ > > 1 file changed, 10 insertions(+) > > > > diff --git a/arch/arm64/boot/dts/hisilicon/hi3660.dtsi b/arch/arm64/boot/dts/hisilicon/hi3660.dtsi > > index 20ae40d..aaa2b04 100644 > > --- a/arch/arm64/boot/dts/hisilicon/hi3660.dtsi > > +++ b/arch/arm64/boot/dts/hisilicon/hi3660.dtsi > > @@ -466,6 +466,8 @@ > > compatible = "arm,pl011", "arm,primecell"; > > reg = <0x0 0xfdf02000 0x0 0x1000>; > > interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; > > + dma-names = "rx", "tx"; > > + dmas = <&dma0 0 &dma0 1>; > > Usage of DMA channel 0 contradicts with the description provided in > patch, "dma: k3dma: Add support to dma_avail_chan". Hrm. Good point. I'll double check w/ Dr Su on this, I'm not sure if that inconsistency is due to the the vendor kernel (where these came from) having different reserved channels or just something overlooked if the uart0 is not actually being used (as we find on hikey960 as well). thanks -john
On Fri, Jan 4, 2019 at 8:34 PM John Stultz <john.stultz@linaro.org> wrote: > > On Fri, Jan 4, 2019 at 7:49 PM Manivannan Sadhasivam > <manivannan.sadhasivam@linaro.org> wrote: > > > > Hi John, > > > > On Fri, Jan 04, 2019 at 12:56:26PM -0800, John Stultz wrote: > > > Try to add DMA support to the uart nodes following > > > the assignments made in the dts from the victoria vendor kernel > > > here: > > > https://consumer.huawei.com/en/opensource/detail/?siteCode=worldwide&keywords=p10&fileType=openSourceSoftware&pageSize=10&curPage=1 > > > > > > Cc: Tanglei Han <hantanglei@huawei.com> > > > Cc: Zhuangluan Su <suzhuangluan@hisilicon.com> > > > Cc: Ryan Grachek <ryan@edited.us> > > > Cc: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> > > > Cc: Wei Xu <xuwei5@hisilicon.com> > > > Cc: Rob Herring <robh+dt@kernel.org> > > > Cc: Mark Rutland <mark.rutland@arm.com> > > > Cc: linux-arm-kernel@lists.infradead.org > > > Cc: devicetree@vger.kernel.org > > > Signed-off-by: John Stultz <john.stultz@linaro.org> > > > --- > > > arch/arm64/boot/dts/hisilicon/hi3660.dtsi | 10 ++++++++++ > > > 1 file changed, 10 insertions(+) > > > > > > diff --git a/arch/arm64/boot/dts/hisilicon/hi3660.dtsi b/arch/arm64/boot/dts/hisilicon/hi3660.dtsi > > > index 20ae40d..aaa2b04 100644 > > > --- a/arch/arm64/boot/dts/hisilicon/hi3660.dtsi > > > +++ b/arch/arm64/boot/dts/hisilicon/hi3660.dtsi > > > @@ -466,6 +466,8 @@ > > > compatible = "arm,pl011", "arm,primecell"; > > > reg = <0x0 0xfdf02000 0x0 0x1000>; > > > interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; > > > + dma-names = "rx", "tx"; > > > + dmas = <&dma0 0 &dma0 1>; > > > > Usage of DMA channel 0 contradicts with the description provided in > > patch, "dma: k3dma: Add support to dma_avail_chan". > > Hrm. Good point. I'll double check w/ Dr Su on this, I'm not sure if > that inconsistency is due to the the vendor kernel (where these came > from) having different reserved channels or just something overlooked > if the uart0 is not actually being used (as we find on hikey960 as > well). Hrm. So it seems like uart0 is mapped to the dma0 chan0, but the device specific files in the vendor tree overwite the dma values: serial0: uart@fdf02000 { pinctrl-names = "default", "idle"; pinctrl-0 = <&gpio053_pmx_func &gpio054_pmx_func &gpio053_cfg_func &gpio054_cfg_func>; pinctrl-1 = <&gpio053_pmx_idle &gpio054_pmx_idle &gpio053_cfg_idle &gpio054_cfg_idle>; dma-names = "", ""; dmas = <>; clock-rate = <0 19200000>; status = "ok"; }; But I went ahead and pulled the dma values on uart0. thaks -john
diff --git a/arch/arm64/boot/dts/hisilicon/hi3660.dtsi b/arch/arm64/boot/dts/hisilicon/hi3660.dtsi index 20ae40d..aaa2b04 100644 --- a/arch/arm64/boot/dts/hisilicon/hi3660.dtsi +++ b/arch/arm64/boot/dts/hisilicon/hi3660.dtsi @@ -466,6 +466,8 @@ compatible = "arm,pl011", "arm,primecell"; reg = <0x0 0xfdf02000 0x0 0x1000>; interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; + dma-names = "rx", "tx"; + dmas = <&dma0 0 &dma0 1>; clocks = <&crg_ctrl HI3660_CLK_MUX_UART0>, <&crg_ctrl HI3660_PCLK>; clock-names = "uartclk", "apb_pclk"; @@ -478,6 +480,8 @@ compatible = "arm,pl011", "arm,primecell"; reg = <0x0 0xfdf00000 0x0 0x1000>; interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; + dma-names = "rx", "tx"; + dmas = <&dma0 2 &dma0 3>; clocks = <&crg_ctrl HI3660_CLK_GATE_UART1>, <&crg_ctrl HI3660_CLK_GATE_UART1>; clock-names = "uartclk", "apb_pclk"; @@ -490,6 +494,8 @@ compatible = "arm,pl011", "arm,primecell"; reg = <0x0 0xfdf03000 0x0 0x1000>; interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; + dma-names = "rx", "tx"; + dmas = <&dma0 4 &dma0 5>; clocks = <&crg_ctrl HI3660_CLK_GATE_UART2>, <&crg_ctrl HI3660_PCLK>; clock-names = "uartclk", "apb_pclk"; @@ -514,6 +520,8 @@ compatible = "arm,pl011", "arm,primecell"; reg = <0x0 0xfdf01000 0x0 0x1000>; interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; + dma-names = "rx", "tx"; + dmas = <&dma0 6 &dma0 7>; clocks = <&crg_ctrl HI3660_CLK_GATE_UART4>, <&crg_ctrl HI3660_CLK_GATE_UART4>; clock-names = "uartclk", "apb_pclk"; @@ -526,6 +534,8 @@ compatible = "arm,pl011", "arm,primecell"; reg = <0x0 0xfdf05000 0x0 0x1000>; interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; + dma-names = "rx", "tx"; + dmas = <&dma0 8 &dma0 9>; clocks = <&crg_ctrl HI3660_CLK_GATE_UART5>, <&crg_ctrl HI3660_CLK_GATE_UART5>; clock-names = "uartclk", "apb_pclk";
Try to add DMA support to the uart nodes following the assignments made in the dts from the victoria vendor kernel here: https://consumer.huawei.com/en/opensource/detail/?siteCode=worldwide&keywords=p10&fileType=openSourceSoftware&pageSize=10&curPage=1 Cc: Tanglei Han <hantanglei@huawei.com> Cc: Zhuangluan Su <suzhuangluan@hisilicon.com> Cc: Ryan Grachek <ryan@edited.us> Cc: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> Cc: Wei Xu <xuwei5@hisilicon.com> Cc: Rob Herring <robh+dt@kernel.org> Cc: Mark Rutland <mark.rutland@arm.com> Cc: linux-arm-kernel@lists.infradead.org Cc: devicetree@vger.kernel.org Signed-off-by: John Stultz <john.stultz@linaro.org> --- arch/arm64/boot/dts/hisilicon/hi3660.dtsi | 10 ++++++++++ 1 file changed, 10 insertions(+)