1
0
Fork 0

Merge remote-tracking branch 'origin/mxc/mlb' into mxc/next

* origin/mxc/mlb: (17 commits)
  MLK-23000-1 mxc: mlb: fix kernel dump when use gen_pool_dma_alloc
  mxc mlb: Allow compilation on imx8
  MLK-22071-3 Document: mlb: add imx8qxp compatible string
  MLK-15997 Document: mlb: add document for mlb
  mxc: mlb: fix interrupt rw lock dead lock
  ...
5.4-rM2-2.2.x-imx-squashed
Dong Aisheng 2019-12-02 18:01:25 +08:00
commit e2be60b651
8 changed files with 2989 additions and 0 deletions

View File

@ -0,0 +1,27 @@
*MediaLB (MLB) for i.MX
Required properties:
- compatible :
- "fsl,imx6sx-mlb50" for MLB compatible with the one integrated on i.MX6SX soc
- "fsl,imx6q-mlb150" for MLB compatible with the one integrated on i.MX6Q
- "fsl,imx8qxp-mlb150" for MLB compatible with the one integrated on i.MX8 soc
- reg : address and length for mlb registers
- interrupt-parent : core interrupt controller
- interrupts : MLB Break/Error interrupt and ahb interrupt
Two ahb interrupt for imx6, ahb_int[0] and ahb_int[1]
One ahb interrupt for imx8, ahb_int[0]
- clocks : mlb clock specifier
Examples:
mlb: mlb@5B060000 {
compatible = "fsl,imx6q-mlb150";
reg = <0x0 0x5B060000 0x0 0x10000>;
interrupt-parent = <&gic>;
interrupts = <0 265 IRQ_TYPE_LEVEL_HIGH>,
<0 266 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk IMX8QM_MLB_CLK>,
<&clk IMX8QM_MLB_HCLK>,
<&clk IMX8QM_MLB_IPG_CLK>;
status = "disabled";
};

View File

@ -12,6 +12,7 @@ config MXC_IPU
Y here. IPU is needed by Framebuffer and V4L2 drivers.
source "drivers/mxc/gpu-viv/Kconfig"
source "drivers/mxc/mlb/Kconfig"
source "drivers/mxc/ipu3/Kconfig"
source "drivers/mxc/hdmi-cec/Kconfig"

View File

@ -1,3 +1,4 @@
obj-$(CONFIG_MXC_GPU_VIV) += gpu-viv/
obj-$(CONFIG_MXC_MLB) += mlb/
obj-$(CONFIG_MXC_IPU_V3) += ipu3/
obj-$(CONFIG_MXC_HDMI_CEC) += hdmi-cec/

View File

@ -0,0 +1,17 @@
#
# MLB150 configuration
#
menu "MXC Media Local Bus Driver"
config MXC_MLB
bool
config MXC_MLB150
tristate "MLB150 support"
depends on ARCH_MXC || COMPILE_TEST
select MXC_MLB
help
Say Y to get the MLB150 support.
endmenu

View File

