[meta-ti] [PATCH] ti-staging: Update to include uio device tree entries
Denys Dmytriyenko
denys at ti.com
Mon Feb 1 13:40:54 PST 2016
On Thu, Jan 28, 2016 at 04:22:07PM -0500, Jacob Stiffler wrote:
> - Adds device tree entries for multiple devices that use uio driver
> - These entries are added for k2h, k2l & k2e : keystone2 platforms
>
> Signed-off-by: Sam Nelson <sam.nelson at ti.com>
> Signed-off-by: Jacob Stiffler <j-stiffler at ti.com>
> ---
> recipes-kernel/linux/files/k2e-evm/k2e-uio.dtsi | 32 ++++
> recipes-kernel/linux/files/k2hk-evm/k2hk-uio.dtsi | 58 +++++++
> recipes-kernel/linux/files/k2l-evm/k2l-uio.dtsi | 10 ++
> .../linux/files/keystone/keystone-uio.dtsi | 186 +++++++++++++++++++++
> recipes-kernel/linux/linux-ti-staging_4.1.bb | 3 +-
> recipes-kernel/linux/ti-uio.inc | 24 +++
> 6 files changed, 312 insertions(+), 1 deletion(-)
> create mode 100644 recipes-kernel/linux/files/k2e-evm/k2e-uio.dtsi
> create mode 100644 recipes-kernel/linux/files/k2hk-evm/k2hk-uio.dtsi
> create mode 100644 recipes-kernel/linux/files/k2l-evm/k2l-uio.dtsi
> create mode 100644 recipes-kernel/linux/files/keystone/keystone-uio.dtsi
> create mode 100644 recipes-kernel/linux/ti-uio.inc
>
> diff --git a/recipes-kernel/linux/files/k2e-evm/k2e-uio.dtsi b/recipes-kernel/linux/files/k2e-evm/k2e-uio.dtsi
> new file mode 100644
> index 0000000..36f41b0
> --- /dev/null
> +++ b/recipes-kernel/linux/files/k2e-evm/k2e-uio.dtsi
> @@ -0,0 +1,32 @@
> +/ {
> + soc {
> + uio_hyperlink0: hyperlink0 {
> + compatible = "ti,uio-ti-pdrv";
> + mem = <0x21400000 0x00001000
> + 0x40000000 0x10000000
> + 0x0231a000 0x00002000>;
> + clocks = <&clkhyperlink0>;
> + interrupts = <0 387 0x101>;
> + cfg-params
> + {
> + ti,serdes_refclk_khz = <312500>;
> + ti,serdes_maxserrate_khz = <6250000>;
> + ti,serdes_lanerate = "half";
> + ti,serdes_numlanes = <4>;
> + ti,serdes_c1 = <4 4 4 4>;
> + ti,serdes_c2 = <0 0 0 0>;
> + ti,serdes_cm = <0 0 0 0>;
> + ti,serdes_tx_att = <12 12 12 12>;
> + ti,serdes_tx_vreg = <4 4 4 4>;
> + ti,serdes_rx_att = <11 11 11 11>;
> + ti,serdes_rx_boost = <3 3 3 3>;
> + };
> + };
> + uio_srss: srss {
> + compatible = "ti,uio-ti-pdrv";
> + mem = <0x02330000 0x0000400>;
> + clocks=<&clksr>;
> + interrupts = <0 0x173 0xf01>;
> + };
> + };
> +};
> diff --git a/recipes-kernel/linux/files/k2hk-evm/k2hk-uio.dtsi b/recipes-kernel/linux/files/k2hk-evm/k2hk-uio.dtsi
> new file mode 100644
> index 0000000..cabe0b8
> --- /dev/null
> +++ b/recipes-kernel/linux/files/k2hk-evm/k2hk-uio.dtsi
> @@ -0,0 +1,58 @@
> +/ {
> + soc {
> + uio_hyperlink0: hyperlink0 {
> + compatible = "ti,uio-module-drv";
> + mem = <0x21400000 0x00001000
> + 0x40000000 0x10000000
> + 0x0231a000 0x00002000>;
> + clocks = <&clkhyperlink0>;
> + interrupts = <0 387 0x101>;
> + cfg-params
> + {
> + ti,serdes_refclk_khz = <312500>;
> + ti,serdes_maxserrate_khz = <6250000>;
> + ti,serdes_lanerate = "half";
> + ti,serdes_numlanes = <4>;
> + ti,serdes_c1 = <4 4 4 4>;
> + ti,serdes_c2 = <0 0 0 0>;
> + ti,serdes_cm = <0 0 0 0>;
> + ti,serdes_tx_att = <12 12 12 12>;
> + ti,serdes_tx_vreg = <4 4 4 4>;
> + ti,serdes_rx_att = <11 11 11 11>;
> + ti,serdes_rx_boost = <3 3 3 3>;
> + };
> + };
> +
> + uio_hyperlink1: hyperlink1 {
> + compatible = "ti,uio-module-drv";
> + mem = <0x21400000 0x00001000
> + 0x28000000 0x08000000
> + 0x0231c000 0x00002000>;
> + clocks = <&clkhyperlink1>;
> + interrupts = <0 388 0x101>;
> + cfg-params
> + {
> + ti,serdes_refclk_khz = <312500>;
> + ti,serdes_maxserrate_khz = <6250000>;
> + ti,serdes_lanerate = "half";
> + ti,serdes_numlanes = <4>;
> + ti,serdes_c1 = <4 4 4 4>;
> + ti,serdes_c2 = <0 0 0 0>;
> + ti,serdes_cm = <0 0 0 0>;
> + ti,serdes_tx_att = <12 12 12 12>;
> + ti,serdes_tx_vreg = <4 4 4 4>;
> + ti,serdes_rx_att = <11 11 11 11>;
> + ti,serdes_rx_boost = <3 3 3 3>;
> + };
> + };
> +
> + uio_srio: srio {
> + compatible = "ti,uio-module-drv";
> + mem = <0x0232C000 0x00002000
> + 0x02900000 0x00040000
> + 0x0232C000 0x00002000>;
> + clocks=<&clksrio>;
> + interrupts = <0 154 0xf01>;
> + };
> + };
> +};
> diff --git a/recipes-kernel/linux/files/k2l-evm/k2l-uio.dtsi b/recipes-kernel/linux/files/k2l-evm/k2l-uio.dtsi
> new file mode 100644
> index 0000000..0334483
> --- /dev/null
> +++ b/recipes-kernel/linux/files/k2l-evm/k2l-uio.dtsi
> @@ -0,0 +1,10 @@
> +/ {
> + soc {
> + uio_srss: srss {
> + compatible = "ti,uio-ti-pdrv";
> + mem = <0x02330000 0x0000400>;
> + clocks=<&clksr>;
> + interrupts = <0 0x173 0xf01>;
> + };
> + };
> +};
> diff --git a/recipes-kernel/linux/files/keystone/keystone-uio.dtsi b/recipes-kernel/linux/files/keystone/keystone-uio.dtsi
> new file mode 100644
> index 0000000..43b183d
> --- /dev/null
> +++ b/recipes-kernel/linux/files/keystone/keystone-uio.dtsi
> @@ -0,0 +1,186 @@
> +/ {
> + soc {
> + uio_mpax: mpax {
> + compatible = "ti,uio-module-drv";
> + mem = <0x00bc00000 0x00000a00>;
> + };
> +
> + uio_edma3: edma3 {
> + compatible = "ti,uio-module-drv";
> + mem = <0x02700000 0x000C0000>;
> + };
> + uio_secmgr: secmgr {
> + compatible = "ti,uio-module-drv";
> + mem = <0x002500100 0x00000004>;
> + };
> + uio_qmss: qmss {
> + compatible = "ti,uio-module-drv";
> + mem = <0x02a00000 0x00100000
> + 0x23a00000 0x00200000>;
> + };
> +
> + uio_qpend0: qpend0 {
> + compatible = "ti,uio-module-drv";
> + interrupts = <0 44 0xf04>;
> + interrupt-mode = <1>; /* Interrupt mode oneshot */
> + cfg-params
> + {
> + ti,qm-queue = <662>;
> + };
> + };
> +
> + uio_qpend1: qpend1 {
> + compatible = "ti,uio-module-drv";
> + interrupts = <0 45 0xf04>;
> + interrupt-mode = <1>; /* Interrupt mode oneshot */
> + cfg-params
> + {
> + ti,qm-queue = <663>;
> + };
> + };
> +
> + uio_qpend2: qpend2 {
> + compatible = "ti,uio-module-drv";
> + interrupts = <0 46 0xf04>;
> + interrupt-mode = <1>; /* Interrupt mode oneshot */
> + cfg-params
> + {
> + ti,qm-queue = <664>;
> + };
> + };
> +
> + uio_qpend3: qpend3 {
> + compatible = "ti,uio-module-drv";
> + interrupts = <0 47 0xf04>;
> + interrupt-mode = <1>; /* Interrupt mode oneshot */
> + cfg-params
> + {
> + ti,qm-queue = <665>;
> + };
> + };
> +
> + /* The following uio cic2 entries allow access to interupt output
> + * by the cic2 controller: The actual input event triggering the
> + * interrupt is assumed to be programmed other drivers
> + */
> + uio_cic2_out32: cic2_out32 {
> + compatible = "ti,uio-module-drv";
> + interrupts = <0 451 0xf01>;
> + };
> +
> + uio_cic2_out33: cic2_out33 {
> + compatible = "ti,uio-module-drv";
> + interrupts = <0 452 0xf01>;
> + };
> +
> + uio_cic2_out34: cic2_out34 {
> + compatible = "ti,uio-module-drv";
> + interrupts = <0 453 0xf01>;
> + };
> +
> + uio_cic2_out35: cic2_out35 {
> + compatible = "ti,uio-module-drv";
> + interrupts = <0 454 0xf01>;
> + };
> +
> + uio_cic2_out36: cic2_out36 {
> + compatible = "ti,uio-module-drv";
> + interrupts = <0 455 0xf01>;
> + };
> +
> + uio_cic2_out37: cic2_out37 {
> + compatible = "ti,uio-module-drv";
> + interrupts = <0 456 0xf01>;
> + };
> +
> + uio_cic2_out38: cic2_out38 {
> + compatible = "ti,uio-module-drv";
> + interrupts = <0 457 0xf01>;
> + };
> +
> + uio_cic2_out39: cic2_out39 {
> + compatible = "ti,uio-module-drv";
> + interrupts = <0 458 0xf01>;
> + };
> +
> + uio_cic2_out40: cic2_out40 {
> + compatible = "ti,uio-module-drv";
> + interrupts = <0 459 0xf01>;
> + };
> +
> + uio_cic2_out41: cic2_out41 {
> + compatible = "ti,uio-module-drv";
> + interrupts = <0 460 0xf01>;
> + };
> +
> + uio_cic2_out42: cic2_out42 {
> + compatible = "ti,uio-module-drv";
> + interrupts = <0 461 0xf01>;
> + };
> +
> + uio_cic2_out43: cic2_out43 {
> + compatible = "ti,uio-module-drv";
> + interrupts = <0 462 0xf01>;
> + };
> +
> + uio_cic2_out44: cic2_out44 {
> + compatible = "ti,uio-module-drv";
> + interrupts = <0 463 0xf01>;
> + };
> +
> + uio_cic2_out45: cic2_out45 {
> + compatible = "ti,uio-module-drv";
> + interrupts = <0 464 0xf01>;
> + };
> +
> + uio_cic2_out46: cic2_out46 {
> + compatible = "ti,uio-module-drv";
> + interrupts = <0 465 0xf01>;
> + };
> +
> + uio_cic2_out47: cic2_out47 {
> + compatible = "ti,uio-module-drv";
> + interrupts = <0 466 0xf01>;
> + };
> +
> + uio_cic2_out18: cic2_out18 {
> + compatible = "ti,uio-module-drv";
> + interrupts = <0 467 0xf01>;
> + };
> +
> + uio_cic2_out19: cic2_out19 {
> + compatible = "ti,uio-module-drv";
> + interrupts = <0 468 0xf01>;
> + };
> +
> + uio_cic2_out22: cic2_out22 {
> + compatible = "ti,uio-module-drv";
> + interrupts = <0 469 0xf01>;
> + };
> +
> + uio_cic2_out23: cic2_out23 {
> + compatible = "ti,uio-module-drv";
> + interrupts = <0 470 0xf01>;
> + };
> +
> + uio_cic2_out50: cic2_out50 {
> + compatible = "ti,uio-module-drv";
> + interrupts = <0 471 0xf01>;
> + };
> +
> + uio_cic2_out51: cic2_out51 {
> + compatible = "ti,uio-module-drv";
> + interrupts = <0 472 0xf01>;
> + };
> +
> + uio_cic2_out66: cic2_out66 {
> + compatible = "ti,uio-module-drv";
> + interrupts = <0 473 0xf01>;
> + };
> +
> + uio_cic2_out67: cic2_out67 {
> + compatible = "ti,uio-module-drv";
> + interrupts = <0 474 0xf01>;
> + };
> + };
> +};
> diff --git a/recipes-kernel/linux/linux-ti-staging_4.1.bb b/recipes-kernel/linux/linux-ti-staging_4.1.bb
> index 59805c6..842ed4e 100644
> --- a/recipes-kernel/linux/linux-ti-staging_4.1.bb
> +++ b/recipes-kernel/linux/linux-ti-staging_4.1.bb
> @@ -8,6 +8,7 @@ inherit kernel
> require recipes-kernel/linux/linux-dtb.inc
> require recipes-kernel/linux/setup-defconfig.inc
> require recipes-kernel/linux/cmem.inc
> +require recipes-kernel/linux/ti-uio.inc
>
> # Look in the generic major.minor directory for files
> FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-4.1:"
> @@ -68,7 +69,7 @@ SRCREV = "08ad1740b59cc3aef52a2612b1e807a3e844583c"
> PV = "4.1.16+git${SRCPV}"
>
> # Append to the MACHINE_KERNEL_PR so that a new SRCREV will cause a rebuild
> -MACHINE_KERNEL_PR_append = "b"
> +MACHINE_KERNEL_PR_append = "c"
> PR = "${MACHINE_KERNEL_PR}"
>
> KERNEL_CONFIG_DIR = "${S}/ti_config_fragments"
> diff --git a/recipes-kernel/linux/ti-uio.inc b/recipes-kernel/linux/ti-uio.inc
> new file mode 100644
> index 0000000..82cbbce
> --- /dev/null
> +++ b/recipes-kernel/linux/ti-uio.inc
> @@ -0,0 +1,24 @@
> +SRC_URI_append_keystone += "file://keystone-uio.dtsi"
> +SRC_URI_append_k2hk-evm += "file://k2hk-uio.dtsi"
> +SRC_URI_append_k2l-evm += "file://k2l-uio.dtsi"
> +SRC_URI_append_k2e-evm += "file://k2e-uio.dtsi"
Use either _append or += as there's no reason to use both. If you end up using
_append, don't forget that it doesn't add any spaces, so you may need to
prepend one.
> +DTSI_LIST = ""
> +DTSI_LIST_append_keystone += "keystone-uio.dtsi"
> +DTSI_LIST_append_k2hk-evm += "k2hk-uio.dtsi"
> +DTSI_LIST_append_k2l-evm += "k2l-uio.dtsi"
> +DTSI_LIST_append_k2e-evm += "k2e-uio.dtsi"
Same here ^^^
Also, this change is unconditional, unlike cmem that uses RESERVE_CMEM
variable. Please change it so that .inc file can be safely included w/o
forcing dts changes. Thanks.
> +do_setup_uio() {
> + for dtsi in ${DTSI_LIST}
> + do
> + cp ${WORKDIR}/${dtsi} ${S}/arch/arm/boot/dts/
> + for dtb in ${KERNEL_DEVICETREE}
> + do
> + dts=`echo $dtb | sed -e 's|dtb$|dts|'`
> + echo "#include \"${dtsi}\"" >> ${S}/arch/arm/boot/dts/$dts
> + done
> + done
> +}
> +
> +do_patch[postfuncs] += "do_setup_uio"
> --
> 1.9.1
>
> --
> _______________________________________________
> meta-ti mailing list
> meta-ti at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-ti
More information about the meta-ti
mailing list