ARM: ti81xx: Add hwmod boilerplate for all GPIO and SPI peripherals

GPIO3/4 and MCSPI2/3/4 are now present. Lightly tested on am3874
platform.

Signed-off-by: Graeme Smecher <gsmecher@threespeedlogic.com>
[tony@atomide.com: split to apply hwmod and dts changes separately]
Signed-off-by: Tony Lindgren <tony@atomide.com>
This commit is contained in:
Graeme Smecher 2019-01-03 15:16:27 -08:00 committed by Tony Lindgren
parent fee3b67480
commit d27cda291b
1 changed files with 117 additions and 0 deletions

View File

@ -539,6 +539,58 @@ static struct omap_hwmod_ocp_if dm81xx_l4_ls__gpio2 = {
.user = OCP_USER_MPU, .user = OCP_USER_MPU,
}; };
static struct omap_hwmod_opt_clk gpio3_opt_clks[] = {
{ .role = "dbclk", .clk = "sysclk18_ck" },
};
static struct omap_hwmod dm81xx_gpio3_hwmod = {
.name = "gpio3",
.clkdm_name = "alwon_l3s_clkdm",
.class = &dm81xx_gpio_hwmod_class,
.main_clk = "sysclk6_ck",
.prcm = {
.omap4 = {
.clkctrl_offs = DM81XX_CM_ALWON_GPIO_1_CLKCTRL,
.modulemode = MODULEMODE_SWCTRL,
},
},
.opt_clks = gpio3_opt_clks,
.opt_clks_cnt = ARRAY_SIZE(gpio3_opt_clks),
};
static struct omap_hwmod_ocp_if dm81xx_l4_ls__gpio3 = {
.master = &dm81xx_l4_ls_hwmod,
.slave = &dm81xx_gpio3_hwmod,
.clk = "sysclk6_ck",
.user = OCP_USER_MPU,
};
static struct omap_hwmod_opt_clk gpio4_opt_clks[] = {
{ .role = "dbclk", .clk = "sysclk18_ck" },
};
static struct omap_hwmod dm81xx_gpio4_hwmod = {
.name = "gpio4",
.clkdm_name = "alwon_l3s_clkdm",
.class = &dm81xx_gpio_hwmod_class,
.main_clk = "sysclk6_ck",
.prcm = {
.omap4 = {
.clkctrl_offs = DM81XX_CM_ALWON_GPIO_1_CLKCTRL,
.modulemode = MODULEMODE_SWCTRL,
},
},
.opt_clks = gpio4_opt_clks,
.opt_clks_cnt = ARRAY_SIZE(gpio4_opt_clks),
};
static struct omap_hwmod_ocp_if dm81xx_l4_ls__gpio4 = {
.master = &dm81xx_l4_ls_hwmod,
.slave = &dm81xx_gpio4_hwmod,
.clk = "sysclk6_ck",
.user = OCP_USER_MPU,
};
static struct omap_hwmod_class_sysconfig dm81xx_gpmc_sysc = { static struct omap_hwmod_class_sysconfig dm81xx_gpmc_sysc = {
.rev_offs = 0x0, .rev_offs = 0x0,
.sysc_offs = 0x10, .sysc_offs = 0x10,
@ -1133,6 +1185,45 @@ static struct omap_hwmod dm81xx_mcspi1_hwmod = {
.class = &dm816x_mcspi_class, .class = &dm816x_mcspi_class,
}; };
static struct omap_hwmod dm81xx_mcspi2_hwmod = {
.name = "mcspi2",
.clkdm_name = "alwon_l3s_clkdm",
.main_clk = "sysclk10_ck",
.prcm = {
.omap4 = {
.clkctrl_offs = DM81XX_CM_ALWON_SPI_CLKCTRL,
.modulemode = MODULEMODE_SWCTRL,
},
},
.class = &dm816x_mcspi_class,
};
static struct omap_hwmod dm81xx_mcspi3_hwmod = {
.name = "mcspi3",
.clkdm_name = "alwon_l3s_clkdm",
.main_clk = "sysclk10_ck",
.prcm = {
.omap4 = {
.clkctrl_offs = DM81XX_CM_ALWON_SPI_CLKCTRL,
.modulemode = MODULEMODE_SWCTRL,
},
},
.class = &dm816x_mcspi_class,
};
static struct omap_hwmod dm81xx_mcspi4_hwmod = {
.name = "mcspi4",
.clkdm_name = "alwon_l3s_clkdm",
.main_clk = "sysclk10_ck",
.prcm = {
.omap4 = {
.clkctrl_offs = DM81XX_CM_ALWON_SPI_CLKCTRL,
.modulemode = MODULEMODE_SWCTRL,
},
},
.class = &dm816x_mcspi_class,
};
static struct omap_hwmod_ocp_if dm81xx_l4_ls__mcspi1 = { static struct omap_hwmod_ocp_if dm81xx_l4_ls__mcspi1 = {
.master = &dm81xx_l4_ls_hwmod, .master = &dm81xx_l4_ls_hwmod,
.slave = &dm81xx_mcspi1_hwmod, .slave = &dm81xx_mcspi1_hwmod,
@ -1140,6 +1231,27 @@ static struct omap_hwmod_ocp_if dm81xx_l4_ls__mcspi1 = {
.user = OCP_USER_MPU, .user = OCP_USER_MPU,
}; };
static struct omap_hwmod_ocp_if dm81xx_l4_ls__mcspi2 = {
.master = &dm81xx_l4_ls_hwmod,
.slave = &dm81xx_mcspi2_hwmod,
.clk = "sysclk6_ck",
.user = OCP_USER_MPU,
};
static struct omap_hwmod_ocp_if dm81xx_l4_ls__mcspi3 = {
.master = &dm81xx_l4_ls_hwmod,
.slave = &dm81xx_mcspi3_hwmod,
.clk = "sysclk6_ck",
.user = OCP_USER_MPU,
};
static struct omap_hwmod_ocp_if dm81xx_l4_ls__mcspi4 = {
.master = &dm81xx_l4_ls_hwmod,
.slave = &dm81xx_mcspi4_hwmod,
.clk = "sysclk6_ck",
.user = OCP_USER_MPU,
};
static struct omap_hwmod_class_sysconfig dm81xx_mailbox_sysc = { static struct omap_hwmod_class_sysconfig dm81xx_mailbox_sysc = {
.rev_offs = 0x000, .rev_offs = 0x000,
.sysc_offs = 0x010, .sysc_offs = 0x010,
@ -1378,8 +1490,13 @@ static struct omap_hwmod_ocp_if *dm814x_hwmod_ocp_ifs[] __initdata = {
&dm81xx_l4_ls__i2c2, &dm81xx_l4_ls__i2c2,
&dm81xx_l4_ls__gpio1, &dm81xx_l4_ls__gpio1,
&dm81xx_l4_ls__gpio2, &dm81xx_l4_ls__gpio2,
&dm81xx_l4_ls__gpio3,
&dm81xx_l4_ls__gpio4,
&dm81xx_l4_ls__elm, &dm81xx_l4_ls__elm,
&dm81xx_l4_ls__mcspi1, &dm81xx_l4_ls__mcspi1,
&dm81xx_l4_ls__mcspi2,
&dm81xx_l4_ls__mcspi3,
&dm81xx_l4_ls__mcspi4,
&dm814x_l4_ls__mmc1, &dm814x_l4_ls__mmc1,
&dm814x_l4_ls__mmc2, &dm814x_l4_ls__mmc2,
&ti81xx_l4_ls__rtc, &ti81xx_l4_ls__rtc,