@ -0,0 +1,5 @@
#
# Makefile for the i.MX6Q/DL MLB150 driver
#
obj-$(CONFIG_MXC_MLB150) += mxc_mlb.o

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,55 @@
/*
* mxc_mlb.h
*
* Copyright 2008-2013 Freescale Semiconductor, Inc. All Rights Reserved.
*/
/*
* The code contained herein is licensed under the GNU General Public
* License. You may obtain a copy of the GNU General Public License
* Version 2 or later at the following locations:
*
* http://www.opensource.org/licenses/gpl-license.html
* http://www.gnu.org/copyleft/gpl.html
*/
#ifndef _MXC_MLB_H
#define _MXC_MLB_H
/* define IOCTL command */
#define MLB_DBG_RUNTIME _IO('S', 0x09)
#define MLB_SET_FPS _IOW('S', 0x10, unsigned int)
#define MLB_GET_VER _IOR('S', 0x11, unsigned long)
#define MLB_SET_DEVADDR _IOR('S', 0x12, unsigned char)
/*!
* set channel address for each logical channel
* the MSB 16bits is for tx channel, the left LSB is for rx channel
*/
#define MLB_CHAN_SETADDR _IOW('S', 0x13, unsigned int)
#define MLB_CHAN_STARTUP _IO('S', 0x14)
#define MLB_CHAN_SHUTDOWN _IO('S', 0x15)
#define MLB_CHAN_GETEVENT _IOR('S', 0x16, unsigned long)
#define MLB_SET_ISOC_BLKSIZE_188 _IO('S', 0x17)
#define MLB_SET_ISOC_BLKSIZE_196 _IO('S', 0x18)
#define MLB_SET_SYNC_QUAD _IOW('S', 0x19, unsigned int)
#define MLB_IRQ_ENABLE _IO('S', 0x20)
#define MLB_IRQ_DISABLE _IO('S', 0x21)
/*!
* MLB event define
*/
enum {
MLB_EVT_TX_PROTO_ERR_CUR = 1 << 0,
MLB_EVT_TX_BRK_DETECT_CUR = 1 << 1,
MLB_EVT_TX_PROTO_ERR_PREV = 1 << 8,
MLB_EVT_TX_BRK_DETECT_PREV = 1 << 9,
MLB_EVT_RX_PROTO_ERR_CUR = 1 << 16,
MLB_EVT_RX_BRK_DETECT_CUR = 1 << 17,
MLB_EVT_RX_PROTO_ERR_PREV = 1 << 24,
MLB_EVT_RX_BRK_DETECT_PREV = 1 << 25,
};
#endif /* _MXC_MLB_H */

View File

@ -0,0 +1,55 @@
/*
* mxc_mlb.h
*
* Copyright 2008-2013 Freescale Semiconductor, Inc. All Rights Reserved.
*/
/*
* The code contained herein is licensed under the GNU General Public
* License. You may obtain a copy of the GNU General Public License
* Version 2 or later at the following locations:
*
* http://www.opensource.org/licenses/gpl-license.html
* http://www.gnu.org/copyleft/gpl.html
*/
#ifndef _MXC_MLB_UAPI_H
#define _MXC_MLB_UAPI_H
/* define IOCTL command */
#define MLB_DBG_RUNTIME _IO('S', 0x09)
#define MLB_SET_FPS _IOW('S', 0x10, unsigned int)
#define MLB_GET_VER _IOR('S', 0x11, unsigned long)
#define MLB_SET_DEVADDR _IOR('S', 0x12, unsigned char)
/*!
* set channel address for each logical channel
* the MSB 16bits is for tx channel, the left LSB is for rx channel
*/
#define MLB_CHAN_SETADDR _IOW('S', 0x13, unsigned int)
#define MLB_CHAN_STARTUP _IO('S', 0x14)
#define MLB_CHAN_SHUTDOWN _IO('S', 0x15)
#define MLB_CHAN_GETEVENT _IOR('S', 0x16, unsigned long)
#define MLB_SET_ISOC_BLKSIZE_188 _IO('S', 0x17)
#define MLB_SET_ISOC_BLKSIZE_196 _IO('S', 0x18)
#define MLB_SET_SYNC_QUAD _IOW('S', 0x19, unsigned int)
#define MLB_IRQ_ENABLE _IO('S', 0x20)
#define MLB_IRQ_DISABLE _IO('S', 0x21)
/*!
* MLB event define
*/
enum {
MLB_EVT_TX_PROTO_ERR_CUR = 1 << 0,
MLB_EVT_TX_BRK_DETECT_CUR = 1 << 1,
MLB_EVT_TX_PROTO_ERR_PREV = 1 << 8,
MLB_EVT_TX_BRK_DETECT_PREV = 1 << 9,
MLB_EVT_RX_PROTO_ERR_CUR = 1 << 16,
MLB_EVT_RX_BRK_DETECT_CUR = 1 << 17,
MLB_EVT_RX_PROTO_ERR_PREV = 1 << 24,
MLB_EVT_RX_BRK_DETECT_PREV = 1 << 25,
};
#endif /* _MXC_MLB_H */