linux-tegra.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [tegra-pinmux-scripts PATCH] Add APB misc MIPI pad control
@ 2014-09-04 15:46 Sean Paul
       [not found] ` <1409845617-22025-1-git-send-email-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
  0 siblings, 1 reply; 2+ messages in thread
From: Sean Paul @ 2014-09-04 15:46 UTC (permalink / raw)
  To: swarren-3lzwWm7+Weoh9ZMKESR00Q,
	linux-tegra-u79uwXL29TY76Z2rM5mHXA,
	seanpaul-F7+t8E8rja9g9hUCZPvPmw

This patch adds MIPI CSI/DSIB pad control mux register
from the APB misc block to tegra pinctrl.

Without writing to this register, the dsib pads are
muxed as csi, and cannot be used.

The register is not yet documented in the TRM, here is
the description:

70000820: APB_MISC_GP_MIPI_PAD_CTRL_0
	[31:02] RESERVED
	[01:01] DSIB_MODE       [CSI=0,DSIB=1]
	[00:00] RESERVED

Signed-off-by: Sean Paul <seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
---
 configs/jetson-tk1.board | 10 ++++++++++
 configs/norrin.board     | 10 ++++++++++
 configs/tegra124.soc     | 22 ++++++++++++++++++++++
 configs/venice2.board    | 10 ++++++++++
 4 files changed, 52 insertions(+)

diff --git a/configs/jetson-tk1.board b/configs/jetson-tk1.board
index f69b89e..a71bb1d 100644
--- a/configs/jetson-tk1.board
+++ b/configs/jetson-tk1.board
@@ -192,6 +192,16 @@ pins = (
     ('usb_vbus_en0_pn4',       'usb',          None,      'up',   False, True,  True,  False),
     ('usb_vbus_en1_pn5',       'usb',          None,      'up',   False, True,  True,  False),
     ('dp_hpd_pff0',            'dp',           None,      'up',   False, True,  False, False),
+    ('dsi_b_clk_n',	       'csi',         None,      'none', False, False, False, False),
+    ('dsi_b_clk_p',	       'csi',         None,      'none', False, False, False, False),
+    ('dsi_b_d0_n',	       'csi',         None,      'none', False, False, False, False),
+    ('dsi_b_d0_p',	       'csi',         None,      'none', False, False, False, False),
+    ('dsi_b_d1_n',	       'csi',         None,      'none', False, False, False, False),
+    ('dsi_b_d1_p',	       'csi',         None,      'none', False, False, False, False),
+    ('dsi_b_d2_n',	       'csi',         None,      'none', False, False, False, False),
+    ('dsi_b_d2_p',	       'csi',         None,      'none', False, False, False, False),
+    ('dsi_b_d3_n',	       'csi',         None,      'none', False, False, False, False),
+    ('dsi_b_d3_p',	       'csi',         None,      'none', False, False, False, False),
 )
 
 drive_groups = (
diff --git a/configs/norrin.board b/configs/norrin.board
index d96d366..1939e6b 100644
--- a/configs/norrin.board
+++ b/configs/norrin.board
@@ -192,6 +192,16 @@ pins = (
     ('usb_vbus_en0_pn4',       'usb',         None,      'none', False, True,  True,  False),
     ('usb_vbus_en1_pn5',       'usb',         None,      'none', False, True,  True,  False),
     ('dp_hpd_pff0',            'dp',          None,      'up',   False, True,  False, False),
+    ('dsi_b_clk_n',	       'csi',         None,      'none', False, False, False, False),
+    ('dsi_b_clk_p',	       'csi',         None,      'none', False, False, False, False),
+    ('dsi_b_d0_n',	       'csi',         None,      'none', False, False, False, False),
+    ('dsi_b_d0_p',	       'csi',         None,      'none', False, False, False, False),
+    ('dsi_b_d1_n',	       'csi',         None,      'none', False, False, False, False),
+    ('dsi_b_d1_p',	       'csi',         None,      'none', False, False, False, False),
+    ('dsi_b_d2_n',	       'csi',         None,      'none', False, False, False, False),
+    ('dsi_b_d2_p',	       'csi',         None,      'none', False, False, False, False),
+    ('dsi_b_d3_n',	       'csi',         None,      'none', False, False, False, False),
+    ('dsi_b_d3_p',	       'csi',         None,      'none', False, False, False, False),
 )
 
 drive_groups = (
diff --git a/configs/tegra124.soc b/configs/tegra124.soc
index 1e13bba..1f4611a 100644
--- a/configs/tegra124.soc
+++ b/configs/tegra124.soc
@@ -203,6 +203,16 @@ pins = (
     ('owr',          0x3334, 'owr',    'rsvd2', 'rsvd3', 'rsvd4',       False, False, True),
     ('clk_32k_in',   0x3330, 'clk',    'rsvd2', 'rsvd3', 'rsvd4',       False, False, False),
     ('jtag_rtck',    0x32b0, 'rtck',   'rsvd2', 'rsvd3', 'rsvd4',       False, False, False),
+    ('dsi_b_clk_p',  0x820,  'csi',    'dsi_b', 'rsvd3', 'rsvd4',       False, False, False),
+    ('dsi_b_clk_n',  0x820,  'csi',    'dsi_b', 'rsvd3', 'rsvd4',       False, False, False),
+    ('dsi_b_d0_p',   0x820,  'csi',    'dsi_b', 'rsvd3', 'rsvd4',       False, False, False),
+    ('dsi_b_d0_n',   0x820,  'csi',    'dsi_b', 'rsvd3', 'rsvd4',       False, False, False),
+    ('dsi_b_d1_p',   0x820,  'csi',    'dsi_b', 'rsvd3', 'rsvd4',       False, False, False),
+    ('dsi_b_d1_n',   0x820,  'csi',    'dsi_b', 'rsvd3', 'rsvd4',       False, False, False),
+    ('dsi_b_d2_p',   0x820,  'csi',    'dsi_b', 'rsvd3', 'rsvd4',       False, False, False),
+    ('dsi_b_d2_n',   0x820,  'csi',    'dsi_b', 'rsvd3', 'rsvd4',       False, False, False),
+    ('dsi_b_d3_p',   0x820,  'csi',    'dsi_b', 'rsvd3', 'rsvd4',       False, False, False),
+    ('dsi_b_d3_n',   0x820,  'csi',    'dsi_b', 'rsvd3', 'rsvd4',       False, False, False),
 )
 
 drive_groups = (
@@ -523,4 +533,16 @@ drive_group_pins = {
     'ao4': (
         'jtag_rtck',
     ),
+    'apb_dsi_b': (
+	'dsi_b_clk_p',
+	'dsi_b_clk_n',
+	'dsi_b_d0_p',
+	'dsi_b_d0_n',
+	'dsi_b_d1_p',
+	'dsi_b_d1_n',
+	'dsi_b_d2_p',
+	'dsi_b_d2_n',
+	'dsi_b_d3_p',
+	'dsi_b_d3_n',
+    ),
 }
diff --git a/configs/venice2.board b/configs/venice2.board
index ea888e8..fb4f6a1 100644
--- a/configs/venice2.board
+++ b/configs/venice2.board
@@ -192,6 +192,16 @@ pins = (
     ('usb_vbus_en0_pn4',       'usb',         None,      'none', False, True,  True,  False),
     ('usb_vbus_en1_pn5',       'usb',         None,      'none', False, True,  True,  False),
     ('dp_hpd_pff0',            'dp',          None,      'up',   False, True,  False, False),
+    ('dsi_b_clk_n',	       'csi',         None,      'none', False, False, False, False),
+    ('dsi_b_clk_p',	       'csi',         None,      'none', False, False, False, False),
+    ('dsi_b_d0_n',	       'csi',         None,      'none', False, False, False, False),
+    ('dsi_b_d0_p',	       'csi',         None,      'none', False, False, False, False),
+    ('dsi_b_d1_n',	       'csi',         None,      'none', False, False, False, False),
+    ('dsi_b_d1_p',	       'csi',         None,      'none', False, False, False, False),
+    ('dsi_b_d2_n',	       'csi',         None,      'none', False, False, False, False),
+    ('dsi_b_d2_p',	       'csi',         None,      'none', False, False, False, False),
+    ('dsi_b_d3_n',	       'csi',         None,      'none', False, False, False, False),
+    ('dsi_b_d3_p',	       'csi',         None,      'none', False, False, False, False),
 )
 
 drive_groups = (
-- 
2.0.0

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [tegra-pinmux-scripts PATCH] Add APB misc MIPI pad control
       [not found] ` <1409845617-22025-1-git-send-email-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
