Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

soc/tegra: pmc: Add I/O pad table for Tegra234

Add I/O pad table for Tegra234 to allow configuring DPD mode and
switching the pins to 1.8V or 3.3V as needed.

On Tegra234, DPD registers are reorganized such that there is a DPD_REQ
register and a DPD_STATUS register per pad group. Update the PMC driver
accordingly.

While at it, use the generated tables from tegra-pinmux-scripts to make
the formatting of these tables more consistent.

Signed-off-by: Petlozu Pravareshwar <petlozup@nvidia.com>
[treding@nvidia.com: generate tables from tegra-pinmux-scripts]
Signed-off-by: Thierry Reding <treding@nvidia.com>

authored by

Petlozu Pravareshwar and committed by
Thierry Reding
c9c4ddb2 cc5b2ad5

+406 -256
+403 -253
drivers/soc/tegra/pmc.c
··· 269 269 struct tegra_io_pad_soc { 270 270 enum tegra_io_pad id; 271 271 unsigned int dpd; 272 + unsigned int request; 273 + unsigned int status; 272 274 unsigned int voltage; 273 275 const char *name; 274 276 }; 275 277 276 278 struct tegra_pmc_regs { 277 279 unsigned int scratch0; 278 - unsigned int dpd_req; 279 - unsigned int dpd_status; 280 - unsigned int dpd2_req; 281 - unsigned int dpd2_status; 282 280 unsigned int rst_status; 283 281 unsigned int rst_source_shift; 284 282 unsigned int rst_source_mask; ··· 1538 1540 return NULL; 1539 1541 } 1540 1542 1541 - static int tegra_io_pad_get_dpd_register_bit(struct tegra_pmc *pmc, 1542 - enum tegra_io_pad id, 1543 - unsigned long *request, 1544 - unsigned long *status, 1545 - u32 *mask) 1546 - { 1547 - const struct tegra_io_pad_soc *pad; 1548 - 1549 - pad = tegra_io_pad_find(pmc, id); 1550 - if (!pad) { 1551 - dev_err(pmc->dev, "invalid I/O pad ID %u\n", id); 1552 - return -ENOENT; 1553 - } 1554 - 1555 - if (pad->dpd == UINT_MAX) 1556 - return -ENOTSUPP; 1557 - 1558 - *mask = BIT(pad->dpd % 32); 1559 - 1560 - if (pad->dpd < 32) { 1561 - *status = pmc->soc->regs->dpd_status; 1562 - *request = pmc->soc->regs->dpd_req; 1563 - } else { 1564 - *status = pmc->soc->regs->dpd2_status; 1565 - *request = pmc->soc->regs->dpd2_req; 1566 - } 1567 - 1568 - return 0; 1569 - } 1570 - 1571 - static int tegra_io_pad_prepare(struct tegra_pmc *pmc, enum tegra_io_pad id, 1572 - unsigned long *request, unsigned long *status, 1543 + static int tegra_io_pad_prepare(struct tegra_pmc *pmc, 1544 + const struct tegra_io_pad_soc *pad, 1545 + unsigned long *request, 1546 + unsigned long *status, 1573 1547 u32 *mask) 1574 1548 { 1575 1549 unsigned long rate, value; 1576 - int err; 1577 1550 1578 - err = tegra_io_pad_get_dpd_register_bit(pmc, id, request, status, mask); 1579 - if (err) 1580 - return err; 1551 + if (pad->dpd == UINT_MAX) 1552 + return -EINVAL; 1553 + 1554 + *request = pad->request; 1555 + *status = pad->status; 1556 + *mask = BIT(pad->dpd); 1581 1557 1582 1558 if (pmc->clk) { 1583 1559 rate = pmc->rate; ··· 1603 1631 */ 1604 1632 int tegra_io_pad_power_enable(enum tegra_io_pad id) 1605 1633 { 1634 + const struct tegra_io_pad_soc *pad; 1606 1635 unsigned long request, status; 1607 1636 u32 mask; 1608 1637 int err; 1609 1638 1639 + pad = tegra_io_pad_find(pmc, id); 1640 + if (!pad) { 1641 + dev_err(pmc->dev, "invalid I/O pad ID %u\n", id); 1642 + return -ENOENT; 1643 + } 1644 + 1610 1645 mutex_lock(&pmc->powergates_lock); 1611 1646 1612 - err = tegra_io_pad_prepare(pmc, id, &request, &status, &mask); 1647 + err = tegra_io_pad_prepare(pmc, pad, &request, &status, &mask); 1613 1648 if (err < 0) { 1614 1649 dev_err(pmc->dev, "failed to prepare I/O pad: %d\n", err); 1615 1650 goto unlock; ··· 1646 1667 */ 1647 1668 int tegra_io_pad_power_disable(enum tegra_io_pad id) 1648 1669 { 1670 + const struct tegra_io_pad_soc *pad; 1649 1671 unsigned long request, status; 1650 1672 u32 mask; 1651 1673 int err; 1652 1674 1675 + pad = tegra_io_pad_find(pmc, id); 1676 + if (!pad) { 1677 + dev_err(pmc->dev, "invalid I/O pad ID %u\n", id); 1678 + return -ENOENT; 1679 + } 1680 + 1653 1681 mutex_lock(&pmc->powergates_lock); 1654 1682 1655 - err = tegra_io_pad_prepare(pmc, id, &request, &status, &mask); 1683 + err = tegra_io_pad_prepare(pmc, pad, &request, &status, &mask); 1656 1684 if (err < 0) { 1657 1685 dev_err(pmc->dev, "failed to prepare I/O pad: %d\n", err); 1658 1686 goto unlock; ··· 1683 1697 1684 1698 static int tegra_io_pad_is_powered(struct tegra_pmc *pmc, enum tegra_io_pad id) 1685 1699 { 1686 - unsigned long request, status; 1700 + const struct tegra_io_pad_soc *pad; 1701 + unsigned long status; 1687 1702 u32 mask, value; 1688 - int err; 1689 1703 1690 - err = tegra_io_pad_get_dpd_register_bit(pmc, id, &request, &status, 1691 - &mask); 1692 - if (err) 1693 - return err; 1704 + pad = tegra_io_pad_find(pmc, id); 1705 + if (!pad) { 1706 + dev_err(pmc->dev, "invalid I/O pad ID %u\n", id); 1707 + return -ENOENT; 1708 + } 1709 + 1710 + if (pad->dpd == UINT_MAX) 1711 + return -EINVAL; 1712 + 1713 + status = pad->status; 1714 + mask = BIT(pad->dpd); 1694 1715 1695 1716 value = tegra_pmc_readl(pmc, status); 1696 1717 ··· 3043 3050 3044 3051 static const struct tegra_pmc_regs tegra20_pmc_regs = { 3045 3052 .scratch0 = 0x50, 3046 - .dpd_req = 0x1b8, 3047 - .dpd_status = 0x1bc, 3048 - .dpd2_req = 0x1c0, 3049 - .dpd2_status = 0x1c4, 3050 3053 .rst_status = 0x1b4, 3051 3054 .rst_source_shift = 0x0, 3052 3055 .rst_source_mask = 0x7, ··· 3286 3297 TEGRA_POWERGATE_CPU3, 3287 3298 }; 3288 3299 3289 - #define TEGRA_IO_PAD(_id, _dpd, _voltage, _name) \ 3290 - ((struct tegra_io_pad_soc) { \ 3291 - .id = (_id), \ 3292 - .dpd = (_dpd), \ 3293 - .voltage = (_voltage), \ 3294 - .name = (_name), \ 3300 + #define TEGRA_IO_PAD(_id, _dpd, _request, _status, _voltage, _name) \ 3301 + ((struct tegra_io_pad_soc) { \ 3302 + .id = (_id), \ 3303 + .dpd = (_dpd), \ 3304 + .request = (_request), \ 3305 + .status = (_status), \ 3306 + .voltage = (_voltage), \ 3307 + .name = (_name), \ 3295 3308 }) 3296 3309 3297 - #define TEGRA_IO_PIN_DESC(_id, _dpd, _voltage, _name) \ 3298 - ((struct pinctrl_pin_desc) { \ 3299 - .number = (_id), \ 3300 - .name = (_name) \ 3310 + #define TEGRA_IO_PIN_DESC(_id, _name) \ 3311 + ((struct pinctrl_pin_desc) { \ 3312 + .number = (_id), \ 3313 + .name = (_name), \ 3301 3314 }) 3302 - 3303 - #define TEGRA124_IO_PAD_TABLE(_pad) \ 3304 - /* .id .dpd .voltage .name */ \ 3305 - _pad(TEGRA_IO_PAD_AUDIO, 17, UINT_MAX, "audio"), \ 3306 - _pad(TEGRA_IO_PAD_BB, 15, UINT_MAX, "bb"), \ 3307 - _pad(TEGRA_IO_PAD_CAM, 36, UINT_MAX, "cam"), \ 3308 - _pad(TEGRA_IO_PAD_COMP, 22, UINT_MAX, "comp"), \ 3309 - _pad(TEGRA_IO_PAD_CSIA, 0, UINT_MAX, "csia"), \ 3310 - _pad(TEGRA_IO_PAD_CSIB, 1, UINT_MAX, "csb"), \ 3311 - _pad(TEGRA_IO_PAD_CSIE, 44, UINT_MAX, "cse"), \ 3312 - _pad(TEGRA_IO_PAD_DSI, 2, UINT_MAX, "dsi"), \ 3313 - _pad(TEGRA_IO_PAD_DSIB, 39, UINT_MAX, "dsib"), \ 3314 - _pad(TEGRA_IO_PAD_DSIC, 40, UINT_MAX, "dsic"), \ 3315 - _pad(TEGRA_IO_PAD_DSID, 41, UINT_MAX, "dsid"), \ 3316 - _pad(TEGRA_IO_PAD_HDMI, 28, UINT_MAX, "hdmi"), \ 3317 - _pad(TEGRA_IO_PAD_HSIC, 19, UINT_MAX, "hsic"), \ 3318 - _pad(TEGRA_IO_PAD_HV, 38, UINT_MAX, "hv"), \ 3319 - _pad(TEGRA_IO_PAD_LVDS, 57, UINT_MAX, "lvds"), \ 3320 - _pad(TEGRA_IO_PAD_MIPI_BIAS, 3, UINT_MAX, "mipi-bias"), \ 3321 - _pad(TEGRA_IO_PAD_NAND, 13, UINT_MAX, "nand"), \ 3322 - _pad(TEGRA_IO_PAD_PEX_BIAS, 4, UINT_MAX, "pex-bias"), \ 3323 - _pad(TEGRA_IO_PAD_PEX_CLK1, 5, UINT_MAX, "pex-clk1"), \ 3324 - _pad(TEGRA_IO_PAD_PEX_CLK2, 6, UINT_MAX, "pex-clk2"), \ 3325 - _pad(TEGRA_IO_PAD_PEX_CNTRL, 32, UINT_MAX, "pex-cntrl"), \ 3326 - _pad(TEGRA_IO_PAD_SDMMC1, 33, UINT_MAX, "sdmmc1"), \ 3327 - _pad(TEGRA_IO_PAD_SDMMC3, 34, UINT_MAX, "sdmmc3"), \ 3328 - _pad(TEGRA_IO_PAD_SDMMC4, 35, UINT_MAX, "sdmmc4"), \ 3329 - _pad(TEGRA_IO_PAD_SYS_DDC, 58, UINT_MAX, "sys_ddc"), \ 3330 - _pad(TEGRA_IO_PAD_UART, 14, UINT_MAX, "uart"), \ 3331 - _pad(TEGRA_IO_PAD_USB0, 9, UINT_MAX, "usb0"), \ 3332 - _pad(TEGRA_IO_PAD_USB1, 10, UINT_MAX, "usb1"), \ 3333 - _pad(TEGRA_IO_PAD_USB2, 11, UINT_MAX, "usb2"), \ 3334 - _pad(TEGRA_IO_PAD_USB_BIAS, 12, UINT_MAX, "usb_bias") 3335 3315 3336 3316 static const struct tegra_io_pad_soc tegra124_io_pads[] = { 3337 - TEGRA124_IO_PAD_TABLE(TEGRA_IO_PAD) 3317 + TEGRA_IO_PAD(TEGRA_IO_PAD_AUDIO, 17, 0x1b8, 0x1bc, UINT_MAX, "audio"), 3318 + TEGRA_IO_PAD(TEGRA_IO_PAD_BB, 15, 0x1b8, 0x1bc, UINT_MAX, "bb"), 3319 + TEGRA_IO_PAD(TEGRA_IO_PAD_CAM, 4, 0x1c0, 0x1c4, UINT_MAX, "cam"), 3320 + TEGRA_IO_PAD(TEGRA_IO_PAD_COMP, 22, 0x1b8, 0x1bc, UINT_MAX, "comp"), 3321 + TEGRA_IO_PAD(TEGRA_IO_PAD_CSIA, 0, 0x1b8, 0x1bc, UINT_MAX, "csia"), 3322 + TEGRA_IO_PAD(TEGRA_IO_PAD_CSIB, 1, 0x1b8, 0x1bc, UINT_MAX, "csib"), 3323 + TEGRA_IO_PAD(TEGRA_IO_PAD_CSIE, 12, 0x1c0, 0x1c4, UINT_MAX, "csie"), 3324 + TEGRA_IO_PAD(TEGRA_IO_PAD_DSI, 2, 0x1b8, 0x1bc, UINT_MAX, "dsi"), 3325 + TEGRA_IO_PAD(TEGRA_IO_PAD_DSIB, 7, 0x1c0, 0x1c4, UINT_MAX, "dsib"), 3326 + TEGRA_IO_PAD(TEGRA_IO_PAD_DSIC, 8, 0x1c0, 0x1c4, UINT_MAX, "dsic"), 3327 + TEGRA_IO_PAD(TEGRA_IO_PAD_DSID, 9, 0x1c0, 0x1c4, UINT_MAX, "dsid"), 3328 + TEGRA_IO_PAD(TEGRA_IO_PAD_HDMI, 28, 0x1b8, 0x1bc, UINT_MAX, "hdmi"), 3329 + TEGRA_IO_PAD(TEGRA_IO_PAD_HSIC, 19, 0x1b8, 0x1bc, UINT_MAX, "hsic"), 3330 + TEGRA_IO_PAD(TEGRA_IO_PAD_HV, 6, 0x1c0, 0x1c4, UINT_MAX, "hv"), 3331 + TEGRA_IO_PAD(TEGRA_IO_PAD_LVDS, 25, 0x1c0, 0x1c4, UINT_MAX, "lvds"), 3332 + TEGRA_IO_PAD(TEGRA_IO_PAD_MIPI_BIAS, 3, 0x1b8, 0x1bc, UINT_MAX, "mipi-bias"), 3333 + TEGRA_IO_PAD(TEGRA_IO_PAD_NAND, 13, 0x1b8, 0x1bc, UINT_MAX, "nand"), 3334 + TEGRA_IO_PAD(TEGRA_IO_PAD_PEX_BIAS, 4, 0x1b8, 0x1bc, UINT_MAX, "pex-bias"), 3335 + TEGRA_IO_PAD(TEGRA_IO_PAD_PEX_CLK1, 5, 0x1b8, 0x1bc, UINT_MAX, "pex-clk1"), 3336 + TEGRA_IO_PAD(TEGRA_IO_PAD_PEX_CLK2, 6, 0x1b8, 0x1bc, UINT_MAX, "pex-clk2"), 3337 + TEGRA_IO_PAD(TEGRA_IO_PAD_PEX_CNTRL, 0, 0x1c0, 0x1c4, UINT_MAX, "pex-cntrl"), 3338 + TEGRA_IO_PAD(TEGRA_IO_PAD_SDMMC1, 1, 0x1c0, 0x1c4, UINT_MAX, "sdmmc1"), 3339 + TEGRA_IO_PAD(TEGRA_IO_PAD_SDMMC3, 2, 0x1c0, 0x1c4, UINT_MAX, "sdmmc3"), 3340 + TEGRA_IO_PAD(TEGRA_IO_PAD_SDMMC4, 3, 0x1c0, 0x1c4, UINT_MAX, "sdmmc4"), 3341 + TEGRA_IO_PAD(TEGRA_IO_PAD_SYS_DDC, 26, 0x1c0, 0x1c4, UINT_MAX, "sys_ddc"), 3342 + TEGRA_IO_PAD(TEGRA_IO_PAD_UART, 14, 0x1b8, 0x1bc, UINT_MAX, "uart"), 3343 + TEGRA_IO_PAD(TEGRA_IO_PAD_USB0, 9, 0x1b8, 0x1bc, UINT_MAX, "usb0"), 3344 + TEGRA_IO_PAD(TEGRA_IO_PAD_USB1, 10, 0x1b8, 0x1bc, UINT_MAX, "usb1"), 3345 + TEGRA_IO_PAD(TEGRA_IO_PAD_USB2, 11, 0x1b8, 0x1bc, UINT_MAX, "usb2"), 3346 + TEGRA_IO_PAD(TEGRA_IO_PAD_USB_BIAS, 12, 0x1b8, 0x1bc, UINT_MAX, "usb_bias"), 3338 3347 }; 3339 3348 3340 3349 static const struct pinctrl_pin_desc tegra124_pin_descs[] = { 3341 - TEGRA124_IO_PAD_TABLE(TEGRA_IO_PIN_DESC) 3350 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_AUDIO, "audio"), 3351 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_BB, "bb"), 3352 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CAM, "cam"), 3353 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_COMP, "comp"), 3354 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CSIA, "csia"), 3355 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CSIB, "csib"), 3356 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CSIE, "csie"), 3357 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_DSI, "dsi"), 3358 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_DSIB, "dsib"), 3359 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_DSIC, "dsic"), 3360 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_DSID, "dsid"), 3361 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_HDMI, "hdmi"), 3362 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_HSIC, "hsic"), 3363 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_HV, "hv"), 3364 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_LVDS, "lvds"), 3365 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_MIPI_BIAS, "mipi-bias"), 3366 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_NAND, "nand"), 3367 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_PEX_BIAS, "pex-bias"), 3368 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_PEX_CLK1, "pex-clk1"), 3369 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_PEX_CLK2, "pex-clk2"), 3370 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_PEX_CNTRL, "pex-cntrl"), 3371 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_SDMMC1, "sdmmc1"), 3372 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_SDMMC3, "sdmmc3"), 3373 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_SDMMC4, "sdmmc4"), 3374 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_SYS_DDC, "sys_ddc"), 3375 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_UART, "uart"), 3376 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_USB0, "usb0"), 3377 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_USB1, "usb1"), 3378 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_USB2, "usb2"), 3379 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_USB_BIAS, "usb_bias"), 3342 3380 }; 3343 3381 3344 3382 static const struct tegra_pmc_soc tegra124_pmc_soc = { ··· 3431 3415 TEGRA_POWERGATE_CPU3, 3432 3416 }; 3433 3417 3434 - #define TEGRA210_IO_PAD_TABLE(_pad) \ 3435 - /* .id .dpd .voltage .name */ \ 3436 - _pad(TEGRA_IO_PAD_AUDIO, 17, 5, "audio"), \ 3437 - _pad(TEGRA_IO_PAD_AUDIO_HV, 61, 18, "audio-hv"), \ 3438 - _pad(TEGRA_IO_PAD_CAM, 36, 10, "cam"), \ 3439 - _pad(TEGRA_IO_PAD_CSIA, 0, UINT_MAX, "csia"), \ 3440 - _pad(TEGRA_IO_PAD_CSIB, 1, UINT_MAX, "csib"), \ 3441 - _pad(TEGRA_IO_PAD_CSIC, 42, UINT_MAX, "csic"), \ 3442 - _pad(TEGRA_IO_PAD_CSID, 43, UINT_MAX, "csid"), \ 3443 - _pad(TEGRA_IO_PAD_CSIE, 44, UINT_MAX, "csie"), \ 3444 - _pad(TEGRA_IO_PAD_CSIF, 45, UINT_MAX, "csif"), \ 3445 - _pad(TEGRA_IO_PAD_DBG, 25, 19, "dbg"), \ 3446 - _pad(TEGRA_IO_PAD_DEBUG_NONAO, 26, UINT_MAX, "debug-nonao"), \ 3447 - _pad(TEGRA_IO_PAD_DMIC, 50, 20, "dmic"), \ 3448 - _pad(TEGRA_IO_PAD_DP, 51, UINT_MAX, "dp"), \ 3449 - _pad(TEGRA_IO_PAD_DSI, 2, UINT_MAX, "dsi"), \ 3450 - _pad(TEGRA_IO_PAD_DSIB, 39, UINT_MAX, "dsib"), \ 3451 - _pad(TEGRA_IO_PAD_DSIC, 40, UINT_MAX, "dsic"), \ 3452 - _pad(TEGRA_IO_PAD_DSID, 41, UINT_MAX, "dsid"), \ 3453 - _pad(TEGRA_IO_PAD_EMMC, 35, UINT_MAX, "emmc"), \ 3454 - _pad(TEGRA_IO_PAD_EMMC2, 37, UINT_MAX, "emmc2"), \ 3455 - _pad(TEGRA_IO_PAD_GPIO, 27, 21, "gpio"), \ 3456 - _pad(TEGRA_IO_PAD_HDMI, 28, UINT_MAX, "hdmi"), \ 3457 - _pad(TEGRA_IO_PAD_HSIC, 19, UINT_MAX, "hsic"), \ 3458 - _pad(TEGRA_IO_PAD_LVDS, 57, UINT_MAX, "lvds"), \ 3459 - _pad(TEGRA_IO_PAD_MIPI_BIAS, 3, UINT_MAX, "mipi-bias"), \ 3460 - _pad(TEGRA_IO_PAD_PEX_BIAS, 4, UINT_MAX, "pex-bias"), \ 3461 - _pad(TEGRA_IO_PAD_PEX_CLK1, 5, UINT_MAX, "pex-clk1"), \ 3462 - _pad(TEGRA_IO_PAD_PEX_CLK2, 6, UINT_MAX, "pex-clk2"), \ 3463 - _pad(TEGRA_IO_PAD_PEX_CNTRL, UINT_MAX, 11, "pex-cntrl"), \ 3464 - _pad(TEGRA_IO_PAD_SDMMC1, 33, 12, "sdmmc1"), \ 3465 - _pad(TEGRA_IO_PAD_SDMMC3, 34, 13, "sdmmc3"), \ 3466 - _pad(TEGRA_IO_PAD_SPI, 46, 22, "spi"), \ 3467 - _pad(TEGRA_IO_PAD_SPI_HV, 47, 23, "spi-hv"), \ 3468 - _pad(TEGRA_IO_PAD_UART, 14, 2, "uart"), \ 3469 - _pad(TEGRA_IO_PAD_USB0, 9, UINT_MAX, "usb0"), \ 3470 - _pad(TEGRA_IO_PAD_USB1, 10, UINT_MAX, "usb1"), \ 3471 - _pad(TEGRA_IO_PAD_USB2, 11, UINT_MAX, "usb2"), \ 3472 - _pad(TEGRA_IO_PAD_USB3, 18, UINT_MAX, "usb3"), \ 3473 - _pad(TEGRA_IO_PAD_USB_BIAS, 12, UINT_MAX, "usb-bias") 3474 - 3475 3418 static const struct tegra_io_pad_soc tegra210_io_pads[] = { 3476 - TEGRA210_IO_PAD_TABLE(TEGRA_IO_PAD) 3419 + TEGRA_IO_PAD(TEGRA_IO_PAD_AUDIO, 17, 0x1b8, 0x1bc, 5, "audio"), 3420 + TEGRA_IO_PAD(TEGRA_IO_PAD_AUDIO_HV, 29, 0x1c0, 0x1c4, 18, "audio-hv"), 3421 + TEGRA_IO_PAD(TEGRA_IO_PAD_CAM, 4, 0x1c0, 0x1c4, 10, "cam"), 3422 + TEGRA_IO_PAD(TEGRA_IO_PAD_CSIA, 0, 0x1b8, 0x1bc, UINT_MAX, "csia"), 3423 + TEGRA_IO_PAD(TEGRA_IO_PAD_CSIB, 1, 0x1b8, 0x1bc, UINT_MAX, "csib"), 3424 + TEGRA_IO_PAD(TEGRA_IO_PAD_CSIC, 10, 0x1c0, 0x1c4, UINT_MAX, "csic"), 3425 + TEGRA_IO_PAD(TEGRA_IO_PAD_CSID, 11, 0x1c0, 0x1c4, UINT_MAX, "csid"), 3426 + TEGRA_IO_PAD(TEGRA_IO_PAD_CSIE, 12, 0x1c0, 0x1c4, UINT_MAX, "csie"), 3427 + TEGRA_IO_PAD(TEGRA_IO_PAD_CSIF, 13, 0x1c0, 0x1c4, UINT_MAX, "csif"), 3428 + TEGRA_IO_PAD(TEGRA_IO_PAD_DBG, 25, 0x1b8, 0x1bc, 19, "dbg"), 3429 + TEGRA_IO_PAD(TEGRA_IO_PAD_DEBUG_NONAO, 26, 0x1b8, 0x1bc, UINT_MAX, "debug-nonao"), 3430 + TEGRA_IO_PAD(TEGRA_IO_PAD_DMIC, 18, 0x1c0, 0x1c4, 20, "dmic"), 3431 + TEGRA_IO_PAD(TEGRA_IO_PAD_DP, 19, 0x1c0, 0x1c4, UINT_MAX, "dp"), 3432 + TEGRA_IO_PAD(TEGRA_IO_PAD_DSI, 2, 0x1b8, 0x1bc, UINT_MAX, "dsi"), 3433 + TEGRA_IO_PAD(TEGRA_IO_PAD_DSIB, 7, 0x1c0, 0x1c4, UINT_MAX, "dsib"), 3434 + TEGRA_IO_PAD(TEGRA_IO_PAD_DSIC, 8, 0x1c0, 0x1c4, UINT_MAX, "dsic"), 3435 + TEGRA_IO_PAD(TEGRA_IO_PAD_DSID, 9, 0x1c0, 0x1c4, UINT_MAX, "dsid"), 3436 + TEGRA_IO_PAD(TEGRA_IO_PAD_EMMC, 3, 0x1c0, 0x1c4, UINT_MAX, "emmc"), 3437 + TEGRA_IO_PAD(TEGRA_IO_PAD_EMMC2, 5, 0x1c0, 0x1c4, UINT_MAX, "emmc2"), 3438 + TEGRA_IO_PAD(TEGRA_IO_PAD_GPIO, 27, 0x1b8, 0x1bc, 21, "gpio"), 3439 + TEGRA_IO_PAD(TEGRA_IO_PAD_HDMI, 28, 0x1b8, 0x1bc, UINT_MAX, "hdmi"), 3440 + TEGRA_IO_PAD(TEGRA_IO_PAD_HSIC, 19, 0x1b8, 0x1bc, UINT_MAX, "hsic"), 3441 + TEGRA_IO_PAD(TEGRA_IO_PAD_LVDS, 25, 0x1c0, 0x1c4, UINT_MAX, "lvds"), 3442 + TEGRA_IO_PAD(TEGRA_IO_PAD_MIPI_BIAS, 3, 0x1b8, 0x1bc, UINT_MAX, "mipi-bias"), 3443 + TEGRA_IO_PAD(TEGRA_IO_PAD_PEX_BIAS, 4, 0x1b8, 0x1bc, UINT_MAX, "pex-bias"), 3444 + TEGRA_IO_PAD(TEGRA_IO_PAD_PEX_CLK1, 5, 0x1b8, 0x1bc, UINT_MAX, "pex-clk1"), 3445 + TEGRA_IO_PAD(TEGRA_IO_PAD_PEX_CLK2, 6, 0x1b8, 0x1bc, UINT_MAX, "pex-clk2"), 3446 + TEGRA_IO_PAD(TEGRA_IO_PAD_PEX_CNTRL, UINT_MAX, UINT_MAX, UINT_MAX, 11, "pex-cntrl"), 3447 + TEGRA_IO_PAD(TEGRA_IO_PAD_SDMMC1, 1, 0x1c0, 0x1c4, 12, "sdmmc1"), 3448 + TEGRA_IO_PAD(TEGRA_IO_PAD_SDMMC3, 2, 0x1c0, 0x1c4, 13, "sdmmc3"), 3449 + TEGRA_IO_PAD(TEGRA_IO_PAD_SPI, 14, 0x1c0, 0x1c4, 22, "spi"), 3450 + TEGRA_IO_PAD(TEGRA_IO_PAD_SPI_HV, 15, 0x1c0, 0x1c4, 23, "spi-hv"), 3451 + TEGRA_IO_PAD(TEGRA_IO_PAD_UART, 14, 0x1b8, 0x1bc, 2, "uart"), 3452 + TEGRA_IO_PAD(TEGRA_IO_PAD_USB0, 9, 0x1b8, 0x1bc, UINT_MAX, "usb0"), 3453 + TEGRA_IO_PAD(TEGRA_IO_PAD_USB1, 10, 0x1b8, 0x1bc, UINT_MAX, "usb1"), 3454 + TEGRA_IO_PAD(TEGRA_IO_PAD_USB2, 11, 0x1b8, 0x1bc, UINT_MAX, "usb2"), 3455 + TEGRA_IO_PAD(TEGRA_IO_PAD_USB3, 18, 0x1b8, 0x1bc, UINT_MAX, "usb3"), 3456 + TEGRA_IO_PAD(TEGRA_IO_PAD_USB_BIAS, 12, 0x1b8, 0x1bc, UINT_MAX, "usb-bias"), 3477 3457 }; 3478 3458 3479 3459 static const struct pinctrl_pin_desc tegra210_pin_descs[] = { 3480 - TEGRA210_IO_PAD_TABLE(TEGRA_IO_PIN_DESC) 3460 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_AUDIO, "audio"), 3461 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_AUDIO_HV, "audio-hv"), 3462 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CAM, "cam"), 3463 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CSIA, "csia"), 3464 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CSIB, "csib"), 3465 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CSIC, "csic"), 3466 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CSID, "csid"), 3467 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CSIE, "csie"), 3468 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CSIF, "csif"), 3469 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_DBG, "dbg"), 3470 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_DEBUG_NONAO, "debug-nonao"), 3471 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_DMIC, "dmic"), 3472 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_DP, "dp"), 3473 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_DSI, "dsi"), 3474 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_DSIB, "dsib"), 3475 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_DSIC, "dsic"), 3476 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_DSID, "dsid"), 3477 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_EMMC, "emmc"), 3478 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_EMMC2, "emmc2"), 3479 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_GPIO, "gpio"), 3480 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_HDMI, "hdmi"), 3481 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_HSIC, "hsic"), 3482 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_LVDS, "lvds"), 3483 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_MIPI_BIAS, "mipi-bias"), 3484 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_PEX_BIAS, "pex-bias"), 3485 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_PEX_CLK1, "pex-clk1"), 3486 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_PEX_CLK2, "pex-clk2"), 3487 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_PEX_CNTRL, "pex-cntrl"), 3488 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_SDMMC1, "sdmmc1"), 3489 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_SDMMC3, "sdmmc3"), 3490 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_SPI, "spi"), 3491 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_SPI_HV, "spi-hv"), 3492 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_UART, "uart"), 3493 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_USB0, "usb0"), 3494 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_USB1, "usb1"), 3495 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_USB2, "usb2"), 3496 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_USB3, "usb3"), 3497 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_USB_BIAS, "usb-bias"), 3481 3498 }; 3482 3499 3483 3500 static const char * const tegra210_reset_sources[] = { ··· 3560 3511 .has_usb_sleepwalk = true, 3561 3512 }; 3562 3513 3563 - #define TEGRA186_IO_PAD_TABLE(_pad) \ 3564 - /* .id .dpd .voltage .name */ \ 3565 - _pad(TEGRA_IO_PAD_CSIA, 0, UINT_MAX, "csia"), \ 3566 - _pad(TEGRA_IO_PAD_CSIB, 1, UINT_MAX, "csib"), \ 3567 - _pad(TEGRA_IO_PAD_DSI, 2, UINT_MAX, "dsi"), \ 3568 - _pad(TEGRA_IO_PAD_MIPI_BIAS, 3, UINT_MAX, "mipi-bias"), \ 3569 - _pad(TEGRA_IO_PAD_PEX_CLK_BIAS, 4, UINT_MAX, "pex-clk-bias"), \ 3570 - _pad(TEGRA_IO_PAD_PEX_CLK3, 5, UINT_MAX, "pex-clk3"), \ 3571 - _pad(TEGRA_IO_PAD_PEX_CLK2, 6, UINT_MAX, "pex-clk2"), \ 3572 - _pad(TEGRA_IO_PAD_PEX_CLK1, 7, UINT_MAX, "pex-clk1"), \ 3573 - _pad(TEGRA_IO_PAD_USB0, 9, UINT_MAX, "usb0"), \ 3574 - _pad(TEGRA_IO_PAD_USB1, 10, UINT_MAX, "usb1"), \ 3575 - _pad(TEGRA_IO_PAD_USB2, 11, UINT_MAX, "usb2"), \ 3576 - _pad(TEGRA_IO_PAD_USB_BIAS, 12, UINT_MAX, "usb-bias"), \ 3577 - _pad(TEGRA_IO_PAD_UART, 14, UINT_MAX, "uart"), \ 3578 - _pad(TEGRA_IO_PAD_AUDIO, 17, UINT_MAX, "audio"), \ 3579 - _pad(TEGRA_IO_PAD_HSIC, 19, UINT_MAX, "hsic"), \ 3580 - _pad(TEGRA_IO_PAD_DBG, 25, UINT_MAX, "dbg"), \ 3581 - _pad(TEGRA_IO_PAD_HDMI_DP0, 28, UINT_MAX, "hdmi-dp0"), \ 3582 - _pad(TEGRA_IO_PAD_HDMI_DP1, 29, UINT_MAX, "hdmi-dp1"), \ 3583 - _pad(TEGRA_IO_PAD_PEX_CNTRL, 32, UINT_MAX, "pex-cntrl"), \ 3584 - _pad(TEGRA_IO_PAD_SDMMC2_HV, 34, 5, "sdmmc2-hv"), \ 3585 - _pad(TEGRA_IO_PAD_SDMMC4, 36, UINT_MAX, "sdmmc4"), \ 3586 - _pad(TEGRA_IO_PAD_CAM, 38, UINT_MAX, "cam"), \ 3587 - _pad(TEGRA_IO_PAD_DSIB, 40, UINT_MAX, "dsib"), \ 3588 - _pad(TEGRA_IO_PAD_DSIC, 41, UINT_MAX, "dsic"), \ 3589 - _pad(TEGRA_IO_PAD_DSID, 42, UINT_MAX, "dsid"), \ 3590 - _pad(TEGRA_IO_PAD_CSIC, 43, UINT_MAX, "csic"), \ 3591 - _pad(TEGRA_IO_PAD_CSID, 44, UINT_MAX, "csid"), \ 3592 - _pad(TEGRA_IO_PAD_CSIE, 45, UINT_MAX, "csie"), \ 3593 - _pad(TEGRA_IO_PAD_CSIF, 46, UINT_MAX, "csif"), \ 3594 - _pad(TEGRA_IO_PAD_SPI, 47, UINT_MAX, "spi"), \ 3595 - _pad(TEGRA_IO_PAD_UFS, 49, UINT_MAX, "ufs"), \ 3596 - _pad(TEGRA_IO_PAD_DMIC_HV, 52, 2, "dmic-hv"), \ 3597 - _pad(TEGRA_IO_PAD_EDP, 53, UINT_MAX, "edp"), \ 3598 - _pad(TEGRA_IO_PAD_SDMMC1_HV, 55, 4, "sdmmc1-hv"), \ 3599 - _pad(TEGRA_IO_PAD_SDMMC3_HV, 56, 6, "sdmmc3-hv"), \ 3600 - _pad(TEGRA_IO_PAD_CONN, 60, UINT_MAX, "conn"), \ 3601 - _pad(TEGRA_IO_PAD_AUDIO_HV, 61, 1, "audio-hv"), \ 3602 - _pad(TEGRA_IO_PAD_AO_HV, UINT_MAX, 0, "ao-hv") 3603 - 3604 3514 static const struct tegra_io_pad_soc tegra186_io_pads[] = { 3605 - TEGRA186_IO_PAD_TABLE(TEGRA_IO_PAD) 3515 + TEGRA_IO_PAD(TEGRA_IO_PAD_CSIA, 0, 0x74, 0x78, UINT_MAX, "csia"), 3516 + TEGRA_IO_PAD(TEGRA_IO_PAD_CSIB, 1, 0x74, 0x78, UINT_MAX, "csib"), 3517 + TEGRA_IO_PAD(TEGRA_IO_PAD_DSI, 2, 0x74, 0x78, UINT_MAX, "dsi"), 3518 + TEGRA_IO_PAD(TEGRA_IO_PAD_MIPI_BIAS, 3, 0x74, 0x78, UINT_MAX, "mipi-bias"), 3519 + TEGRA_IO_PAD(TEGRA_IO_PAD_PEX_CLK_BIAS, 4, 0x74, 0x78, UINT_MAX, "pex-clk-bias"), 3520 + TEGRA_IO_PAD(TEGRA_IO_PAD_PEX_CLK3, 5, 0x74, 0x78, UINT_MAX, "pex-clk3"), 3521 + TEGRA_IO_PAD(TEGRA_IO_PAD_PEX_CLK2, 6, 0x74, 0x78, UINT_MAX, "pex-clk2"), 3522 + TEGRA_IO_PAD(TEGRA_IO_PAD_PEX_CLK1, 7, 0x74, 0x78, UINT_MAX, "pex-clk1"), 3523 + TEGRA_IO_PAD(TEGRA_IO_PAD_USB0, 9, 0x74, 0x78, UINT_MAX, "usb0"), 3524 + TEGRA_IO_PAD(TEGRA_IO_PAD_USB1, 10, 0x74, 0x78, UINT_MAX, "usb1"), 3525 + TEGRA_IO_PAD(TEGRA_IO_PAD_USB2, 11, 0x74, 0x78, UINT_MAX, "usb2"), 3526 + TEGRA_IO_PAD(TEGRA_IO_PAD_USB_BIAS, 12, 0x74, 0x78, UINT_MAX, "usb-bias"), 3527 + TEGRA_IO_PAD(TEGRA_IO_PAD_UART, 14, 0x74, 0x78, UINT_MAX, "uart"), 3528 + TEGRA_IO_PAD(TEGRA_IO_PAD_AUDIO, 17, 0x74, 0x78, UINT_MAX, "audio"), 3529 + TEGRA_IO_PAD(TEGRA_IO_PAD_HSIC, 19, 0x74, 0x78, UINT_MAX, "hsic"), 3530 + TEGRA_IO_PAD(TEGRA_IO_PAD_DBG, 25, 0x74, 0x78, UINT_MAX, "dbg"), 3531 + TEGRA_IO_PAD(TEGRA_IO_PAD_HDMI_DP0, 28, 0x74, 0x78, UINT_MAX, "hdmi-dp0"), 3532 + TEGRA_IO_PAD(TEGRA_IO_PAD_HDMI_DP1, 29, 0x74, 0x78, UINT_MAX, "hdmi-dp1"), 3533 + TEGRA_IO_PAD(TEGRA_IO_PAD_PEX_CNTRL, 0, 0x7c, 0x80, UINT_MAX, "pex-cntrl"), 3534 + TEGRA_IO_PAD(TEGRA_IO_PAD_SDMMC2_HV, 2, 0x7c, 0x80, 5, "sdmmc2-hv"), 3535 + TEGRA_IO_PAD(TEGRA_IO_PAD_SDMMC4, 4, 0x7c, 0x80, UINT_MAX, "sdmmc4"), 3536 + TEGRA_IO_PAD(TEGRA_IO_PAD_CAM, 6, 0x7c, 0x80, UINT_MAX, "cam"), 3537 + TEGRA_IO_PAD(TEGRA_IO_PAD_DSIB, 8, 0x7c, 0x80, UINT_MAX, "dsib"), 3538 + TEGRA_IO_PAD(TEGRA_IO_PAD_DSIC, 9, 0x7c, 0x80, UINT_MAX, "dsic"), 3539 + TEGRA_IO_PAD(TEGRA_IO_PAD_DSID, 10, 0x7c, 0x80, UINT_MAX, "dsid"), 3540 + TEGRA_IO_PAD(TEGRA_IO_PAD_CSIC, 11, 0x7c, 0x80, UINT_MAX, "csic"), 3541 + TEGRA_IO_PAD(TEGRA_IO_PAD_CSID, 12, 0x7c, 0x80, UINT_MAX, "csid"), 3542 + TEGRA_IO_PAD(TEGRA_IO_PAD_CSIE, 13, 0x7c, 0x80, UINT_MAX, "csie"), 3543 + TEGRA_IO_PAD(TEGRA_IO_PAD_CSIF, 14, 0x7c, 0x80, UINT_MAX, "csif"), 3544 + TEGRA_IO_PAD(TEGRA_IO_PAD_SPI, 15, 0x7c, 0x80, UINT_MAX, "spi"), 3545 + TEGRA_IO_PAD(TEGRA_IO_PAD_UFS, 17, 0x7c, 0x80, UINT_MAX, "ufs"), 3546 + TEGRA_IO_PAD(TEGRA_IO_PAD_DMIC_HV, 20, 0x7c, 0x80, 2, "dmic-hv"), 3547 + TEGRA_IO_PAD(TEGRA_IO_PAD_EDP, 21, 0x7c, 0x80, UINT_MAX, "edp"), 3548 + TEGRA_IO_PAD(TEGRA_IO_PAD_SDMMC1_HV, 23, 0x7c, 0x80, 4, "sdmmc1-hv"), 3549 + TEGRA_IO_PAD(TEGRA_IO_PAD_SDMMC3_HV, 24, 0x7c, 0x80, 6, "sdmmc3-hv"), 3550 + TEGRA_IO_PAD(TEGRA_IO_PAD_CONN, 28, 0x7c, 0x80, UINT_MAX, "conn"), 3551 + TEGRA_IO_PAD(TEGRA_IO_PAD_AUDIO_HV, 29, 0x7c, 0x80, 1, "audio-hv"), 3552 + TEGRA_IO_PAD(TEGRA_IO_PAD_AO_HV, UINT_MAX, UINT_MAX, UINT_MAX, 0, "ao-hv"), 3606 3553 }; 3607 3554 3608 3555 static const struct pinctrl_pin_desc tegra186_pin_descs[] = { 3609 - TEGRA186_IO_PAD_TABLE(TEGRA_IO_PIN_DESC) 3556 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CSIA, "csia"), 3557 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CSIB, "csib"), 3558 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_DSI, "dsi"), 3559 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_MIPI_BIAS, "mipi-bias"), 3560 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_PEX_CLK_BIAS, "pex-clk-bias"), 3561 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_PEX_CLK3, "pex-clk3"), 3562 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_PEX_CLK2, "pex-clk2"), 3563 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_PEX_CLK1, "pex-clk1"), 3564 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_USB0, "usb0"), 3565 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_USB1, "usb1"), 3566 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_USB2, "usb2"), 3567 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_USB_BIAS, "usb-bias"), 3568 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_UART, "uart"), 3569 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_AUDIO, "audio"), 3570 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_HSIC, "hsic"), 3571 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_DBG, "dbg"), 3572 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_HDMI_DP0, "hdmi-dp0"), 3573 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_HDMI_DP1, "hdmi-dp1"), 3574 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_PEX_CNTRL, "pex-cntrl"), 3575 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_SDMMC2_HV, "sdmmc2-hv"), 3576 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_SDMMC4, "sdmmc4"), 3577 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CAM, "cam"), 3578 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_DSIB, "dsib"), 3579 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_DSIC, "dsic"), 3580 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_DSID, "dsid"), 3581 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CSIC, "csic"), 3582 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CSID, "csid"), 3583 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CSIE, "csie"), 3584 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CSIF, "csif"), 3585 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_SPI, "spi"), 3586 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_UFS, "ufs"), 3587 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_DMIC_HV, "dmic-hv"), 3588 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_EDP, "edp"), 3589 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_SDMMC1_HV, "sdmmc1-hv"), 3590 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_SDMMC3_HV, "sdmmc3-hv"), 3591 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CONN, "conn"), 3592 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_AUDIO_HV, "audio-hv"), 3593 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_AO_HV, "ao-hv"), 3610 3594 }; 3611 3595 3612 3596 static const struct tegra_pmc_regs tegra186_pmc_regs = { 3613 3597 .scratch0 = 0x2000, 3614 - .dpd_req = 0x74, 3615 - .dpd_status = 0x78, 3616 - .dpd2_req = 0x7c, 3617 - .dpd2_status = 0x80, 3618 3598 .rst_status = 0x70, 3619 3599 .rst_source_shift = 0x2, 3620 3600 .rst_source_mask = 0x3c, ··· 3746 3668 .has_usb_sleepwalk = false, 3747 3669 }; 3748 3670 3749 - #define TEGRA194_IO_PAD_TABLE(_pad) \ 3750 - /* .id .dpd .voltage .name */ \ 3751 - _pad(TEGRA_IO_PAD_CSIA, 0, UINT_MAX, "csia"), \ 3752 - _pad(TEGRA_IO_PAD_CSIB, 1, UINT_MAX, "csib"), \ 3753 - _pad(TEGRA_IO_PAD_MIPI_BIAS, 3, UINT_MAX, "mipi-bias"), \ 3754 - _pad(TEGRA_IO_PAD_PEX_CLK_BIAS, 4, UINT_MAX, "pex-clk-bias"), \ 3755 - _pad(TEGRA_IO_PAD_PEX_CLK3, 5, UINT_MAX, "pex-clk3"), \ 3756 - _pad(TEGRA_IO_PAD_PEX_CLK2, 6, UINT_MAX, "pex-clk2"), \ 3757 - _pad(TEGRA_IO_PAD_PEX_CLK1, 7, UINT_MAX, "pex-clk1"), \ 3758 - _pad(TEGRA_IO_PAD_EQOS, 8, UINT_MAX, "eqos"), \ 3759 - _pad(TEGRA_IO_PAD_PEX_CLK_2_BIAS, 9, UINT_MAX, "pex-clk-2-bias"), \ 3760 - _pad(TEGRA_IO_PAD_PEX_CLK_2, 10, UINT_MAX, "pex-clk-2"), \ 3761 - _pad(TEGRA_IO_PAD_DAP3, 11, UINT_MAX, "dap3"), \ 3762 - _pad(TEGRA_IO_PAD_DAP5, 12, UINT_MAX, "dap5"), \ 3763 - _pad(TEGRA_IO_PAD_UART, 14, UINT_MAX, "uart"), \ 3764 - _pad(TEGRA_IO_PAD_PWR_CTL, 15, UINT_MAX, "pwr-ctl"), \ 3765 - _pad(TEGRA_IO_PAD_SOC_GPIO53, 16, UINT_MAX, "soc-gpio53"), \ 3766 - _pad(TEGRA_IO_PAD_AUDIO, 17, UINT_MAX, "audio"), \ 3767 - _pad(TEGRA_IO_PAD_GP_PWM2, 18, UINT_MAX, "gp-pwm2"), \ 3768 - _pad(TEGRA_IO_PAD_GP_PWM3, 19, UINT_MAX, "gp-pwm3"), \ 3769 - _pad(TEGRA_IO_PAD_SOC_GPIO12, 20, UINT_MAX, "soc-gpio12"), \ 3770 - _pad(TEGRA_IO_PAD_SOC_GPIO13, 21, UINT_MAX, "soc-gpio13"), \ 3771 - _pad(TEGRA_IO_PAD_SOC_GPIO10, 22, UINT_MAX, "soc-gpio10"), \ 3772 - _pad(TEGRA_IO_PAD_UART4, 23, UINT_MAX, "uart4"), \ 3773 - _pad(TEGRA_IO_PAD_UART5, 24, UINT_MAX, "uart5"), \ 3774 - _pad(TEGRA_IO_PAD_DBG, 25, UINT_MAX, "dbg"), \ 3775 - _pad(TEGRA_IO_PAD_HDMI_DP3, 26, UINT_MAX, "hdmi-dp3"), \ 3776 - _pad(TEGRA_IO_PAD_HDMI_DP2, 27, UINT_MAX, "hdmi-dp2"), \ 3777 - _pad(TEGRA_IO_PAD_HDMI_DP0, 28, UINT_MAX, "hdmi-dp0"), \ 3778 - _pad(TEGRA_IO_PAD_HDMI_DP1, 29, UINT_MAX, "hdmi-dp1"), \ 3779 - _pad(TEGRA_IO_PAD_PEX_CNTRL, 32, UINT_MAX, "pex-cntrl"), \ 3780 - _pad(TEGRA_IO_PAD_PEX_CTL2, 33, UINT_MAX, "pex-ctl2"), \ 3781 - _pad(TEGRA_IO_PAD_PEX_L0_RST_N, 34, UINT_MAX, "pex-l0-rst"), \ 3782 - _pad(TEGRA_IO_PAD_PEX_L1_RST_N, 35, UINT_MAX, "pex-l1-rst"), \ 3783 - _pad(TEGRA_IO_PAD_SDMMC4, 36, UINT_MAX, "sdmmc4"), \ 3784 - _pad(TEGRA_IO_PAD_PEX_L5_RST_N, 37, UINT_MAX, "pex-l5-rst"), \ 3785 - _pad(TEGRA_IO_PAD_CAM, 38, UINT_MAX, "cam"), \ 3786 - _pad(TEGRA_IO_PAD_CSIC, 43, UINT_MAX, "csic"), \ 3787 - _pad(TEGRA_IO_PAD_CSID, 44, UINT_MAX, "csid"), \ 3788 - _pad(TEGRA_IO_PAD_CSIE, 45, UINT_MAX, "csie"), \ 3789 - _pad(TEGRA_IO_PAD_CSIF, 46, UINT_MAX, "csif"), \ 3790 - _pad(TEGRA_IO_PAD_SPI, 47, UINT_MAX, "spi"), \ 3791 - _pad(TEGRA_IO_PAD_UFS, 49, UINT_MAX, "ufs"), \ 3792 - _pad(TEGRA_IO_PAD_CSIG, 50, UINT_MAX, "csig"), \ 3793 - _pad(TEGRA_IO_PAD_CSIH, 51, UINT_MAX, "csih"), \ 3794 - _pad(TEGRA_IO_PAD_EDP, 53, UINT_MAX, "edp"), \ 3795 - _pad(TEGRA_IO_PAD_SDMMC1_HV, 55, 4, "sdmmc1-hv"), \ 3796 - _pad(TEGRA_IO_PAD_SDMMC3_HV, 56, 6, "sdmmc3-hv"), \ 3797 - _pad(TEGRA_IO_PAD_CONN, 60, UINT_MAX, "conn"), \ 3798 - _pad(TEGRA_IO_PAD_AUDIO_HV, 61, 1, "audio-hv"), \ 3799 - _pad(TEGRA_IO_PAD_AO_HV, UINT_MAX, 0, "ao-hv") 3800 - 3801 3671 static const struct tegra_io_pad_soc tegra194_io_pads[] = { 3802 - TEGRA194_IO_PAD_TABLE(TEGRA_IO_PAD) 3672 + TEGRA_IO_PAD(TEGRA_IO_PAD_CSIA, 0, 0x74, 0x78, UINT_MAX, "csia"), 3673 + TEGRA_IO_PAD(TEGRA_IO_PAD_CSIB, 1, 0x74, 0x78, UINT_MAX, "csib"), 3674 + TEGRA_IO_PAD(TEGRA_IO_PAD_MIPI_BIAS, 3, 0x74, 0x78, UINT_MAX, "mipi-bias"), 3675 + TEGRA_IO_PAD(TEGRA_IO_PAD_PEX_CLK_BIAS, 4, 0x74, 0x78, UINT_MAX, "pex-clk-bias"), 3676 + TEGRA_IO_PAD(TEGRA_IO_PAD_PEX_CLK3, 5, 0x74, 0x78, UINT_MAX, "pex-clk3"), 3677 + TEGRA_IO_PAD(TEGRA_IO_PAD_PEX_CLK2, 6, 0x74, 0x78, UINT_MAX, "pex-clk2"), 3678 + TEGRA_IO_PAD(TEGRA_IO_PAD_PEX_CLK1, 7, 0x74, 0x78, UINT_MAX, "pex-clk1"), 3679 + TEGRA_IO_PAD(TEGRA_IO_PAD_EQOS, 8, 0x74, 0x78, UINT_MAX, "eqos"), 3680 + TEGRA_IO_PAD(TEGRA_IO_PAD_PEX_CLK_2_BIAS, 9, 0x74, 0x78, UINT_MAX, "pex-clk-2-bias"), 3681 + TEGRA_IO_PAD(TEGRA_IO_PAD_PEX_CLK_2, 10, 0x74, 0x78, UINT_MAX, "pex-clk-2"), 3682 + TEGRA_IO_PAD(TEGRA_IO_PAD_DAP3, 11, 0x74, 0x78, UINT_MAX, "dap3"), 3683 + TEGRA_IO_PAD(TEGRA_IO_PAD_DAP5, 12, 0x74, 0x78, UINT_MAX, "dap5"), 3684 + TEGRA_IO_PAD(TEGRA_IO_PAD_UART, 14, 0x74, 0x78, UINT_MAX, "uart"), 3685 + TEGRA_IO_PAD(TEGRA_IO_PAD_PWR_CTL, 15, 0x74, 0x78, UINT_MAX, "pwr-ctl"), 3686 + TEGRA_IO_PAD(TEGRA_IO_PAD_SOC_GPIO53, 16, 0x74, 0x78, UINT_MAX, "soc-gpio53"), 3687 + TEGRA_IO_PAD(TEGRA_IO_PAD_AUDIO, 17, 0x74, 0x78, UINT_MAX, "audio"), 3688 + TEGRA_IO_PAD(TEGRA_IO_PAD_GP_PWM2, 18, 0x74, 0x78, UINT_MAX, "gp-pwm2"), 3689 + TEGRA_IO_PAD(TEGRA_IO_PAD_GP_PWM3, 19, 0x74, 0x78, UINT_MAX, "gp-pwm3"), 3690 + TEGRA_IO_PAD(TEGRA_IO_PAD_SOC_GPIO12, 20, 0x74, 0x78, UINT_MAX, "soc-gpio12"), 3691 + TEGRA_IO_PAD(TEGRA_IO_PAD_SOC_GPIO13, 21, 0x74, 0x78, UINT_MAX, "soc-gpio13"), 3692 + TEGRA_IO_PAD(TEGRA_IO_PAD_SOC_GPIO10, 22, 0x74, 0x78, UINT_MAX, "soc-gpio10"), 3693 + TEGRA_IO_PAD(TEGRA_IO_PAD_UART4, 23, 0x74, 0x78, UINT_MAX, "uart4"), 3694 + TEGRA_IO_PAD(TEGRA_IO_PAD_UART5, 24, 0x74, 0x78, UINT_MAX, "uart5"), 3695 + TEGRA_IO_PAD(TEGRA_IO_PAD_DBG, 25, 0x74, 0x78, UINT_MAX, "dbg"), 3696 + TEGRA_IO_PAD(TEGRA_IO_PAD_HDMI_DP3, 26, 0x74, 0x78, UINT_MAX, "hdmi-dp3"), 3697 + TEGRA_IO_PAD(TEGRA_IO_PAD_HDMI_DP2, 27, 0x74, 0x78, UINT_MAX, "hdmi-dp2"), 3698 + TEGRA_IO_PAD(TEGRA_IO_PAD_HDMI_DP0, 28, 0x74, 0x78, UINT_MAX, "hdmi-dp0"), 3699 + TEGRA_IO_PAD(TEGRA_IO_PAD_HDMI_DP1, 29, 0x74, 0x78, UINT_MAX, "hdmi-dp1"), 3700 + TEGRA_IO_PAD(TEGRA_IO_PAD_PEX_CNTRL, 0, 0x7c, 0x80, UINT_MAX, "pex-cntrl"), 3701 + TEGRA_IO_PAD(TEGRA_IO_PAD_PEX_CTL2, 1, 0x7c, 0x80, UINT_MAX, "pex-ctl2"), 3702 + TEGRA_IO_PAD(TEGRA_IO_PAD_PEX_L0_RST, 2, 0x7c, 0x80, UINT_MAX, "pex-l0-rst"), 3703 + TEGRA_IO_PAD(TEGRA_IO_PAD_PEX_L1_RST, 3, 0x7c, 0x80, UINT_MAX, "pex-l1-rst"), 3704 + TEGRA_IO_PAD(TEGRA_IO_PAD_SDMMC4, 4, 0x7c, 0x80, UINT_MAX, "sdmmc4"), 3705 + TEGRA_IO_PAD(TEGRA_IO_PAD_PEX_L5_RST, 5, 0x7c, 0x80, UINT_MAX, "pex-l5-rst"), 3706 + TEGRA_IO_PAD(TEGRA_IO_PAD_CAM, 6, 0x7c, 0x80, UINT_MAX, "cam"), 3707 + TEGRA_IO_PAD(TEGRA_IO_PAD_CSIC, 11, 0x7c, 0x80, UINT_MAX, "csic"), 3708 + TEGRA_IO_PAD(TEGRA_IO_PAD_CSID, 12, 0x7c, 0x80, UINT_MAX, "csid"), 3709 + TEGRA_IO_PAD(TEGRA_IO_PAD_CSIE, 13, 0x7c, 0x80, UINT_MAX, "csie"), 3710 + TEGRA_IO_PAD(TEGRA_IO_PAD_CSIF, 14, 0x7c, 0x80, UINT_MAX, "csif"), 3711 + TEGRA_IO_PAD(TEGRA_IO_PAD_SPI, 15, 0x7c, 0x80, UINT_MAX, "spi"), 3712 + TEGRA_IO_PAD(TEGRA_IO_PAD_UFS, 17, 0x7c, 0x80, UINT_MAX, "ufs"), 3713 + TEGRA_IO_PAD(TEGRA_IO_PAD_CSIG, 18, 0x7c, 0x80, UINT_MAX, "csig"), 3714 + TEGRA_IO_PAD(TEGRA_IO_PAD_CSIH, 19, 0x7c, 0x80, UINT_MAX, "csih"), 3715 + TEGRA_IO_PAD(TEGRA_IO_PAD_EDP, 21, 0x7c, 0x80, UINT_MAX, "edp"), 3716 + TEGRA_IO_PAD(TEGRA_IO_PAD_SDMMC1_HV, 23, 0x7c, 0x80, 4, "sdmmc1-hv"), 3717 + TEGRA_IO_PAD(TEGRA_IO_PAD_SDMMC3_HV, 24, 0x7c, 0x80, 6, "sdmmc3-hv"), 3718 + TEGRA_IO_PAD(TEGRA_IO_PAD_CONN, 28, 0x7c, 0x80, UINT_MAX, "conn"), 3719 + TEGRA_IO_PAD(TEGRA_IO_PAD_AUDIO_HV, 29, 0x7c, 0x80, 1, "audio-hv"), 3720 + TEGRA_IO_PAD(TEGRA_IO_PAD_AO_HV, UINT_MAX, UINT_MAX, UINT_MAX, 0, "ao-hv"), 3803 3721 }; 3804 3722 3805 3723 static const struct pinctrl_pin_desc tegra194_pin_descs[] = { 3806 - TEGRA194_IO_PAD_TABLE(TEGRA_IO_PIN_DESC) 3724 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CSIA, "csia"), 3725 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CSIB, "csib"), 3726 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_MIPI_BIAS, "mipi-bias"), 3727 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_PEX_CLK_BIAS, "pex-clk-bias"), 3728 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_PEX_CLK3, "pex-clk3"), 3729 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_PEX_CLK2, "pex-clk2"), 3730 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_PEX_CLK1, "pex-clk1"), 3731 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_EQOS, "eqos"), 3732 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_PEX_CLK_2_BIAS, "pex-clk-2-bias"), 3733 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_PEX_CLK_2, "pex-clk-2"), 3734 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_DAP3, "dap3"), 3735 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_DAP5, "dap5"), 3736 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_UART, "uart"), 3737 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_PWR_CTL, "pwr-ctl"), 3738 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_SOC_GPIO53, "soc-gpio53"), 3739 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_AUDIO, "audio"), 3740 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_GP_PWM2, "gp-pwm2"), 3741 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_GP_PWM3, "gp-pwm3"), 3742 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_SOC_GPIO12, "soc-gpio12"), 3743 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_SOC_GPIO13, "soc-gpio13"), 3744 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_SOC_GPIO10, "soc-gpio10"), 3745 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_UART4, "uart4"), 3746 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_UART5, "uart5"), 3747 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_DBG, "dbg"), 3748 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_HDMI_DP3, "hdmi-dp3"), 3749 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_HDMI_DP2, "hdmi-dp2"), 3750 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_HDMI_DP0, "hdmi-dp0"), 3751 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_HDMI_DP1, "hdmi-dp1"), 3752 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_PEX_CNTRL, "pex-cntrl"), 3753 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_PEX_CTL2, "pex-ctl2"), 3754 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_PEX_L0_RST, "pex-l0-rst"), 3755 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_PEX_L1_RST, "pex-l1-rst"), 3756 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_SDMMC4, "sdmmc4"), 3757 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_PEX_L5_RST, "pex-l5-rst"), 3758 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CAM, "cam"), 3759 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CSIC, "csic"), 3760 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CSID, "csid"), 3761 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CSIE, "csie"), 3762 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CSIF, "csif"), 3763 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_SPI, "spi"), 3764 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_UFS, "ufs"), 3765 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CSIG, "csig"), 3766 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CSIH, "csih"), 3767 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_EDP, "edp"), 3768 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_SDMMC1_HV, "sdmmc1-hv"), 3769 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_SDMMC3_HV, "sdmmc3-hv"), 3770 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CONN, "conn"), 3771 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_AUDIO_HV, "audio-hv"), 3772 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_AO_HV, "ao-hv"), 3807 3773 }; 3808 3774 3809 3775 static const struct tegra_pmc_regs tegra194_pmc_regs = { 3810 3776 .scratch0 = 0x2000, 3811 - .dpd_req = 0x74, 3812 - .dpd_status = 0x78, 3813 - .dpd2_req = 0x7c, 3814 - .dpd2_status = 0x80, 3815 3777 .rst_status = 0x70, 3816 3778 .rst_source_shift = 0x2, 3817 3779 .rst_source_mask = 0x7c, ··· 3928 3810 .has_usb_sleepwalk = false, 3929 3811 }; 3930 3812 3813 + static const struct tegra_io_pad_soc tegra234_io_pads[] = { 3814 + TEGRA_IO_PAD(TEGRA_IO_PAD_CSIA, 0, 0xe0c0, 0xe0c4, UINT_MAX, "csia"), 3815 + TEGRA_IO_PAD(TEGRA_IO_PAD_CSIB, 1, 0xe0c0, 0xe0c4, UINT_MAX, "csib"), 3816 + TEGRA_IO_PAD(TEGRA_IO_PAD_HDMI_DP0, 0, 0xe0d0, 0xe0d4, UINT_MAX, "hdmi-dp0"), 3817 + TEGRA_IO_PAD(TEGRA_IO_PAD_CSIC, 2, 0xe0c0, 0xe0c4, UINT_MAX, "csic"), 3818 + TEGRA_IO_PAD(TEGRA_IO_PAD_CSID, 3, 0xe0c0, 0xe0c4, UINT_MAX, "csid"), 3819 + TEGRA_IO_PAD(TEGRA_IO_PAD_CSIE, 4, 0xe0c0, 0xe0c4, UINT_MAX, "csie"), 3820 + TEGRA_IO_PAD(TEGRA_IO_PAD_CSIF, 5, 0xe0c0, 0xe0c4, UINT_MAX, "csif"), 3821 + TEGRA_IO_PAD(TEGRA_IO_PAD_UFS, 0, 0xe064, 0xe068, UINT_MAX, "ufs"), 3822 + TEGRA_IO_PAD(TEGRA_IO_PAD_EDP, 1, 0xe05c, 0xe060, UINT_MAX, "edp"), 3823 + TEGRA_IO_PAD(TEGRA_IO_PAD_SDMMC1_HV, 0, 0xe054, 0xe058, 4, "sdmmc1-hv"), 3824 + TEGRA_IO_PAD(TEGRA_IO_PAD_SDMMC3_HV, UINT_MAX, UINT_MAX, UINT_MAX, 6, "sdmmc3-hv"), 3825 + TEGRA_IO_PAD(TEGRA_IO_PAD_AUDIO_HV, UINT_MAX, UINT_MAX, UINT_MAX, 1, "audio-hv"), 3826 + TEGRA_IO_PAD(TEGRA_IO_PAD_AO_HV, UINT_MAX, UINT_MAX, UINT_MAX, 0, "ao-hv"), 3827 + TEGRA_IO_PAD(TEGRA_IO_PAD_CSIG, 6, 0xe0c0, 0xe0c4, UINT_MAX, "csig"), 3828 + TEGRA_IO_PAD(TEGRA_IO_PAD_CSIH, 7, 0xe0c0, 0xe0c4, UINT_MAX, "csih"), 3829 + }; 3830 + 3831 + static const struct pinctrl_pin_desc tegra234_pin_descs[] = { 3832 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CSIA, "csia"), 3833 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CSIB, "csib"), 3834 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_HDMI_DP0, "hdmi-dp0"), 3835 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CSIC, "csic"), 3836 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CSID, "csid"), 3837 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CSIE, "csie"), 3838 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CSIF, "csif"), 3839 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_UFS, "ufs"), 3840 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_EDP, "edp"), 3841 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_SDMMC1_HV, "sdmmc1-hv"), 3842 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_SDMMC3_HV, "sdmmc3-hv"), 3843 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_AUDIO_HV, "audio-hv"), 3844 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_AO_HV, "ao-hv"), 3845 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CSIG, "csig"), 3846 + TEGRA_IO_PIN_DESC(TEGRA_IO_PAD_CSIH, "csih"), 3847 + }; 3848 + 3931 3849 static const struct tegra_pmc_regs tegra234_pmc_regs = { 3932 3850 .scratch0 = 0x2000, 3933 - .dpd_req = 0, 3934 - .dpd_status = 0, 3935 - .dpd2_req = 0, 3936 - .dpd2_status = 0, 3937 3851 .rst_status = 0x70, 3938 3852 .rst_source_shift = 0x2, 3939 3853 .rst_source_mask = 0xfc, ··· 4030 3880 .needs_mbist_war = false, 4031 3881 .has_impl_33v_pwr = true, 4032 3882 .maybe_tz_only = false, 4033 - .num_io_pads = 0, 4034 - .io_pads = NULL, 4035 - .num_pin_descs = 0, 4036 - .pin_descs = NULL, 3883 + .num_io_pads = ARRAY_SIZE(tegra234_io_pads), 3884 + .io_pads = tegra234_io_pads, 3885 + .num_pin_descs = ARRAY_SIZE(tegra234_pin_descs), 3886 + .pin_descs = tegra234_pin_descs, 4037 3887 .regs = &tegra234_pmc_regs, 4038 3888 .init = NULL, 4039 3889 .setup_irq_polarity = tegra186_pmc_setup_irq_polarity,
+3 -3
include/soc/tegra/pmc.h
··· 118 118 TEGRA_IO_PAD_PEX_CLK_2, 119 119 TEGRA_IO_PAD_PEX_CNTRL, 120 120 TEGRA_IO_PAD_PEX_CTL2, 121 - TEGRA_IO_PAD_PEX_L0_RST_N, 122 - TEGRA_IO_PAD_PEX_L1_RST_N, 123 - TEGRA_IO_PAD_PEX_L5_RST_N, 121 + TEGRA_IO_PAD_PEX_L0_RST, 122 + TEGRA_IO_PAD_PEX_L1_RST, 123 + TEGRA_IO_PAD_PEX_L5_RST, 124 124 TEGRA_IO_PAD_PWR_CTL, 125 125 TEGRA_IO_PAD_SDMMC1, 126 126 TEGRA_IO_PAD_SDMMC1_HV,