/linux/drivers/net/ethernet/ti/ |
H A D | cpsw-common.c | 1 // SPDX-License-Identifier: GPL-2.0+ 7 #include <linux/mfd/syscon.h> 14 static int davinci_emac_3517_get_macid(struct device *dev, u16 offset, in davinci_emac_3517_get_macid() argument 19 struct regmap *syscon; in davinci_emac_3517_get_macid() local 21 syscon = syscon_regmap_lookup_by_phandle(dev->of_node, "syscon"); in davinci_emac_3517_get_macid() 22 if (IS_ERR(syscon)) { in davinci_emac_3517_get_macid() 23 if (PTR_ERR(syscon) == -ENODEV) in davinci_emac_3517_get_macid() 25 return PTR_ERR(syscon); in davinci_emac_3517_get_macid() 28 regmap_read(syscon, CTRL_MAC_LO_REG(offset, slave), &macid_lsb); in davinci_emac_3517_get_macid() 29 regmap_read(syscon, CTRL_MAC_HI_REG(offset, slave), &macid_msb); in davinci_emac_3517_get_macid() [all …]
|
/linux/drivers/spi/ |
H A D | spi-dw-mmio.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Memory-mapped interface driver for DW SPI Core 15 #include <linux/mfd/syscon.h> 24 #include "spi-dw.h" 52 struct regmap *syscon; member 61 * bit: |---3-------2-------1-------0 79 struct dw_spi *dws = spi_controller_get_devdata(spi->controller); in dw_spi_mscc_set_cs() 81 struct dw_spi_mscc *dwsmscc = dwsmmio->priv; in dw_spi_mscc_set_cs() 90 writel(sw_mode, dwsmscc->spi_mst + MSCC_SPI_MST_SW_MODE); in dw_spi_mscc_set_cs() 102 dwsmscc = devm_kzalloc(&pdev->dev, sizeof(*dwsmscc), GFP_KERNEL); in dw_spi_mscc_init() [all …]
|
H A D | spi-clps711x.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 5 * Copyright (C) 2012-2016 Alexander Shiyan <shc_work@mail.ru> 16 #include <linux/mfd/syscon.h> 17 #include <linux/mfd/syscon/clps711x.h> 20 #define DRIVER_NAME "clps711x-spi" 27 struct regmap *syscon; member 40 struct spi_device *spi = msg->spi; in spi_clps711x_prepare_message() 43 return regmap_update_bits(hw->syscon, SYSCON_OFFSET, SYSCON3_ADCCKNSEN, in spi_clps711x_prepare_message() 44 (spi->mode & SPI_CPHA) ? in spi_clps711x_prepare_message() 55 clk_set_rate(hw->spi_clk, xfer->speed_hz ? : spi->max_speed_hz); in spi_clps711x_transfer_one() [all …]
|
/linux/drivers/gpio/ |
H A D | gpio-syscon.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * SYSCON GPIO driver 14 #include <linux/mfd/syscon.h> 20 /* SYSCON driver is designed to use 32-bit wide registers */ 25 * struct syscon_gpio_data - Configuration for the device. 49 struct regmap *syscon; member 61 offs = priv->dreg_offset + priv->data->dat_bit_offset + offset; in syscon_gpio_get() 63 ret = regmap_read(priv->syscon, in syscon_gpio_get() 76 offs = priv->dreg_offset + priv->data->dat_bit_offset + offset; in syscon_gpio_set() 78 return regmap_update_bits(priv->syscon, in syscon_gpio_set() [all …]
|
/linux/drivers/power/reset/ |
H A D | axxia-reset.c | 1 // SPDX-License-Identifier: GPL-2.0-only 11 #include <linux/mfd/syscon.h> 31 struct regmap *syscon = data->cb_data; in axxia_restart_handler() local 34 regmap_write(syscon, SC_CRIT_WRITE_KEY, 0xab); in axxia_restart_handler() 36 regmap_write(syscon, SC_LATCH_ON_RESET, 0x00000040); in axxia_restart_handler() 38 regmap_write(syscon, SC_EFUSE_INT_STATUS, EFUSE_READ_DONE); in axxia_restart_handler() 40 regmap_update_bits(syscon, SC_RESET_CONTROL, in axxia_restart_handler() 48 struct device *dev = &pdev->dev; in axxia_reset_probe() local 49 struct regmap *syscon; in axxia_reset_probe() local 52 syscon = syscon_regmap_lookup_by_phandle(dev->of_node, "syscon"); in axxia_reset_probe() [all …]
|
H A D | ocelot-reset.c | 1 // SPDX-License-Identifier: (GPL-2.0 OR MIT) 12 #include <linux/mfd/syscon.h> 19 const char *syscon; member 48 u32 if_si_owner_bit = ctx->props->if_si_owner_bit; in ocelot_restart_handle() 51 regmap_update_bits(ctx->cpu_ctrl, ctx->props->protect_reg, in ocelot_restart_handle() 52 ctx->props->vcore_protect, 0); in ocelot_restart_handle() 56 regmap_update_bits(ctx->cpu_ctrl, in ocelot_restart_handle() 63 writel(SOFT_CHIP_RST, ctx->base); in ocelot_restart_handle() 72 struct device *dev = &pdev->dev; in ocelot_reset_probe() local 75 ctx = devm_kzalloc(&pdev->dev, sizeof(*ctx), GFP_KERNEL); in ocelot_reset_probe() [all …]
|
H A D | syscon-poweroff.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Generic Syscon Poweroff Driver 12 #include <linux/mfd/syscon.h> 28 struct syscon_poweroff_data *data = off_data->cb_data; in syscon_poweroff() 31 regmap_update_bits(data->map, data->offset, data->mask, data->value); in syscon_poweroff() 42 struct device *dev = &pdev->dev; in syscon_poweroff_probe() local 46 data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL); in syscon_poweroff_probe() 48 return -ENOMEM; in syscon_poweroff_probe() 50 data->map = syscon_regmap_lookup_by_phandle(dev->of_node, "regmap"); in syscon_poweroff_probe() 51 if (IS_ERR(data->map)) { in syscon_poweroff_probe() [all …]
|
/linux/drivers/pci/controller/cadence/ |
H A D | pci-j721e.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * pci-j721e - PCIe controller driver for TI's J721E SoCs 5 * Copyright (C) 2020 Texas Instruments Incorporated - http://www.ti.com 10 #include <linux/clk-provider.h> 17 #include <linux/mfd/syscon.h> 26 #include "pcie-cadence.h" 85 return readl(pcie->user_cfg_base + offset); in j721e_pcie_user_readl() 91 writel(value, pcie->user_cfg_base + offset); in j721e_pcie_user_writel() 96 return readl(pcie->intd_cfg_base + offset); in j721e_pcie_intd_readl() 102 writel(value, pcie->intd_cfg_base + offset); in j721e_pcie_intd_writel() [all …]
|
/linux/arch/arm/boot/dts/ti/keystone/ |
H A D | keystone-k2hk.dtsi | 1 // SPDX-License-Identifier: GPL-2.0 5 * Copyright (C) 2013-2017 Texas Instruments Incorporated - https://www.ti.com/ 8 #include <dt-bindings/reset/ti-syscon.h> 15 #address-cells = <1>; 16 #size-cells = <0>; 18 interrupt-parent = <&gic>; 21 compatible = "arm,cortex-a15"; 27 compatible = "arm,cortex-a15"; 33 compatible = "arm,cortex-a15"; 39 compatible = "arm,cortex-a15"; [all …]
|
/linux/drivers/bus/ |
H A D | arm-integrator-lm.c | 1 // SPDX-License-Identifier: GPL-2.0-only 21 #include <linux/mfd/syscon.h> 31 static int integrator_lm_populate(int num, struct device *dev) in integrator_lm_populate() argument 33 struct device_node *np = dev->of_node; in integrator_lm_populate() 46 dev_info(dev, "no valid address on child\n"); in integrator_lm_populate() 50 /* First populate the syscon then any devices */ in integrator_lm_populate() 52 dev_info(dev, "populate module @0x%08x from DT\n", in integrator_lm_populate() 54 ret = of_platform_default_populate(child, NULL, dev); in integrator_lm_populate() 56 dev_err(dev, "failed to populate module\n"); in integrator_lm_populate() 67 { .compatible = "arm,integrator-ap-syscon"}, [all …]
|
/linux/drivers/thermal/ |
H A D | armada_thermal.c | 1 // SPDX-License-Identifier: GPL-2.0-only 18 #include <linux/mfd/syscon.h> 65 /* Marvell EBU Thermal Sensor Dev Structure */ 67 struct device *dev; member 68 struct regmap *syscon; member 85 /* Formula coeficients: temp = (b - m * reg) / div */ 100 /* Syscon access */ 117 SYSCON enumerator 126 * struct armada_thermal_sensor - hold the information of one thermal sensor 139 struct armada_thermal_data *data = priv->data; in armadaxp_init() [all …]
|
/linux/drivers/tty/serial/ |
H A D | clps711x.c | 1 // SPDX-License-Identifier: GPL-2.0+ 25 #include <linux/mfd/syscon.h> 26 #include <linux/mfd/syscon/clps711x.h> 42 #define UBRLCR_BAUD_MASK ((1 << 12) - 1) 58 struct regmap *syscon; member 73 struct clps711x_port *s = dev_get_drvdata(port->dev); in uart_clps711x_stop_tx() 75 if (s->tx_enabled) { in uart_clps711x_stop_tx() 76 disable_irq(port->irq); in uart_clps711x_stop_tx() 77 s->tx_enabled = 0; in uart_clps711x_stop_tx() 83 struct clps711x_port *s = dev_get_drvdata(port->dev); in uart_clps711x_start_tx() [all …]
|
/linux/drivers/input/keyboard/ |
H A D | clps711x-keypad.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 17 #include <linux/mfd/syscon.h> 18 #include <linux/mfd/syscon/clps711x.h> 28 struct regmap *syscon; member 36 const unsigned short *keycodes = input->keycode; in clps711x_keypad_poll() 43 regmap_update_bits(priv->syscon, SYSCON_OFFSET, in clps711x_keypad_poll() 48 for (row = 0; row < priv->row_count; row++) { in clps711x_keypad_poll() 49 struct clps711x_gpio_data *data = &priv->gpio_data[row]; in clps711x_keypad_poll() 54 state = gpiod_get_value_cansleep(data->desc); in clps711x_keypad_poll() 56 state1 = gpiod_get_value_cansleep(data->desc); in clps711x_keypad_poll() [all …]
|
/linux/drivers/clk/nxp/ |
H A D | clk-lpc18xx-creg.c | 1 // SPDX-License-Identifier: GPL-2.0-only 8 #include <linux/clk-provider.h> 11 #include <linux/mfd/syscon.h> 50 ret = regmap_update_bits(creg->reg, LPC18XX_CREG_CREG0, in clk_creg_32k_prepare() 67 regmap_update_bits(creg->reg, LPC18XX_CREG_CREG0, in clk_creg_32k_unprepare() 77 regmap_read(creg->reg, LPC18XX_CREG_CREG0, ®); in clk_creg_32k_is_prepared() 93 return regmap_update_bits(creg->reg, LPC18XX_CREG_CREG0, in clk_creg_enable() 94 creg->en_mask, creg->en_mask); in clk_creg_enable() 101 regmap_update_bits(creg->reg, LPC18XX_CREG_CREG0, in clk_creg_disable() 102 creg->en_mask, 0); in clk_creg_disable() [all …]
|
/linux/drivers/hwspinlock/ |
H A D | qcom_hwspinlock.c | 1 // SPDX-License-Identifier: GPL-2.0 10 #include <linux/mfd/syscon.h> 30 struct regmap_field *field = lock->priv; in qcom_hwspinlock_trylock() 47 struct regmap_field *field = lock->priv; in qcom_hwspinlock_unlock() 69 struct regmap_field *field = lock->priv; in qcom_hwspinlock_bust() 75 dev_err(lock->bank->dev, "unable to query spinlock owner\n"); in qcom_hwspinlock_bust() 84 dev_err(lock->bank->dev, "failed to bust spinlock\n"); in qcom_hwspinlock_bust() 140 { .compatible = "qcom,sfpb-mutex", .data = &of_sfpb_mutex }, 141 { .compatible = "qcom,tcsr-mutex", .data = &of_tcsr_mutex }, 142 { .compatible = "qcom,apq8084-tcsr-mutex", .data = &of_msm8226_tcsr_mutex }, [all …]
|
/linux/drivers/leds/ |
H A D | leds-syscon.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Generic Syscon LEDs Driver 14 #include <linux/mfd/syscon.h> 19 * struct syscon_led - state container for syscon based LEDs 21 * @map: regmap to access the syscon device backing this LED 22 * @offset: the offset into the syscon regmap for the LED register 44 sled->state = false; in syscon_led_set() 46 val = sled->mask; in syscon_led_set() 47 sled->state = true; in syscon_led_set() 50 ret = regmap_update_bits(sled->map, sled->offset, sled->mask, val); in syscon_led_set() [all …]
|
/linux/Documentation/devicetree/bindings/power/reset/ |
H A D | keystone-reset.txt | 14 - compatible: ti,keystone-reset 16 - ti,syscon-pll: phandle/offset pair. The phandle to syscon used to 20 - ti,syscon-dev: phandle/offset pair. The phandle to syscon used to 26 - ti,soft-reset: Boolean option indicating soft reset. 29 - ti,wdt-list: WDT list that can cause SoC reset. It's not related 40 pllctrl: pll-controller@2310000 { 41 compatible = "ti,keystone-pllctrl", "syscon"; 45 devctrl: device-state-control@2620000 { 46 compatible = "ti,keystone-devctrl", "syscon"; 50 rstctrl: reset-controller { [all …]
|
/linux/drivers/video/fbdev/ |
H A D | clps711x-fb.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 17 #include <linux/mfd/syscon.h> 18 #include <linux/mfd/syscon/clps711x.h> 22 #define CLPS711X_FB_NAME "clps711x-fb" 36 struct regmap *syscon; member 47 struct clps711x_fb_info *cfb = info->par; in clps711x_fb_setcolreg() 50 if (regno >= BIT(info->var.bits_per_pixel)) in clps711x_fb_setcolreg() 51 return -EINVAL; in clps711x_fb_setcolreg() 57 if (cfb->cmap_invert) in clps711x_fb_setcolreg() 58 level = 0xf - level; in clps711x_fb_setcolreg() [all …]
|
/linux/drivers/phy/hisilicon/ |
H A D | phy-histb-combphy.c | 1 // SPDX-License-Identifier: GPL-2.0-only 5 * Copyright (C) 2016-2017 HiSilicon Co., Ltd. http://www.hisilicon.com 14 #include <linux/mfd/syscon.h> 21 #include <dt-bindings/phy/phy.h> 46 struct regmap *syscon; member 56 void __iomem *reg = priv->mmio + COMBPHY_CFG_REG; in nano_register_write() 76 return (mode->fixed != PHY_NONE) ? true : false; in is_mode_fixed() 81 struct histb_combphy_mode *mode = &priv->mode; in histb_combphy_set_mode() 82 struct regmap *syscon = priv->syscon; in histb_combphy_set_mode() local 88 switch (mode->select) { in histb_combphy_set_mode() [all …]
|
/linux/drivers/input/touchscreen/ |
H A D | ts4800-ts.c | 2 * Touchscreen driver for the TS-4800 board 4 * Copyright (c) 2015 - Savoir-faire Linux 15 #include <linux/mfd/syscon.h> 26 /* sensor values are 12-bit wide */ 27 #define MAX_12BIT ((1 << 12) - 1) 36 struct device *dev; member 53 ts->pendown = false; in ts4800_ts_open() 54 ts->debounce = DEBOUNCE_COUNT; in ts4800_ts_open() 56 error = regmap_update_bits(ts->regmap, ts->reg, ts->bit, ts->bit); in ts4800_ts_open() 58 dev_warn(ts->dev, "Failed to enable touchscreen: %d\n", error); in ts4800_ts_open() [all …]
|
/linux/drivers/net/can/c_can/ |
H A D | c_can_platform.c | 9 * - Sascha Hauer, Marc Kleine-Budde, Pengutronix <s.hauer@pengutronix.de> 10 * - Simon Kallweit, intefo AG <simon.kallweit@intefo.ch> 36 #include <linux/mfd/syscon.h> 39 #include <linux/can/dev.h> 47 /* 16-bit c_can registers can be arranged differently in the memory 48 * architecture of different implementations. For example: 16-bit 49 * registers can be aligned to a 16-bit boundary or 32-bit boundary etc. 55 return readw(priv->base + priv->regs[index]); in c_can_plat_read_reg_aligned_to_16bit() 61 writew(val, priv->base + priv->regs[index]); in c_can_plat_write_reg_aligned_to_16bit() 67 return readw(priv->base + 2 * priv->regs[index]); in c_can_plat_read_reg_aligned_to_32bit() [all …]
|
/linux/drivers/clk/sprd/ |
H A D | common.c | 1 // SPDX-License-Identifier: GPL-2.0 8 #include <linux/mfd/syscon.h> 29 for (i = 0; i < desc->num_clk_clks; i++) { in sprd_clk_set_regmap() 30 cclk = desc->clk_clks[i]; in sprd_clk_set_regmap() 34 cclk->regmap = regmap; in sprd_clk_set_regmap() 42 struct device *dev = &pdev->dev; in sprd_clk_regmap_init() local 43 struct device_node *node = dev->of_node, *np; in sprd_clk_regmap_init() 48 if (of_property_present(node, "sprd,syscon")) { in sprd_clk_regmap_init() 49 regmap = syscon_regmap_lookup_by_phandle(node, "sprd,syscon"); in sprd_clk_regmap_init() 51 pr_err("%s: failed to get syscon regmap\n", __func__); in sprd_clk_regmap_init() [all …]
|
/linux/drivers/net/ethernet/stmicro/stmmac/ |
H A D | dwmac-loongson1.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Loongson-1 DWMAC glue layer 5 * Copyright (C) 2011-2023 Keguang Zhang <keguang.zhang@gmail.com> 8 #include <linux/mfd/syscon.h> 21 /* Loongson-1 SYSCON Registers */ 25 /* Loongson-1B SYSCON Register Bits */ 37 /* Loongson-1C SYSCON Register Bits */ 59 struct ls1x_dwmac *dwmac = plat_dat->bsp_priv; in ls1b_dwmac_setup() 64 /* This shouldn't fail - stmmac_get_platform_resources() in ls1b_dwmac_setup() 67 dev_err(&pdev->dev, "Could not get IO_MEM resources\n"); in ls1b_dwmac_setup() [all …]
|
/linux/drivers/mtd/maps/ |
H A D | physmap-versatile.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Versatile OF physmap driver add-on 13 #include <linux/mfd/syscon.h> 17 #include "physmap-versatile.h" 30 .compatible = "arm,integrator-ap-syscon", 34 .compatible = "arm,integrator-cp-syscon", 38 .compatible = "arm,core-module-versatile", 42 .compatible = "arm,realview-eb-syscon", 46 .compatible = "arm,realview-pb1176-syscon", 50 .compatible = "arm,realview-pb11mp-syscon", [all …]
|
/linux/drivers/reset/ |
H A D | reset-ti-syscon.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * TI SYSCON regmap reset driver 5 * Copyright (C) 2015-2016 Texas Instruments Incorporated - https://www.ti.com/ 10 #include <linux/mfd/syscon.h> 15 #include <linux/reset-controller.h> 17 #include <dt-bindings/reset/ti-syscon.h> 20 * struct ti_syscon_reset_control - reset control structure 21 * @assert_offset: reset assert control register offset from syscon base 23 * @deassert_offset: reset deassert control register offset from syscon base 25 * @status_offset: reset status register offset from syscon base [all …]
|