@ 2014-09-04 16:14   ` Stephen Warren
  0 siblings, 0 replies; 2+ messages in thread
From: Stephen Warren @ 2014-09-04 16:14 UTC (permalink / raw)
  To: Sean Paul, linux-tegra-u79uwXL29TY76Z2rM5mHXA

On 09/04/2014 09:46 AM, Sean Paul wrote:
> This patch adds MIPI CSI/DSIB pad control mux register
> from the APB misc block to tegra pinctrl.
>
> Without writing to this register, the dsib pads are
> muxed as csi, and cannot be used.
>
> The register is not yet documented in the TRM, here is
> the description:
>
> 70000820: APB_MISC_GP_MIPI_PAD_CTRL_0
> 	[31:02] RESERVED
> 	[01:01] DSIB_MODE       [CSI=0,DSIB=1]
> 	[00:00] RESERVED

> diff --git a/configs/jetson-tk1.board b/configs/jetson-tk1.board

> @@ -192,6 +192,16 @@ pins = (
>       ('usb_vbus_en0_pn4',       'usb',          None,      'up',   False, True,  True,  False),
>       ('usb_vbus_en1_pn5',       'usb',          None,      'up',   False, True,  True,  False),
>       ('dp_hpd_pff0',            'dp',           None,      'up',   False, True,  False, False),
> +    ('dsi_b_clk_n',	       'csi',         None,      'none', False, False, False, False),
> +    ('dsi_b_clk_p',	       'csi',         None,      'none', False, False, False, False),
> +    ('dsi_b_d0_n',	       'csi',         None,      'none', False, False, False, False),
> +    ('dsi_b_d0_p',	       'csi',         None,      'none', False, False, False, False),
> +    ('dsi_b_d1_n',	       'csi',         None,      'none', False, False, False, False),
> +    ('dsi_b_d1_p',	       'csi',         None,      'none', False, False, False, False),
> +    ('dsi_b_d2_n',	       'csi',         None,      'none', False, False, False, False),
> +    ('dsi_b_d2_p',	       'csi',         None,      'none', False, False, False, False),
> +    ('dsi_b_d3_n',	       'csi',         None,      'none', False, False, False, False),
> +    ('dsi_b_d3_p',	       'csi',         None,      'none', False, False, False, False),

Mux functions get selected on pin groups, not individual pins (it's just 
that in Tegra30+, most pin groups contain just a single pin of the same 
name). So, I would expect only a single "dsi_b" entry in the *.board files.

Do all the "False" properties here cause a DT property to be emitted to 
set those values (e.g. nvidia,tristate=<0>)? tegra124.soc's pin array 
only has Booleans for some of the properties to avoid this. A special 
case (or extra per-pin properties) to avoid that might be nice. I wonder 
if we need a separate array for the mipi padctrl, like we have separate 
arrays for pins and drive_groups?

> diff --git a/configs/tegra124.soc b/configs/tegra124.soc

> @@ -523,4 +533,16 @@ drive_group_pins = {
>       'ao4': (
>           'jtag_rtck',
>       ),
> +    'apb_dsi_b': (
> +	'dsi_b_clk_p',
> +	'dsi_b_clk_n',

Indentation here looks like a mix of TABs and spaces. The rest of the 
file just uses spaces.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2014-09-04 16:14 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-04 15:46 [tegra-pinmux-scripts PATCH] Add APB misc MIPI pad control Sean Paul
     [not found] ` <1409845617-22025-1-git-send-email-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2014-09-04 16:14   ` Stephen Warren

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).