Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6996e085 authored by Peter De Schrijver's avatar Peter De Schrijver Committed by Olof Johansson
Browse files

arm/tegra: prepare pinmux code for multiple tegra variants



This patch modifies the pinmux code to be useable for multiple tegra variants.
Some tegra20 specific constants will be replaced by variables which will be
initialized to the appropriate value at runtime.

Signed-off-by: default avatarPeter De Schrijver <pdeschrijver@nvidia.com>
Acked-by: default avatarStephen Warren <swarren@nvidia.com>
Acked-by: default avatarColin Cross <ccross@android.com>
Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
parent 57be3bdb
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@
#include <asm/mach-types.h>

#include <mach/pinmux.h>
#include <mach/pinmux-tegra20.h>
#include "board.h"
#include "board-harmony.h"

+1 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@
#include <linux/of.h>

#include <mach/pinmux.h>
#include <mach/pinmux-tegra20.h>

#include "gpio-names.h"
#include "board-harmony.h"
+1 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@
#include <linux/of.h>

#include <mach/pinmux.h>
#include <mach/pinmux-tegra20.h>

#include "gpio-names.h"
#include "board-paz00.h"
+1 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@
#include <linux/of.h>

#include <mach/pinmux.h>
#include <mach/pinmux-tegra20.h>

#include "gpio-names.h"
#include "board-trimslice.h"
+10 −15
Original line number Diff line number Diff line
@@ -17,12 +17,6 @@
#ifndef __MACH_TEGRA_PINMUX_H
#define __MACH_TEGRA_PINMUX_H

#if defined(CONFIG_ARCH_TEGRA_2x_SOC)
#include "pinmux-tegra20.h"
#else
#error "Undefined Tegra architecture"
#endif

enum tegra_mux_func {
	TEGRA_MUX_RSVD = 0x8000,
	TEGRA_MUX_RSVD1 = 0x8000,
@@ -118,7 +112,7 @@ enum tegra_vddio {
};

struct tegra_pingroup_config {
	enum tegra_pingroup	pingroup;
	int pingroup;
	enum tegra_mux_func	func;
	enum tegra_pullupdown	pupd;
	enum tegra_tristate	tristate;
@@ -187,7 +181,7 @@ enum tegra_schmitt {
};

struct tegra_drive_pingroup_config {
	enum tegra_drive_pingroup pingroup;
	int pingroup;
	enum tegra_hsm hsm;
	enum tegra_schmitt schmitt;
	enum tegra_drive drive;
@@ -219,13 +213,15 @@ struct tegra_pingroup_desc {
	s8 pupd_bit;	/* offset into the PULL_UPDOWN_REG_* register bit */
};

extern const struct tegra_pingroup_desc tegra_soc_pingroups[];
extern const struct tegra_drive_pingroup_desc tegra_soc_drive_pingroups[];
typedef void (*pinmux_init) (const struct tegra_pingroup_desc **pg,
	int *pg_max, const struct tegra_drive_pingroup_desc **pgdrive,
	int *pgdrive_max);

int tegra_pinmux_set_tristate(enum tegra_pingroup pg,
	enum tegra_tristate tristate);
int tegra_pinmux_set_pullupdown(enum tegra_pingroup pg,
	enum tegra_pullupdown pupd);
void tegra20_pinmux_init(const struct tegra_pingroup_desc **pg, int *pg_max,
	const struct tegra_drive_pingroup_desc **pgdrive, int *pgdrive_max);

int tegra_pinmux_set_tristate(int pg, enum tegra_tristate tristate);
int tegra_pinmux_set_pullupdown(int pg, enum tegra_pullupdown pupd);

void tegra_pinmux_config_table(const struct tegra_pingroup_config *config,
	int len);
@@ -241,4 +237,3 @@ void tegra_pinmux_config_tristate_table(const struct tegra_pingroup_config *conf
void tegra_pinmux_config_pullupdown_table(const struct tegra_pingroup_config *config,
	int len, enum tegra_pullupdown pupd);
#endif
Loading