lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <92e69f32-149b-46bb-9a29-ef587c3f1c75@leica-geosystems.com>
Date: Thu, 6 Mar 2025 15:56:19 +0000
From: POPESCU Catalin <catalin.popescu@...ca-geosystems.com>
To: Loic Poulain <loic.poulain@...aro.org>
CC: "neeraj.sanjaykale@....com" <neeraj.sanjaykale@....com>,
	"marcel@...tmann.org" <marcel@...tmann.org>, "luiz.dentz@...il.com"
	<luiz.dentz@...il.com>, "robh@...nel.org" <robh@...nel.org>,
	"krzk+dt@...nel.org" <krzk+dt@...nel.org>, "linux-bluetooth@...r.kernel.org"
	<linux-bluetooth@...r.kernel.org>, "devicetree@...r.kernel.org"
	<devicetree@...r.kernel.org>, "linux-kernel@...r.kernel.org"
	<linux-kernel@...r.kernel.org>, "m.felsch@...gutronix.de"
	<m.felsch@...gutronix.de>, "amitkumar.karwar@....com"
	<amitkumar.karwar@....com>, "conor+dt@...nel.org" <conor+dt@...nel.org>
Subject: Re: [PATCH next v2 2/2] bluetooth: btnxpuart: implement powerup
 sequence

On 06/03/2025 16:29, Loic Poulain wrote:
> This email is not from Hexagon’s Office 365 instance. Please be careful while clicking links, opening attachments, or replying to this email.
>
>
> Hi,
Hi Loic
>
> On Thu, 27 Feb 2025 at 11:57, Catalin Popescu
> <catalin.popescu@...ca-geosystems.com> wrote:
>> NXP bluetooth chip shares power supply and reset gpio with a WLAN
>> chip. Add support for power supply and reset and enforce powerup
>> sequence:
>> - apply power supply
>> - deassert reset/powerdown
>>
>> Signed-off-by: Catalin Popescu <catalin.popescu@...ca-geosystems.com>
>> Reviewed-by: Neeraj Sanjay Kale <neeraj.sanjaykale@....com>
>> ---
>> v2:
>> - rebase on linux-next tag next-20250227
>> - add reviewed-by
> [...]
>> @@ -1522,6 +1525,7 @@ static int nxp_serdev_probe(struct serdev_device *serdev)
>>   {
>>          struct hci_dev *hdev;
>>          struct btnxpuart_dev *nxpdev;
>> +       int err;
>>
>>          nxpdev = devm_kzalloc(&serdev->dev, sizeof(*nxpdev), GFP_KERNEL);
>>          if (!nxpdev)
>> @@ -1549,6 +1553,16 @@ static int nxp_serdev_probe(struct serdev_device *serdev)
>>
>>          crc8_populate_msb(crc8_table, POLYNOMIAL8);
>>
>> +       nxpdev->pdn = devm_reset_control_get_optional_shared(&serdev->dev, NULL);
> Maybe devm_reset_control_get_optional_shared_deasserted could be
> useful here instead?
This is a new API introduced in 6.13 and my kernel is not uptodate 
enough to test it (6.12).
Moreover, it would break the powerup sequence as we first need to apply 
power then deassert the reset.
>
>
>
>> +       if (IS_ERR(nxpdev->pdn))
>> +               return PTR_ERR(nxpdev->pdn);
>> +
>> +       err = devm_regulator_get_enable(&serdev->dev, "vcc");
>> +       if (err) {
>> +               dev_err(&serdev->dev, "Failed to enable vcc regulator\n");
>> +               return err;
>> +       }
>> +
>>          /* Initialize and register HCI device */
>>          hdev = hci_alloc_dev();
>>          if (!hdev) {
>> @@ -1556,6 +1570,8 @@ static int nxp_serdev_probe(struct serdev_device *serdev)
>>                  return -ENOMEM;
>>          }
>>
>> +       reset_control_deassert(nxpdev->pdn);
>> +
>>          nxpdev->hdev = hdev;
>>
>>          hdev->bus = HCI_UART;
>> @@ -1583,6 +1599,7 @@ static int nxp_serdev_probe(struct serdev_device *serdev)
>>          return 0;
>>
>>   probe_fail:
>> +       reset_control_assert(nxpdev->pdn);
>>          hci_free_dev(hdev);
>>          return -ENODEV;
>>   }
>> @@ -1609,6 +1626,7 @@ static void nxp_serdev_remove(struct serdev_device *serdev)
>>          }
>>          ps_cleanup(nxpdev);
>>          hci_unregister_dev(hdev);
>> +       reset_control_assert(nxpdev->pdn);
>>          hci_free_dev(hdev);
>>   }
>>
>> --
>> 2.43.0
>>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